wwbmmm commented on PR #2358:
URL: https://github.com/apache/brpc/pull/2358#issuecomment-1737317632

   > >      
这块其实现在是能兼容原有协议的,只是新Client能交互tag信息,server端拿到信息可以用来区分不同tag的woker组。如果旧的Client发送消息,因为没有PTAG这个包,请求就会在默认的那个worker池子里面执行,就像现在只有一个woker组一样。
   虽然旧的Client也能处理,但是只能放在默认的worker组里处理。无法做到所有Client一视同仁,按照请求的业务性质来决定worker组。
   
另外,新Client发给旧Server是不兼容的。好像只要用户升级了这个版本的brpc,client端发出来的包就都会带上这个头?那旧server就处理不了了。
   
   > >      
这块其实不是让Client决定Server的tag数量,Server根据自身服务的接口来决定tag的数量,Client端要是想把请求按照预期划分开到Server不同的worker组处理,就需要按照Server的规则去设置connection_group去访问Server。
   嗯,我的意思是让Client来决定哪些请求进哪个worker组,不太合理。因为这个属于server内部实现的细节,client不应该关注。
   
   > >      
其实一开始也想要这么去做的,但是感觉性能上会有些损失,bthread_start_xxx将任务发送到指定的worker上会有线程间的交互,不如现在这种任务解析出来到放到thread
 local的worker上去了。最终其实还是希望能做到Run To Complete。
   如果用端口来区分,应该不会有性能损失吧?
   
   > > 2. 
关于bthread支持多tag,是否考虑支持不同的tag指定不同的worker数量呢?毕竟不同tag执行的业务逻辑性质会有较大的差异,对worker数量的需求应该是不一样的
   > >    这个不太好做,目前就是依赖把bthread_min_concurrency配置成非0,让服务自动调整worker线程的数量。
   
   不太好做可以放到后面再实现。不过设计上,最好考虑未来实现这个功能是否好做,以免后面要大改。
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to