eggjs / egg

🥚 Born to build better enterprise frameworks and apps with Node.js & Koa
https://eggjs.org
MIT License
18.9k stars 1.82k forks source link

egg-rpc-generator抛错 #3219

Closed hupengfoot closed 5 years ago

hupengfoot commented 5 years ago

已安装egg-sofa-rpc,执行egg-rpc-generator时抛如下错误 image

atian25 commented 5 years ago

看起来是缺了 rpc 插件没开启。

hupengfoot commented 5 years ago

看起来是缺了 rpc 插件没开启。

是哪个插件?我看egg-rpc是一个http的rpc框架和egg-sofa-rpc应该没啥关系

gxcsoccer commented 5 years ago
$ npm i egg-rpc-base --save
exports.rpc = {
  enable: true,
  package: 'egg-rpc-base',
};
gxcsoccer commented 5 years ago

egg-rpc 模块被抢占了,所以只能用 egg-rpc-base

hupengfoot commented 5 years ago

egg-rpc 模块被抢占了,所以只能用 egg-rpc-base

这个问题解决了,但是执行egg-rpc-generate后并未产生app/proxy/ProtoService.js文件,日志报如下错误 image

gxcsoccer commented 5 years ago

@hupengfoot

你的 jar 包里有 com.alipay.sofa.rpc.test.ProtoService 这接口吗?

你是走的 pb 还是 hessian 序列化?

hupengfoot commented 5 years ago

@hupengfoot

你的 jar 包里有 com.alipay.sofa.rpc.test.ProtoService 这接口吗?

你是走的 pb 还是 hessian 序列化?

我这边注册的服务端也是node,proto配置如下 image 我想使用node client rpc调用node server,这样可以吗?

gxcsoccer commented 5 years ago

com.alipay.sofa.rpc.test.ProtoService => com.alipay.sofa.rpc.protobuf.ProtoService

hupengfoot commented 5 years ago

com.alipay.sofa.rpc.test.ProtoService => com.alipay.sofa.rpc.protobuf.ProtoService

已解决👍

xiangnuans commented 5 years ago
2019-01-21 10 45 07

碰到和楼主一样的问题了,@gxcsoccer帮忙看一下?

gxcsoccer commented 5 years ago

@CoCoyh

先安装 egg-rpc-base 插件

$ npm i egg-rpc-base --save

在 config/plugin.js 里增加下面配置

exports.rpc = {
  enable: true,
  package: 'egg-rpc-base',
};
gxcsoccer commented 5 years ago

也可以直接用 egg 脚手架创建项目

$ npx init --type microservice your-project 
xiangnuans commented 5 years ago

解决了,谢谢!但是还有个请教一下,

2019-01-21 11 33 57

proto文件报错,是一行引起的问题,这是为什么,应该怎么写?我把它删了,就好了

gxcsoccer commented 5 years ago

@CoCoyh protobuf 里面的注释是 // 或 / ... /

https://developers.google.com/protocol-buffers/docs/proto#adding-comments

xiangnuans commented 5 years ago

好的,谢谢,刚开始接触这个,有点懵~~

xiangnuans commented 5 years ago

我在执行npm run dev 报错了,是生成的proxy文件里的错误,但这个文件提示不要改动,再帮忙看下@gxcsoccer

2019-01-21 1 38 41
gxcsoccer commented 5 years ago

@CoCoyh 你需要配置 rpc 的 registry 或指定直连的地址

配置文件:$app_root/config/config.default.js

registry 配置

registry 你可以选择 zookeeper 或 nacos

exports.rpc = {
  registry: {
    type: 'nacos', // 如果是 zookeeper,这里填 zookeeper
    address: '127.0.0.1:8848', // 换成你实际的地址
  },
};

直连配置

exports.rpc = {
  client: {
    'sofarpc.rpc.service.url': '127.0.0.1:12200', // 换成实际的地址
  },
};
xiangnuans commented 5 years ago

还是有问题~

2019-01-21 3 29 57
xiangnuans commented 5 years ago

@gxcsoccer java rpc是下载的你的demo

gxcsoccer commented 5 years ago

@gxcsoccer java rpc是下载的你的demo

地址发我下

xiangnuans commented 5 years ago

@gxcsoccer https://github.com/gxcsoccer/sofa-rpc-java-demo

gxcsoccer commented 5 years ago

@gxcsoccer https://github.com/gxcsoccer/sofa-rpc-java-demo

@CoCoyh 我更新了下 sofa-rpc-java-demo 这个 java 代码,你 git pull 一下

xiangnuans commented 5 years ago

@gxcsoccer 好的,我试试·

gxcsoccer commented 5 years ago

如果走直连的话,url 需要加一个参数 serialization=protobuf

exports.rpc = {
  client: {
    'sofarpc.rpc.service.url': '127.0.0.1:12200?serialization=protobuf', // 换成实际的地址
  },
};
xiangnuans commented 5 years ago

这个问题解决了,请求成功,多谢~ 我在请教个问题,我本地搭建了一个dubbo-admin,sofa-rpc-java-demo这个服务起来是不是相当于注册到zookeeper了,那我是不应该在dubbo-admin提供者里能看到该服务?但是我现在没看到,这个问题你了解吗?

2019-01-21 7 24 56 2019-01-21 7 25 07
xiangnuans commented 5 years ago

@gxcsoccer