ali-sdk / ali-ons

Aliyun Open Notification Service Client
MIT License
151 stars 43 forks source link

MQPushConsumer occurred an error socket hang up #60

Closed zhb127 closed 5 years ago

zhb127 commented 5 years ago

阿里云官方文档中,有提到:

网络访问说明

在使用消息队列 RocketMQ 时,请注意以下网络访问限制:

只有在同一个地域下的同一个实例中的 Topic 和 Group ID 才能互通,即某 Topic 是在哪个地域的哪个实例中创建的,它就只能被同样在该地域下的该实例中的创建的 Group ID 对应的生产端和消费端访问。

例如,当某 Topic 是创建在华北 2下的实例 A 中,那么该 Topic 只能被在华北 2下的实例 A 中创建的 Group ID 对应的生产端和消费端访问。

如果只是测试,或者需要在本地(非阿里云 ECS 服务器)使用消息队列 RocketMQ 的服务,请将 Topic 和 Group ID 都创建在“公网”地域下的实例中。 生产端和消费端可以部署在本地或者部署在任意地域的 ECS 上,前提是本地服务器或者相应的 ECS 需要能够访问公网。但注意遵循上一条原则,Topic 不能跨实例使用。

测试说明

在"公网"区域下创建了一个实例,该实例只有 TCP 协议接入点。

{ ResponseError: MQPushConsumer occurred an error socket hang up, GET http://MQ_INST_125036_BaXaRFt4.mq-internet-access.mq-internet.aliyuncs.com:80 -1 (connected: true, keepalive socket: false, socketHandledRequests: 1, socketHandledResponses: 0) headers: {} at createHangUpError (_http_client.js:342:15) at Socket.socketOnEnd (_http_client.js:437:23) at emitNone (events.js:111:20) at Socket.emit (events.js:208:7) at endReadableNT (_stream_readable.js:1064:12) at _combinedTickCallback (internal/process/next_tick.js:139:11) at process._tickCallback (internal/process/next_tick.js:181:9) code: 'ECONNRESET', name: 'ResponseError', data: undefined, path: '/', status: -1, headers: {}, res: { status: -1, statusCode: -1, statusMessage: null, headers: {}, size: 0, aborted: false, rt: 101, keepAliveSocket: false, data: undefined, requestUrls: [ 'http://mq_inst_125036_baxarft4.mq-internet-access.mq-internet.aliyuncs.com:80/' ], timing: null, remoteAddress: '112.124.141.191', remotePort: 80, socketHandledRequests: 1, socketHandledResponses: 0 } }

请问,这个是什么问题呢

denghongcai commented 5 years ago

资源实例化模式还未支持,待 #61 合并后即可支持

denghongcai commented 5 years ago

已经支持,你配置的 onsAddr 换成 nameSrv 即可