全网最菜的教程 activeMQ 入门第一步

什么是activeMQ

activeMQ是一种比较流行的消息队列我们先到官网看看是怎么解释这项技术的:
以下是我截取的比较重要的部分

Apache ActiveMQ™ is the most popular open source, multi-protocol, Java-based messaging server. It supports industry standard protocols so users get the benefits of client choices across a broad range of languages and platforms. Connectivity from C, C++, Python, .Net, and more is available. Integrate your multi-platform applications using the ubiquitous AMQP protocol. Exchange messages between your web applications using STOMP over websockets. Manage your IoT devices using MQTT. Support your existing JMS infrastructure and beyond. ActiveMQ offers the power and flexibility to support any messaging use-case.

呜呜呜,流下了看不懂英语的泪水,那我先概括一下(毕竟我也不懂)
ActiveMQ 是一种最流行的开源的(open source),多协议的(multi-protocol),基于java的消息传递服务器。它支持行业标准,因此用户可以在多语言,多平台上使用,C,C++,python等等都可以用,无处不在的AMQP协议集成你的多平台应用,在websockets上,使用STOMP协议进行在web应用间交换数据。使用MQTT
管理您的IoT设备。支持您现有的JMS基础结构及其他。ActiveMQ提供了强大的功能和灵活性来支持任何消息传递用例。
看完了理论部分,我们来安装并简单使用activeMQ。
1.打开官网https://activemq.apache.org/首页就会显示这个部分,直接点击下载就好了。

image.png

下载完是酱婶的
image.png

解压后是酱婶的
image.png

进入bin,里面是酱婶的
image.png

里面有一个 activemq 的可执行文件,打开 cmd,执行:activemq start
别的大佬教程都是这么说的,但是我这么执行出了问题(可能是太菜了),然后我是这么执行的
或者进入win64 里面双击activemq
然后会出现
image.png

就成功了,浏览器输入http://localhost:8161/admin/ 账号admin 密码admin(别的大佬没说有账号密码啊,可能真的是我太菜了)
出现酱婶的页面就ok了

image.png

以上我们就安装部署完成,现在我们先跑个代码压压惊。
打开idea(idea是一款很好的ide,有免费的社区版和收费的旗舰版,学生可以通过自己的教育账号免费试用,非学生还想用旗舰版自己研究怎么破解,找找注册码就ok了。)
new-> project -> spring initializr ->改一下名字next->


image.png

image.png

next 选位置改名字


image.png

点击finish就完成了。第一次时间会有点长,耐心等待。

org.springframework.boot
spring-boot-starter-activemq

这个是相关依赖,去pom看一下,要是没导入就自己手动导入一下,

application里面写入

#ActiveMQ配置
spring:
activemq:
broker-url: 'tcp://localhost:61616'   #配置Broker URL,默认为tcp://localhost:61616
in-memory: true
pool:
enabled:  false

建2个java文件,MessageConsumer和MessageProducer

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;

@Service
public class MessageConsumer {
    @JmsListener(destination = "my-queue")
    public void receiveMessage(String message){
        System.err.println("接收到了消息: " + message);
    }
}

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;

import javax.jms.Destination;

@Service
public class MessageProducer {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    /**
     * 发送消息
     * @param destination 要发送到的队列
     * @param payload 待发送的消息
     */
    public void sendMessage(Destination destination, String payload){
        jmsMessagingTemplate.convertAndSend(destination,payload );
    }
}

相关目录结构

test文件里写入

import org.apache.activemq.command.ActiveMQQueue;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.jms.Destination;

@SpringBootTest
class ActivemqApplicationTests {
    @Autowired
    private MessageProducer producer;

    @Test
    void contextLoads() {

        Destination destination = new ActiveMQQueue("my-queue");
        for (int i = 1;i <= 100;i++){
            producer.sendMessage(destination,"message-" + i);
        }
    }

}

运行结果


image.png

image.png

写的不好,各位读者见谅

你可能感兴趣的:(全网最菜的教程 activeMQ 入门第一步)