RocketMq(一)初识消息中间件

一、对消息的理解

  消息即为数据(data),数据有必定的规则、长度、大小。java

  Java Message Service(Java消息服务)简称JMS,为Java 程序提供一种通用的方式,来建立、发送、接收以及读取企业消息系统的消息。数据库

  标准JMSJSR914):https://www.jcp.org/en/jsr/detail?id=914 apache

  JMS 元素:服务器

 

  一、Provider提供方:服务提供者网络

 

  二、Producer生产者:建立和发送JMS消息的客户端架构

 

  三、Consumer消费者:接收JMS消息的客户端异步

 

  四、Client客户端:生产或消费消息的应用&进程分布式

 

  五、Message消息:服务端与客户端之间的传输数据对象ide

 

  六、Queue队列 :包含待读取消息的准备区域(点对点)性能

 

  七、Topic主题:发布消息的分布机制(发布&订阅)

  JMS提供五种消息主体:

  一、BytesMessage(字节)

  二、StreamMessage(流)

  三、TextMessage(文本、字符串)

  四、MapMessage(属性集合)

  五、ObjectMessage(对象)

 

二、对中间件的理解

  中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不一样的技术之间共享资源。中间件位于客户机/ 服务器的操做系统之上,管理计算机资源和网络通信,为咱们提供发送消息的程序或者服务。

  主流消息中间件有:

  一、ActiveMq(严格jms jsr914

  二、RabbitMq

  三、RocketMq

  四、Kafka

  .....等多种不常是在开发中使用的消息中间件。

三、为何要用消息中间件

  最重要的带来异步以及系统之间的解耦

  未使用MQ的系统之间调用状况图:

  

  使用MQ的系统之间调用状况图:带来了异步(提升订单系统的性能),系统进行了解耦

  

 

 

四、什么是RocketMq

  由国内阿里开源 java语言写的。贡献给apache ,做为apache 的维护开发。简称Rmq并无严格遵循jms规范(参考)。自己电商背景有关。

  RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件,由java进行开发。

五、为何选择RocketMq

  一、稳定无单点故障 不会由于某台机器或者某个节点宕机而影响系统正常使用

  二、 集群功能完善

  三、经历过双十一

  四、Java语言实现

  五、架构轻、源码可读性好

  七、生态圈完善,配套好

  八、开源社区活跃

 六、RocketMq的标准术语

  Producer

  消息生产者,生产者的做用就是将消息发送到 MQ,生产者自己既能够产生消息,如读取文本信息等。也能够对外提供接口,由外部应用来调用接口,再由生产者将收到的消息发送到 MQ。

  Producer Group

  生产者组,简单来讲就是多个发送同一类消息的生产者称之为一个生产者组。在这里能够不用关心,只要知道有这么一个概念便可。

  Consumer

  消息消费者,简单来讲,消费 MQ 上的消息的应用程序就是消费者,至于消息是否进行逻辑处理,仍是直接存储到数据库等取决于业务须要。

  Consumer Group

  消费者组,和生产者相似,消费同一类消息的多个 consumer 实例组成一个消费者组。

  Topic

  Topic 是一种消息的逻辑分类,好比说你有订单类的消息,也有库存类的消息,那么就须要进行分类,一个是订单 Topic 存放订单相关的消息,一个是库存 Topic 存储库存相关的消息。

  Message

  Message 是消息的载体。一个 Message 必须指定 topic,至关于寄信的地址。Message 还有一个可选的 tag 设置,以便消费端能够基于 tag 进行过滤消息。也能够添加额外的键值对,例如你须要一个业务 key 来查找 broker 上的消息,方便在开发过程当中诊断问题。

  Tag

  标签能够被认为是对 Topic 进一步细化。通常在相同业务模块中经过引入标签来标记不一样用途的消息。

  Broker

  Broker 是 RocketMQ 系统的主要角色,其实就是前面一直说的 MQ。Broker 接收来自生产者的消息,储存以及为消费者拉取消息的请求作好准备。

  Name Server

  Name Server 为 producer 和 consumer 提供路由信息。

七、RocketMq官方文档

http://rocketmq.apache.org/docs/simple-example

相关文章
相关标签/搜索