消息中间件ActiveMQ的学习(JMS和ActiveMQ的学习)

最近在写微服务架构的项目,使用的是dubbo来让服务上传到注册中心,rpc远程调用,这样消费者也就是web页面可以远程调用服务。但此时存在了问题。
首先,服务会越来越多,消费者也是,有的站点需要调用多个服务,此时也就代表着项目的耦合度很高,因为如果有的站点需要依次执行很多服务提供的接口服务,此时一旦有一个服务出现问题,就会出现失效,所以此时消息中间件出场了。

什么是消息中间件?

  • 定义:

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有
Producer(生产者)
Consumer(消费者)
Broker(消息服务器,作为server提供消息核心服务)
Topic :主题,发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
Queue:队列,PTP模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收
Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

  • 常见的消息中间件产品:
  • (1)ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。
  • (2)RabbitMQAMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。
  • (3)ZeroMQ史上最快的消息队列系统
  • (4)KafkaApache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。

为什么使用消息中间件可以降低耦合?

我们可以提供消息中间件将消费者的需求(需要调用什么服务)送到中间件中,此时服务查看中间件的信息,发现了有消费者需要调用自己的服务,就开始执行,也就是说,此时我们改变了之前消费者和提供者同步的机制,进行异步执行。

JMS是什么?

JMS(Java Meaasge service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。
JMS本身只定义了一系列的接口规范,是一种与厂商无关的 API,用来访问消息收发系统。JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS 客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。

  • JMS 定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
名称作用
TextMessage一个字符串对象
MapMessage键值对数据
ObjectMessage一个序列话对象
BytesMessage一个字节的输入流
StreamMessagejava原始值的数据流

JMS消息传递类型

方式概念
点对点一个生产者和一个消费者一一对应(一条消息只能有一个接收方(消费者))
发布/ 订阅模式一个生产者产生消息并进行发送后,可以由多个消费者进行接收。(一条消息可以有多个接收方)

ActiveMQ的下载和安装

  • 下载linux或者window下的压缩包,我这里使用的是linux
  • 解压缩后进入目录使用以下命令开启:
 ./activemq start
  • 开启防火墙端口或者直接关闭防火墙,开启防火墙端口命令如下(centos7版本):
firewall-cmd  --add-port=61616/tcp --permanent
firewall-cmd  --add-port=8161/tcp --permanent
firewall-cmd  --reload
  • 虚拟机IP地址+访问8161端口:

在这里插入图片描述

  • 此时可以进入管理界面:
    在这里插入图片描述
  • 账户和密码均为admin
    在这里插入图片描述
    在这里插入图片描述
名称含义
Number Of Pending Messages等待消费的消息 这个是当前未出队列的数量。
Number Of Consumers消费者 这个是消费者端的消费者数量
Messages Enqueued进入队列的消息 进入队列的总数量,包括出队列的
Messages Dequeued出了队列的消息  可以理解为是消费这消费掉的数量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值