JMS
什么是JMS?
Java消息服务(Java Message Service),Java平台中关于面向消息中间件的接口
JMS是一种与厂商无关的 API,用来访问消息收发系统消息.
使用场景:
(1)核心应用:
解耦:订单系统-》物流系统
异步:用户注册-》发送邮件,初始化信息
削峰:秒杀、日志处理
(2)跨平台 、多语言
(3)分布式事务、最终一致性
(4)RPC调用上下游对接,数据源变动->通知下属
Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件
特点:
(1)支持Broker和Consumer端消息过滤
(2)支持发布订阅模型,和点对点,
(3)支持拉pull和推push两种消息模式
(4)单一队列百万消息、亿级消息堆积
(5)支持单master节点,多master节点,多master多slave节点
(6)任意一点都是高可用,水平拓展,Producer、Consumer、队列都可以分布式
(7)消息失败重试机制、支持特定level的定时消息
(8)新版本底层采用Netty
(9)4.3.x支持分布式事务
(10)适合金融类业务,高可用性跟踪和审计功能。
概念:
(1)Producer:消息生产者
(2)Producer Group:消息生产者组,发送同类消息的一个消息生产组
(3)Consumer:消费者
(4)Consumer Group:消费同类消息的多个实例
(5)Tag:标签,子主题(二级分类)对topic的进一步细化,用于区分同一个主题下的不同业务的消息
(6)Topic:主题, 如订单类消息,queue是消息的物理管理单位,而topic是逻辑管理单位。一个topic下可以有多个queue,
(7)默认自动创建是4个,手动创建是8个
(8)Message:消息,每个message必须指定一个topic
(9)Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
(10)Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现、路由、元数据信息,可以多个部署,互相独立(比zookeeper更轻量)
(11)Offset: 偏移量,可以理解为消息进度
(12)commit log: 消息存储会写在Commit log文件里面
网友评论