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

是否有打算对reactive和连接多路复用等进行支持 #57

Open
759434091 opened this issue Jul 3, 2019 · 1 comment
Open

Comments

@759434091
Copy link

759434091 commented Jul 3, 2019

Reactive Stack

基于Project Reactor 编程库和 Spring5 Reactive Stack 进行异步化的响应式编程。请问对于这一方面有支持的想法吗

服务端目前处理是基于业务线程池化,进行同步阻塞业务再提交task返回。
如果服务端使用Reactive Data、Reactive Redis、WebFlux WebClient开发,可能可以免去新建另外的业务线程池。数据仅仅通过切换Eventloop流动变化,解放线程,而不是在从业务线程池中的一条进行不断的阻塞等待。
(表述可能有误,未能讲明我的意思)

连接中多路复用

目前Rpc协议可以根据request&correlation_id 实现唯一标识。
对于同一个连接,Client可以同时发出多个不同的ServicePackage,Server亦可以乱序响应多个不同的ServicePackage。

客户端:
目前的ProtobufRpcProxy 受限于同步阻塞的方式,在一条线程上发送请求,然后开始doWaitCallback。这样处理感觉类似Jdbc,不过是在Netty的基础上强行在业务线程阻塞等待(根据callbackDone标志)。是否没有发挥出当先NIO和目前Rpc协议的最大优势。

这个是目前的Rpc协议以及其实现所支持的,不过似乎在最终提供给业务开发方层面却没能够这么做(Blocking+NonBlocking=Blocking)

预编译

目前预编译需要另外加插件和配置进行生成编解码的文件,使用File/OutputStream/Compiler/MiniTemplater进行相关实现。使用注解处理器会不会更加方便呢,特别是对于Spring boot fatJar来讲。

DEMO

根据你的源码。我大概编写出了一些实现的DEMO。目前对相关开发了解不深,写的比较挫
reactor-rpc4j
jprotobuf-annotation-processor

@jhunters
Copy link
Collaborator

非常感谢反馈, reactor模式我们详细了解一下。
基于注解处理的确是友好一些, 也是不少开发者反馈使用asm来生成,提升效率,这个我们也会安排时间来分析一下

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