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

why bolt not use SPI,For example, dubbo and sofa-rpc extension mechanism. #217

Open
XiaoWeiKIN opened this issue Apr 2, 2020 · 16 comments
Assignees

Comments

@XiaoWeiKIN
Copy link

Your question

describe your question clearly

Your scenes

describe your use scenes (why need this feature)

Your advice

describe the advice or solution you'd like

Environment

  • SOFABolt version:
  • JVM version (e.g. java -version):
  • OS version (e.g. uname -a):
  • Maven version:
  • IDE version:
@cytnju
Copy link
Contributor

cytnju commented Apr 2, 2020

@IndiraFinish 感谢关注bolt😄你期望SPI帮你实现什么需求呢?目前bolt的设计是一个轻量级的网络库框架,它的优点是连接事件的监听、连接池管理还有简单的开箱即用的RPC调用的能力,它不会提供太多RPC层面的能力。

@XiaoWeiKIN
Copy link
Author

@cytnju 例如ProtocolManager,管理多个版本的协议。都需要通过registerProtocol注册协议,可以通过spi。直接管理所有的协议吗

@XiaoWeiKIN
Copy link
Author

@cytnju 还有一个问题就是,如果我需要处理一个自定义的负载command,比如IM使用的消息。我要如何在一个协议中处理多个Command那(他们的CommandHandler是不同的)

@cytnju
Copy link
Contributor

cytnju commented Apr 2, 2020

@cytnju 还有一个问题就是,如果我需要处理一个自定义的负载command,比如IM使用的消息。我要如何在一个协议中处理多个Command那(他们的CommandHandler是不同的)

这个目前bolt这边已经实现了一套RPC功能的协议,你可以看下它的具体实现。RpcCommandHandler这个类。
此外,能否告知一下为何需要多个CommandHandler呢?一个CommandHandler理论上也是可以处理多种CommandCode的.

@cytnju
Copy link
Contributor

cytnju commented Apr 2, 2020

@cytnju 例如ProtocolManager,管理多个版本的协议。都需要通过registerProtocol注册协议,可以通过spi。直接管理所有的协议吗

这个的话当时没有考虑这个情况,不过确实可以这么实现,欢迎提PR来支持这个能力~

@cytnju cytnju self-assigned this Apr 2, 2020
@XiaoWeiKIN
Copy link
Author

@cytnju CommandHandler是处理Command,但是在CommandHandler中实际上和Command绑定的是Processer。名字起的不是很好,有点不是容易一下就理解

@XiaoWeiKIN
Copy link
Author

@cytnju 我参考dubbo,实现了一下SPI。可以提交个pr吗?

@cytnju
Copy link
Contributor

cytnju commented Apr 2, 2020

@cytnju CommandHandler是处理Command,但是在CommandHandler中实际上和Command绑定的是Processer。名字起的不是很好,有点不是容易一下就理解

确实如此,命名这一块不是很清晰,必须看过一遍代码才能清楚😂可以看下用户手册https://www.sofastack.tech/projects/sofa-bolt/sofa-bolt-handbook/

@cytnju
Copy link
Contributor

cytnju commented Apr 2, 2020

@cytnju 我参考dubbo,实现了一下SPI。可以提交个pr吗?

非常欢迎!🌹

@XiaoWeiKIN
Copy link
Author

@cytnju 为什么使用的jdk版本是1.6,可以升级到1.8吗。这个1.6版本貌似有点古老有很多新特性都没有办法支持。

@cytnju
Copy link
Contributor

cytnju commented Apr 3, 2020

@cytnju 为什么使用的jdk版本是1.6,可以升级到1.8吗。这个1.6版本貌似有点古老有很多新特性都没有办法支持。

好的 我今天给你升级一下吧 bolt 1.6.0以后的版本后续就升级成1.8的版本吧。

@XiaoWeiKIN
Copy link
Author

@cytnju 我提交了一个pr,升级了一下。你可以审核下。

@cytnju
Copy link
Contributor

cytnju commented Apr 7, 2020

@IndiraFinish bolt升到1.8在CI那边好像有些问题,我晚些时候处理下。

@XiaoWeiKIN
Copy link
Author

@cytnju 嗯好的

@XiaoWeiKIN
Copy link
Author

@cytnju 有个问题想请教下,为啥在使用负载均衡的情况下,可能会出现负载不均衡的情况那?

@cytnju
Copy link
Contributor

cytnju commented Apr 15, 2020

@cytnju 有个问题想请教下,为啥在使用负载均衡的情况下,可能会出现负载不均衡的情况那?

抱歉,最近都比较忙,没有即时回复。请问这个疑惑上下文是什么?

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