Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rpc服务接口如何定义? #1

Closed
ordercard opened this issue Aug 4, 2017 · 9 comments
Closed

rpc服务接口如何定义? #1

ordercard opened this issue Aug 4, 2017 · 9 comments

Comments

@ordercard
Copy link

不想共用你说的那个接口 可以在消费者 和提供者项目中分别 做吗

@TFdream
Copy link
Owner

TFdream commented Aug 4, 2017

没明白你的意思,RPC服务是生产者/消费者 模式,api接口是两者之间的契约;实际开发中服务提供者的项目结构如下:
| - demo
| - | - demo-api
| - | - demo-biz

其中:

  • demo-api 只提供简单的api接口定义,demo-api 一般没有其他依赖;
  • demo-biz 是服务具体实现,依赖 demo-api,实现了demo-api中定义的所以服务接口,一般以jar/war包形式独立部署;

开发中,都是将 demo-api deploy到公司的私服上 供 服务消费者依赖;将demo-biz 打包部署到线上服务器供消费者调用。

服务消费者 不需要知晓 服务提供者的内部实现、部署在哪儿,只管调用;不知道我的解释你明白了没有。

@TFdream TFdream changed the title 111 rpc服务接口如何定义? Aug 4, 2017
@ordercard
Copy link
Author

我的意思是 如果 我把 demo-api删了 , 把 里面的 实体 和接口 分别在 服务者和消费者中 重新创建和demo-api一样的接口和实体,行吗? 我刚才测试的我这样做不行

@ordercard
Copy link
Author

可能是我测试的方式错了吧,我刚才测试的时候 直接把那个 api -demo这个删掉了 ,然后 把里面的实体类 还有声明的接口分别复制到了 消费者和生产者项目里面 ,在测试服务端没问题 ,就是 消费者出问题了

@TFdream
Copy link
Owner

TFdream commented Aug 4, 2017

这肯定是不行的,具体的你可以去看看 RPC框架内部实现原理:http://blog.jobbole.com/92290/

@ordercard
Copy link
Author

我以为 那个api-demo 是可以不要的

@TFdream
Copy link
Owner

TFdream commented Aug 4, 2017

demo-api 是服务接口定义,相当于 生产者和消费者 之间的 契约,两者都需要依赖demo-api。

@ordercard
Copy link
Author

哦 ,那我 生产者和消费者两个项目里面都定义了相同的接口不就行了嘛,还要依赖,我觉得不能理解

@ordercard
Copy link
Author

还在吗 ,我看了你这个发的这个文章 我感觉应该是没有解决我的问题 , 虽然在发送的时候会发送出调用的接口是什么 ,但是 我只是把同样的接口放在了 服务和消费者项目里面了 ,如果安卓文章这么说的话 ,我想我这样做应该是没有问题的 可否 来个 qq 私聊下?

@TFdream TFdream closed this as completed Aug 8, 2017
@ordercard
Copy link
Author

大致懂了 多谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants