消息队列在netty后台中起到什么作用?

plugin 发布于 2016/01/27 01:53
阅读 542
收藏 0

处理网络io的线程不能被阻塞.

所以, 拿到客户端发过来的消息后, 具体的业务逻辑应该由丢到自己建的线程池中执行

发现大多数情况都是丢到消息队列中, 然后由业务线程去取并执行

我不理解的是, 如果这个消息队列仅仅是为了保证异步性, 直接丢到线程池中执行, 不就可以吗? 为什么还要多一步消息队列的存取操作? 如果是定时任务我觉得用消息队列倒是更方便.而即时的一些东西为什么要消息队列?

另外redis似乎也可以实现实现消息队列的功能, 和那些专业的消息队列相比有什么优劣吗?

谢谢大家释疑


加载中
1
c
cep

1丢到消息队列中, 然后由业务线程去取并执行 ,并没有限制你业务的实现(单个线程或者线程组)

2 放到消息队列中,能够保持消息的顺序,对于有些特殊的应用,如强调消息顺序,如果直接丢到线程池中,可能会有问题

3 用redis(或者其他)做消息队列,是进程外的消息队列,在消息管理的方式可能会有更多种选择,同时可以分摊到多个redis,好处多多,但是毕竟是进程外的,肯定会有部分效率损失,具体应用在系统的哪一部分结合具体要求吧

返回顶部
顶部