egg-cloud icon indicating copy to clipboard operation
egg-cloud copied to clipboard

egg-cloud 具有调用 dubbo 服务,有注册发布dubbo服务吗?

Open a526672351 opened this issue 7 years ago • 24 comments

如题

a526672351 avatar Dec 11 '18 03:12 a526672351

目前是注册在 zk 里的,后面会支持 nacos https://nacos.io/ 以及更多的主流的注册中心

gxcsoccer avatar Dec 11 '18 06:12 gxcsoccer

@gxcsoccer 请问有注册zk发布dobbo服务的example或文档不?

a526672351 avatar Dec 11 '18 06:12 a526672351

https://www.yuque.com/egg/nodejs/kril24

gxcsoccer avatar Dec 11 '18 07:12 gxcsoccer

@gxcsoccer 刚才表达可能不够清楚,链接看了调用案例,没看到支持发布dobbo服务,有发布的文档或者example吗?

a526672351 avatar Dec 11 '18 07:12 a526672351

@a526672351 发布文档是什么?

文档里面就是发布到 zookeeper

gxcsoccer avatar Dec 11 '18 07:12 gxcsoccer

@gxcsoccer eggjs发布服务作为dobbo provider的意思,问下有没有这方面的文档。

a526672351 avatar Dec 11 '18 08:12 a526672351

dubbo provider 后面我补一个这个文档

gxcsoccer avatar Dec 11 '18 14:12 gxcsoccer

按照在语雀的教程,使用egg-cloud 出现 nodejs.RpcNoProviderError: No provider of org.eggjs.dubbo.UserService:1.0.0@HSF:echoUser() found! 环境是 nacos:1.13

java 项目可以发现到服务并调用 但是 egg-cloud 为因为 conn 不上而报上述错误

Kenshinhu avatar Oct 10 '19 02:10 Kenshinhu

按照在语雀的教程,使用egg-cloud 出现 nodejs.RpcNoProviderError: No provider of org.eggjs.dubbo.UserService:1.0.0@HSF:echoUser() found! 环境是 nacos:1.13

java 项目可以发现到服务并调用 但是 egg-cloud 为因为 conn 不上而报上述错误

确认服务是存在的?

gxcsoccer avatar Oct 10 '19 02:10 gxcsoccer

@Kenshinhu 可以检查一下服务的 version(1.0.0),group(HSF) 对不对的上

gxcsoccer avatar Oct 10 '19 02:10 gxcsoccer

@Kenshinhu 可以检查一下服务的 version(1.0.0),group(HSF) 对不对的上

{ "side": "provider", "methods": "sayHello,echoUser", "dubbo": "2.0.2", "pid": "9129", "interface": "org.eggjs.dubbo.UserService", "version": "1.0.0", "generic": "false", "revision": "1.0.0", "protocol": "dubbo", "application": "demo-provider", "category": "providers", "anyhost": "true", "group": "HSF", "timestamp": "1570696290594" }

这个是在nacos 里的元数据

proxy.js 里的 module.exports = { group: 'HSF', version: '1.0.0', services: [{ appName: 'dubbo', api: { UserService: { interfaceName: 'org.eggjs.dubbo.UserService', }, }, dependency: [{ groupId: 'eggjs', artifactId: 'dubbo-demo-api', version: '1.0-SNAPSHOT', }], }], };

看着应该是 对得上

Kenshinhu avatar Oct 10 '19 08:10 Kenshinhu

想问一下,proxy.js 里的dependency 要通过 java 项目打包成 jar放到eggjs 项目里吗?

Kenshinhu avatar Oct 10 '19 08:10 Kenshinhu

@Kenshinhu 你那个错误是服务都没找到。

想问一下,proxy.js 里的dependency 要通过 java 项目打包成 jar放到eggjs 项目里吗?

需要放到 assembly 下,用于 npm run proxy 生成调用代码

gxcsoccer avatar Oct 11 '19 06:10 gxcsoccer

@Kenshinhu 你那个错误是服务都没找到。

想问一下,proxy.js 里的dependency 要通过 java 项目打包成 jar放到eggjs 项目里吗?

需要放到 assembly 下,用于 npm run proxy 生成调用代码

刚刚尝试过,通过idea 把java项目的jar生成后,放到assembly,并执行 npm run rpc 后,再调用仍然出现上述的问题

Kenshinhu avatar Oct 11 '19 09:10 Kenshinhu

@Kenshinhu 你那个错误是服务都没找到。

想问一下,proxy.js 里的dependency 要通过 java 项目打包成 jar放到eggjs 项目里吗?

需要放到 assembly 下,用于 npm run proxy 生成调用代码

刚刚尝试过,通过idea 把java项目的jar生成后,放到assembly,并执行 npm run rpc 后,再调用仍然出现上述的问题

错误是服务都没找到

gxcsoccer avatar Oct 11 '19 14:10 gxcsoccer

@Kenshinhu 最好是能提供能复现的代码

gxcsoccer avatar Oct 11 '19 14:10 gxcsoccer

@Kenshinhu 最好是能提供能复现的代码

https://www.yuque.com/egg/nodejs/kril24 和语雀的流程一样的 仅是对应的nacos版本是1.1.3

npm init egg --type microservice dubbo-consumer

初始化的项目会有 proxy.js 这个没有修改过 module.exports = { group: 'HSF', version: '1.0.0', services: [{ appName: 'dubbo', api: { UserService: { interfaceName: 'org.eggjs.dubbo.UserService', }, }, dependency: [{ groupId: 'eggjs', artifactId: 'dubbo-demo-api', version: '1.0-SNAPSHOT', }], }], };

之后仅 修改 config/config.default.js 内容为: exports.rpc = { registry: { type: 'nacos', address: '127.0.0.1:8848', }, }; 加入nacos 地址

启动本地 nacos 后,访问 127.0.0.1:8848/nacos 在控制台的服务列表也出现 providers:org.eggjs.dubbo.UserService:1.0.0:HSF

Kenshinhu avatar Oct 11 '19 14:10 Kenshinhu

@Kenshinhu 我今天再试试

gxcsoccer avatar Oct 12 '19 02:10 gxcsoccer

@Kenshinhu 我今天再试试

好的,谢谢 看到对应的代码好像是 连接不上才报这个异常 我觉得可能和nacos 的版本有关

Kenshinhu avatar Oct 12 '19 02:10 Kenshinhu

@Kenshinhu 嗯,我用的是 nacos 1.0.0,我先确认下吧

gxcsoccer avatar Oct 12 '19 03:10 gxcsoccer

和这个namespace 有关系 吗?https://github.com/nacos-group/nacos-sdk-nodejs/issues/28

Kenshinhu avatar Oct 14 '19 03:10 Kenshinhu

@Kenshinhu 哦,有关系,你试试改成 public

gxcsoccer avatar Oct 14 '19 03:10 gxcsoccer

@Kenshinhu 哦,有关系,你试试改成 public 是在 proxy.js 修改吗? 'use strict';

module.exports = { group: 'HSF', version: '1.0.0', namespace:'public', services: [{ appName: 'dubbo', api: { UserService: { interfaceName: 'org.eggjs.dubbo.UserService', }, }, dependency: [{ groupId: 'eggjs', artifactId: 'dubbo-demo-api', version: '1.0-SNAPSHOT', }], }], };

Kenshinhu avatar Oct 14 '19 04:10 Kenshinhu

你试试是不是rpc目录下文件名字大小写写错了,大小写敏感的。

oneWalker avatar Oct 16 '20 09:10 oneWalker