JMS(Java MessageService)是一套Java的API,最初设计目的是为了让应用程序能访问现有消息中间件系统,后来直接被消息中间件开发商采用,直接用以开发消息中间件。常见的消息中间件有ActiveMQ,RocketMQ,RabbitMQ,Kafka。
常用消息中间件对比如下:
“消息”是两台计算机之间传送的数据单位。消息可以很简单,如只包含文件字符串信息;也可以很复杂,如包含自定义的对象。
“消息队列”是用于在消息传输过程中存储消息的容器。消息队列管理器在消息从源到目标时充当中间人。
消息队列存在的目的是保证消息的可靠传输,若发消息时接收者不可用,则消息队列会保留消息,直至成功传递。
消息队列的主要特点是异步处理,主要目的是为了减少响应时间与解耦,所以主要使用场景就是比较耗时且不用及时返回结果的数据传输。若使用了消息队列,实际上若能确保消息格式不变,消息的发送方和接收方都不需要彼此联系,这就是解耦。所以使用异步交互的地方其实都可以使用到消息队列。由于同步通常意味着阻塞,而大量线程阻塞则会降低计算机的性能,如在高峰期的订单处理,在前端时可将订单信息放入消息队列,后端应用从队列中依次获取消息处理,慢慢消化订单。
JMS中的一些角色
Broker:Broker其实就是一个服务器,一个Server,如启动一个RocketMQ&#x