Java中使用AMQ的简单实例

好了,接上一篇,在对JMS的概念以及AMQ的下载安装有了一定认识之后,本篇就来学习一下AMQ在Java中的Hello World级使用(下文我将着重把重点写在注释里面,请注意代码注释部分!!!)。

  1. 开发环境

AMQ 5.14.5 服务启动运行
准备Java Maven项目

依赖jar包在apache-activemq-5.14.5根目录下即可找到,或者直接Maven依赖:

org.apache.activemq
activemq-all
5.14.5

1
2
3
4
5
2. 点对点模型

2.1 队列消息发送者

编写 QueueProducer.java 如下:

package com.jastar.activemq.queue;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
* 队列消息-发送(生产)者
*


* ClassName: QueueProducer
*



* Copyright: (c)2017 JASTAR·WANG,All rights reserved.
*






/** 默认用户名 */
public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
/** 默认密码 */
public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
/** 默认连接地址(格式如:tcp://IP:61616) */
public static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;
/** 队列名称 */
public static final String QUEUE_NAME = "hello amq";

// 连接工厂(在AMQ中由ActiveMQConnectionFactory实现)
private ConnectionFactory connectionFactory;

// 连接对象
private Connection connection;

// 会话对象
private Session session;

// 消息目的地(对于点对点模型,是Queue对象;对于发布订阅模型,是Topic对象;它们都继承或实现了该接口)
private Destination destination;

// 消息发送(生产)者
private MessageProducer messageProducer;

public static void main(String[] args) {
    QueueProducer producer = new QueueProducer();
    producer.doSend();
}

public void doSend() {
    try {
        /**
         * 1.创建连接工厂<br>
         * 构造函数有多个重载,默认连接本地MQ服务器,也可以手动设置用户名、密码、连接地址信息<br>
         * new ActiveMQConnectionFactory(userName, password, brokerURL)
         */
        connectionFactory = new ActiveMQConnectionFactory();

        /**
         * 2.创建连接
         */
        connection = connectionFactory.createConnection();

        /**
         * 3.启动连接
         */
        connection.start();

        /**
         * 4.创建会话<br>
         * param1:是否支持事务,若为true,则会忽略第二个参数,默认为SESSION_TRANSACTED<br>
         * param2:确认消息模式,若第一个参数为false时,该参数有以下几种状态<br>
         * -Session.AUTO_ACKNOWLEDGE:自动确认。客户端发送和接收消息不需要做额外的工作,即使接收端发生异常,
         * 也会被当作正常发送成功 <br>
         * -Session.CLIENT_ACKNOWLEDGE:客户端确认。客户端接收到消息后,必须调用message.
         * acknowledge() 方法给予收到反馈,JMS服务器才会把该消息当做发送成功,并删除<br>
         * -Session.DUPS_OK_ACKNOWLEDGE:副本确认。一旦接收端应用程序的方法调用从处理消息处返回,
         * 会话对象就会确认消息的接收,而且允
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值