(Message Queue 消息队列)JMS
文章目录
前言
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间中发送消息,进行异步通信
JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。
一、什么是ActiveMQ?
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS 实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位(在两个应用程序之间发送消息)。
二、启动MQ
直接双击activemq.bat就可以,注意根据系统选择(window 64位 选择 win64中的activemq)

启动成功。。。

Url:http://127.0.0.1:8161/admin/index.jsp
默认的用户名和密码:admin/admin

ActiveMQ的控制台,发布的消息都可以看见。

三、点对点(Queue)和发布/订阅(Topic)的区别
1、点对点(Queue)

2、发布/订阅(Topic)

3、点对点 与 发布/订阅的区别

四、ActiveMQ 点对点代码实现
1.消息发送者(Sender)
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class 生产消息到Queue
{
public static void main(String[] args) {
//创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"admin",
"admin",
"tcp://localhost:61616");
//声明连接
Connection connection = null;
//创建Session:用于发送消息和接收消息
Session session = null;
//创建消息的目的地
Destination destination = null;
//声明消息生产者
MessageProducer producer = null;
try {
//1,获得与ActiveMQ的连接
connection = connectionFactory.createConnection();
//2,开启这个连接
connection.start();
//3,创建Session对象:这将是个用于发送消息或接收消息的线程
//createSession 第一个参数transacted 表示是否支持事务
//第二个参数 acknowledgeMode 有如下几种
//1.AUTO_ACKNOWLEDGE 自动确认模式,不需客户端进行确认(通常使用这种)
//2.CLIENT_ACKNOWLEDGE 客户端进行确认
//客户端获得message之后需要进行message.acknowledge();
//3.DUPS_OK_ACKNOWLEDGE 允许重复消息
session = connection.createSession(Boolean.TRUE,
Session.AUTO_ACKNOWLEDGE);
//4,创建目的地,并指明消息所放队列的名字
destination = session.createQueue("香坊铁路局");//Queue是Destination子接口
//5,创建向该目的地发送消息的生产者
producer = session.createProducer(destination);
//6,设置持久化模式
// 持久化模式 NON_PERSISTENT不持久化,PERSISTENT持久化,默认是持久化的
//producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//默认是持久化的
//发送三个消息
for

本文介绍了ActiveMQ在Java环境下的消息队列实现,包括点对点(Queue)和发布/订阅(Topic)两种模式的区别,并提供了相应的代码实现示例。ActiveMQ作为JMS规范的实现,允许异步通信和消息传递。
最低0.47元/天 解锁文章
4941

被折叠的 条评论
为什么被折叠?



