1、什么是JMQ
1.1、JMQ整体介绍
JMQ是系统技术部消息组自主研发的,提供可靠传递消息及数据的消息中间件平台,具有高的可用性、扩展性和运维性。
1.2、JMQ适用场景
- 系统解耦
- 非实时系统通信
- 异步流程处理
1.3、基本概念
术语 | 说明 | 约束 |
---|---|---|
app/应用 | 接入JMQ的系统或应用的名称,全局唯一。生产者和消费者统称为应用。 | 字母开头,字母、数字和下划线组合,控制在30个字符以内 |
broker | JMQ的服务端实例 | |
businessId/业务ID | 一条业务消息的ID,用于于归档查询 | 推荐每一条消息的businessId都唯一,方便精确查询(可以不唯一),长度须小于等于100个字节,建议小于16个字符 |
message/消息体 | 业务方通过JMQ传递的消息内容,在发送时客户端会对消息进行压缩 | 压缩之后的消息体应小于 2M |
topic/主题 | 消息的识别串,代表一种消息类型,全局唯一 | 字母开头,字母和数字组合,控制在20个字符以内 |
事务消息 | 生产者发送一系列消息时,可以控制是否提交,是否回滚 | |
就近发送 | 生产消息时,会优先发送给与客户端同机房的broker(慎重选择) | |
广播消息 | 生产者发送一条消息后,具有订阅关系的所有消费者的每一个实例都能够收到该条消息 | |
归档 | 消息被成功消费后,若开启归档,消息异步归档到云存储 | |
消费者 | 某个消息的订阅端,称为消费者 | |
生产者 | 某个消息的发送端,称为生产者 | |
重试 | 消费失败后,消息会被重试。失败是指在消息消费过程中,抛出异常。 | |
顺序消息 | 发送端发送一系列消息后,消费端严格按照发送的顺序进行消费 |
详细学习可以参考此博客文章:https://blog.csdn.net/javahongxi/article/details/54411464