zoukankan      html  css  js  c++  java
  • JMS 消息服务

    JMS  是基于消息代理的规范,而ActiveMQ,HornetQ 是一个JMS 消息代理的实现

    AMQP 也是一个消息代理的规范,但它不仅兼容JMS 还支持跨语言和跨平台。AMQP 的主要实现有RabbitMQ

    队列/主题:点对点/发布与订阅

    消息代理:message-broker

    目的地:destination

    需要实现:connectionFactory

    spring 支持:@JmsListenner、@RabbitListener

    开启:@EnableJms、@EnableRabbit

    springboot:自动配置,实现ActiveMQ、HornetQ

    实现ActiveMQConnectionFactory、JmsTemplate

    安装:

    docker search activemq

    docker pull cloudesire/activemq

    docker run -d -p 61616:61616 -p 8161:8161 cloudesire/activemq --name activemq

    8161 端口为管理界面映射端口。

    http访问:localhost:8161

    添加依赖(使用activeMQ):

    配置activemq

    # activeMQ
    spring.activemq.broker-url=tcp://localhost:61616
    spring.activemq.user=
    spring.activemq.password=
    spring.activemq.in-memory=true
    spring.activemq.pool.enabled=false

    添加依赖

        implementation 'org.springframework:spring-jms'
        implementation 'org.apache.activemq:activemq-client'
        implementation 'org.apache.activemq:activemq-broker'
        implementation 'javax.jms:javax.jms-api'

    定义消息

    /**
     * JMS 实现creator 接口
     * 消息定义
     */
    public class Msg implements MessageCreator {
        @Override
        public Message createMessage(Session session) throws JMSException {
            return session.createTextMessage("测试消息");
        }
    }

    消息监听

    @Component
    public class JmsListener {
    
        /**
         * 定义监听业务处理
         * 定义地址名称为my-destination
         * @param msg
         */
        @org.springframework.jms.annotation.JmsListener(destination = "my-destination")
        public void receoveMessage(String msg){
            System.out.println("接收到"+msg);
        }
    }

    发送消息

        /**
         * 注入jsm模版bean
         */
        @Autowired
        JmsTemplate jmsTemplate;
    
        @Override
        public void run(String... args) throws Exception {
            // 启动后执行发送消息到目的地
            jmsTemplate.send("my-destination",new Msg());
        }
  • 相关阅读:
    LumaQQ.NET协议过期及解决办法
    帮助中国移动设计10086的排队小模块 Virus
    《宫锁心玉》观后感 Virus
    WCF扩展:行为扩展Behavior Extension<一> Virus
    谈谈我对实体的认识:DTO,DMO,DPO Virus
    自定义ORM系列(三)工具雏形及基本用法 Virus
    随笔写下的开发流程 Virus
    自定义ORM系列(二)发现属性是否修改,有选择的持久化 Virus
    我对DDD的认知(一) Virus
    胡乱说一下我对于 BO VO PO DTO 的理解 Virus
  • 原文地址:https://www.cnblogs.com/jony-it/p/11490559.html
Copyright © 2011-2022 走看看