消息队列
消息队列是一种软件体系结构模式,它允许两个或多个应用程序之间交换信息,而无需在交换信息的同时进行任何额外的协调。 消息队列由生产者、消息队列和消费者三部分组成。 生产者是发送消息的应用程序,消息队列是一个中间件,用于存储生产者发送的消息,消费者是接收消息的应用程序。 消息队列可以用于异步工作流或批处理系统,因为它们可以使应用程序之间的交互更加灵活,并且可以提高系统的可伸缩性。
例如,在一个电子商务应用程序中,当用户下订单时,生产者可以将订单信息发送到消息队列中。 消费者可以检索这些订单,并将其处理为打印订单、计算税款和运费、发送电子邮件确认等。 这样,生产者就可以快速处理用户的订单请求,而无需等待消费者完成处理。
消息队列技术最早出现在 1970 年代末期,当时它被用于管理主机之间的打印作业。 随着分布式计算技术的发展,消息队列技术也得到了广泛的应用。
到 1980 年代,消息队列技术已经成为了分布式系统中的标准组件,并被用于许多不同的应用程序,包括电子邮件系统、文件传输系统和远程过程调用系统。
在 1990 年代,随着互联网的普及,消息队列技术得到了进一步的发展。 公司开始使用消息队列来构建分布式系统,以实现数据同步、流量管理和其他功能。
近年来,随着云计算和微服务架构的兴起,消息队列技术又迎来了新的发展机遇。 现在,消息队列通常用于构建可伸缩、高可用的分布式系统,并且在云计算环境中得到了广泛的应用。
消息队列技术的发展可以分为几个阶段:
1970 年代末期:消息队列技术最初被用于管理主机之间的打印作业。
1980 年代:消息队列技术成为分布式系统中的标准组件,并被用于许多不同的应用程序,包括电子邮件系统、文件传输系统和远程过程调用系统。
1990 年代:随着互联网的普及,消息队列技术得到了进一步的发展。 公司开始使用消息队列来构建分布式系统,以实现数据同步、流量管理和其他功能。
21 世纪初:随着云计算和微服务架构的兴起,消息队列技术又迎来了新的发展机遇。 现在,消息队列通常用于构建可伸缩、高可用的分布式系统,并且在云计算环境中得到了广泛的应用。
常见的消息队列系统包括 IBM MQ、RabbitMQ、ActiveMQ 和 Apache Kafka 等。 这些系统提供了丰富的特性和功能,能够满足各种不同的应用场景需求。
- 1983,Teknekron 提出了总线思想,设计了The Infomation Bus
- 1990-1993,IBM公司实现了WebSphere MQ
- 1997,Teknekron 实现了TIBCO
- 1997, 微软实现了MSMQ
- 2001,java提出了JMS模型
- 2003,apache提出了activemq
- 2004,出现了AMQP规范
- 2007,RabbitMQ诞生
- 2011,Kafka诞生,消息队列处理能力显著提升。
- 2014,Amazon SQS 是一种云消息队列服务,由亚马逊 Web Services(AWS)提供。 SQS 可以轻松地在云中构建可伸缩的应用程序,并提供高可用性和容错能力。
- 2015,Google Cloud Pub/Sub 是一种云消息队列服务,由谷歌云提供。 Pub/Sub 可以轻松地在云中构建可伸缩的应用程序,并提供高可用性和容错能力。