您的位置:首页 > 运维架构 > Linux

Linux安装AcvtiveMQ并且Java编写Helloworld

2020-03-18 07:24 351 查看

一、前言

1.ActiveMQ是java语言编写的,所以需要先配置java环境变量。
2.安装和配置好ActiveMQ
2.使用java编写一个队列(queue)的HelloWorld

二、话不多说上步骤

1.安装步骤是及其的简单了,只需要解压。我是在压缩包目录下使用的命令。

注意路径

tar zxvf apache-activemq-5.12.0-bin.tar.gz -C /opt/module/

2.改个名,看着会舒服点。

mv apache-activemq-5.12.0 activemq


3.直接启动。进入到activemq目录

bin/activemq start

4.查看进程。出现这个说明启动成功啦。。。

ps -ef|grep activemq


5.web页面访问,需要提前关闭防火墙或开放8161端口

IP:8161


6.登录,默认用户名密码都是admin。

http://IP:8161/admin/

三、编写HelloWorld

1.建一个maven工程

2.导入依赖

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.sourcce>1.8</maven.compiler.sourcce>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
</dependencies>

3.建包建类就不说了。直接上代码
(1)produce,生产者的

注意修改IP

public static final String ACTIVEMQ_URL = "tcp://192.168.xx.xxx:61616";
public static final String QUEUE_NAME = "queue01";

public static void main(String[] args) throws JMSException {
//1.创建连接,指定服务器的URl地址,使用默认的用户名和密码
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
//2.创建连接
Connection connection = activeMQConnectionFactory.createConnection();
//开启
connection.start();
//创建session会话
//两个参数 第一个参数是否开启事务 /第二个叫签收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(QUEUE_NAME);
MessageProducer messageProducer = session.createProducer(queue);
for (int i = 1; i <= 6; i++) {
//创建发送内容
TextMessage textMessage = session.createTextMessage("queue" + i);
//发送出去
messageProducer.send(textMessage);
}
//关闭资源
messageProducer.close();
session.close();
connection.close();
System.out.println("消息发送完毕...");
}

(2)consumer,消费者

注意修改IP

public static final String ACTIVEMQ_URL = "tcp://192.168.25.138:61616";
public static final String QUEUE_NAME = "queue01";

public static void main(String[] args) throws JMSException, IOException {
System.out.println("2号消费者");
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
Connection connection = activeMQConnectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(QUEUE_NAME);
MessageConsumer messageConsumer = session.createConsumer(queue);
//方式一、receive方法是重载方法 一个可以设置时间等待,一个可以不设置时间。
/*   while (true) {
TextMessage message = (TextMessage) messageConsumer.receive(5000);
if (message != null) {
System.out.println("consumer...." + message.getText());
} else {
break;
}

}
messageConsumer.close();
session.close();
connection.close();*/
//2.方法二、监听器
messageConsumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
if (null != message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("MessageListener..." + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
System.in.read();
messageConsumer.close();
session.close();
connection.close();
//如果是两个消费者会遵循轮训的算法,平分队列的消息
}

四、测试

1.执行代码之前看一下queue队列列表为空

2.先执行produce生产者的代码,刷新在看页面

是不是生成queue01


2.执行consumer代码,刷新看一下消息被消费了,

3.helloworld完成。。。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
北暖☀ 发布了13 篇原创文章 · 获赞 6 · 访问量 635 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐