zongzibinbin / MallChat

mallchat的后端项目,是一个既能购物又能聊天的电商系统。以互联网企业级开发规范的要求来实现它,电商该有的购物车,订单,支付,推荐,搜索,拉新,促活,推送,物流,客服,它都必须有。持续更新ing。。(点个star,不迷路)
Apache License 2.0
2.8k stars 746 forks source link

Thread使用的问题 #29

Open Kaiyyyyy opened 1 year ago

Kaiyyyyy commented 1 year ago

问题思考来源于 issues #13

问题1: eventLoop thread会执行io操作

  clone代码后发现authorize是在eventLoop thread(并未在pipeline中添加切换thread的操作)中执行的,并且后续有同步执行redis和db的操作,存在的问题是cpu和memory都表现良好的前提下消息处理吞吐量提升不上去。

问题2:writeAndFlush这个方法无需在单独的thread中执行

  这个线程池在项目中没有找到其他用到的地方,writeAndFlush最后在pipeline中执行时会切换到evenLoop thread,此处再使用线程池中反而会得不偿失。 
image image

问题3(建议):使用Event时在发布事件处做同/异步的处理,特别是在non-blocking的线程模型下更应该谨慎的处理线程使用。

image

问题4:作者有没有意向用reactive替换现有的server端代码。

josek43326 commented 1 year ago

问题4:可以尝试使用 Vert.x

zongzibinbin commented 1 year ago

问题4倒是没有考虑reactive替换现有的server端代码。其他的几个点你提的很对,准备改了