sofa-bolt icon indicating copy to clipboard operation
sofa-bolt copied to clipboard

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

Open XiaoWeiKIN opened this issue 5 years ago • 16 comments

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:

XiaoWeiKIN avatar Apr 02 '20 02:04 XiaoWeiKIN

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

cytnju avatar Apr 02 '20 03:04 cytnju

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

XiaoWeiKIN avatar Apr 02 '20 03:04 XiaoWeiKIN

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

XiaoWeiKIN avatar Apr 02 '20 03:04 XiaoWeiKIN

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

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

cytnju avatar Apr 02 '20 03:04 cytnju

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

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

cytnju avatar Apr 02 '20 03:04 cytnju

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

XiaoWeiKIN avatar Apr 02 '20 10:04 XiaoWeiKIN

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

XiaoWeiKIN avatar Apr 02 '20 10:04 XiaoWeiKIN

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

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

cytnju avatar Apr 02 '20 11:04 cytnju

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

非常欢迎!🌹

cytnju avatar Apr 02 '20 11:04 cytnju

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

XiaoWeiKIN avatar Apr 03 '20 02:04 XiaoWeiKIN

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

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

cytnju avatar Apr 03 '20 02:04 cytnju

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

XiaoWeiKIN avatar Apr 03 '20 02:04 XiaoWeiKIN

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

cytnju avatar Apr 07 '20 09:04 cytnju

@cytnju 嗯好的

XiaoWeiKIN avatar Apr 07 '20 09:04 XiaoWeiKIN

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

XiaoWeiKIN avatar Apr 09 '20 05:04 XiaoWeiKIN

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

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

cytnju avatar Apr 15 '20 14:04 cytnju