spring框架 常见的消息队列有哪些,它们之间有什么区别?
常见的消息队列有哪些,它们之间有什么区别?
Rabbitmq:
Rabbitmq是一个基于Erlang语言的开源消息队列。Rabbitmq在数据一致性、稳定性和可靠性方面都非常优秀。它直接或间接地支持多种协议,并能很好地支持多种语言。然而,它的性能和吞吐量并不令人满意。由于Erlang语言的局限性,二次开发的成本很高。
Kafka:
Kafka是LinkedIn于2010年12月开发的分布式流媒体平台,开源。它现在是Apache的顶级项目,是一个高性能的跨语言分布式流媒体平台。快速持久化,消息持久化开销在O(1)以下;高吞吐量
ActiveMQ:
是Apache下的一个子项目,介于zeromq和rabbitmq之间。与rabbitmq类似,它可以用少量代码高效地实现高级应用场景,并且只需要较低的成本。被称为消息中间件的“瑞士军刀”。然而,ActiveMQ不够轻量级,并且当有许多队列时,它不能很好地支持。据说也有丢失信息的情况。
Rocketmq:
Rocketmq是阿里巴巴的开源消息中间件。它目前在Apache中孵化,并在纯Java中开发。它具有高吞吐量、高可用性,适合大规模分布式应用
一般来说,消息队列提供了一种异步消息传递机制。在windows中,窗口的执行分为以下几个步骤:
1、窗口类声明
2、窗口类注册
3、创建窗口
4、显示窗口
5、消息循环。一般来说,当窗口中发生事件时,系统会以消息的形式将事件发送到消息队列,消息队列至少包括:消息类型、窗口句柄、附加参数等,当窗口在消息循环中时,系统使用消息队列。当窗口事件发生时,它会调用getmessage()函数将消息从消息队列中取出,交给您所在级别声明的窗口进程即回调函数进行处理,从而完成事件的响应。希望能对你有所帮助。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。