node-zookeeper-dubbo
node-zookeeper-dubbo copied to clipboard
A middleware helps node to communicate dubbo by using its default protocol, which is registered in zookeeper
项目需求nodejs连接dubbo接口,找到node-zookeeper-dubbo很不错,但是复杂java对象却很难开发。网上也没搜到这方面的工具,索性自己写了个,普通json自动转换为dubbo可识别的java序列化对象,可支持java实体类内嵌实体类及内嵌List这种转化,简单高效,现在实现的比较简单,就是个工具类,有兴趣的同学欢迎包装为nodejs通用插件或eggjs插件:[https://github.com/harryhan1989/json-to-java](https://github.com/harryhan1989/json-to-java )
dubbo 服务指定版本有两种方式 ```xml ``` ```xml ``` 在统一指定版本时,向zookeeper中注册服务生成的url参数中没有version, 取而代之的是default.version, 如:`dubbo://10.0.75.1:20880/top.crazyman.dubbo.service.CommonService?anyhost=true&application=dubbo-learn-provider&default.delay=-1&default.loadbalance=leastactive&default.version=1.0.0&delay=-1&dubbo=2.6.3&environment=product&generic=false&interface=top.crazyman.dubbo.service.CommonService&methods=getCurrentDate&pid=15440&side=provider×tamp=1541501405883&uptime=1541501405931"` 在index.js文件resolveService方法中,在匹配对应服务提供者时,是直接通过queryObj.version来判断的,这里会造成匹配不到正确的服务提供者。[index.js](https://github.com/p412726700/node-zookeeper-dubbo/blob/3.0.0%40beta/index.js#L95-L105) ```js for (let i = 0; i < size; i++) { const provider = url.parse(decodeURIComponent(children[i])); const queryObj = qs.parse(provider.query); if...
添加初始化钩子 连接成功触发
WARNING: The attribute 'register' is deprecated and will be removed in the future version. Use registry instead. FATAL: It seems that zookeeper cannot be connected, please check registry address or...
zk上有多台dubbo服务器,是否可以配置直连到某一台?
1、我启动了两个实例后,关闭其中一个,然后随机调用到关闭的实例,client会一直调用这个关闭实例,没有切换到正常的实例,并且没有任何异常抛出。 2、 ConnectionManager { chrootPath: undefined, nextServerIndex: 0, serverAttempts: 1, state: 1, options: { sessionTimeout: 30000, spinDelay: 1000, retries: 5 }, spinDelay: 1000, sessionTimeout: 30000, connectTimeout: 30000, pingTimeout: 10000, ConnectionManager...
Dubbo service init done 但是调用function的时候出错service not available, pls try later 这是什么意思 java版本实测是好的
throw new Error('offset: ' + offset + ' is out of buffer range.'); Error: offset: 4 is out of buffer range. at constructor.Record.deserialize (C:\Users\Administrator\WebstormProjects\sip-node\node_modules\node-zookeeper-client\lib\jute\index.js:465:15) at ConnectionManager.onSocketData (C:\Users\Administrator\WebstormProjects\sip-node\node_modules\node-zookeeper-client\lib\ConnectionManager.js:428:35) at emitOne (events.js:116:13)...
详情见https://github.com/jizhuofeng/node-dubbo-client-pool。 目前还不太完善后续在使用过程中持续优化。
特别感谢作者帮我解决了问题,人特别好。哈哈哈