• 分布式-信息方式-ActiveMQ构建应用


                                                     ActivemQ构建应用
    Broker:相当于一个 ActiveMQ服务器实例
    命令行启动参数示例如下:
    1: activemq start:使用默认的 actived.xml来启动
    2: activemq start xbean:file: ../onf/ actived-2.xml:使用指定的配置文件
    来启动
    3:如果不指定file,也就是 xbean: activemq-2.xml,那么xml必须在 classpath下面
    用 ActiveMQ米构建Java应用
    这里主要将用 Activemq broken作为独立的消息服务器来构建JAVA应用
    ActiveMQ也支持在vm中通信基于嵌入式的 broker,能够无缝的集成其它Java应用

    嵌入式 Broker启动
    1: Broker service启动 broker,示例如下:

    BrokerService broker=new BrokerService();
    broker.setUseJmx(true);
    broker.addConnector("tcp://localhost:61616");
    broker.start();

    package com.mq.test.activeMQ;
    
    import java.net.URI;
    
    import org.apache.activemq.broker.BrokerFactory;
    import org.apache.activemq.broker.BrokerService;
    import org.omg.CORBA.portable.ApplicationException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class InnerBroker {
        public static void main(String[] args) throws Exception {
            BrokerService  broker=new BrokerService();
            broker.setUseJmx(true);
            broker.addConnector("tcp://localhost:61616");
            broker.start();
     
        }
    }

    2: BrokerFactory启动 broker,示例如下:

    String Uri ="properties:broker.properties";
    BrokerService broker1 =BrokerFactory.createBroker(new URI(Uri));
    broker1.addConnector("tcp://localhost:61616");
    broker1.start();

    broker.properties

    useJmx=true
    persistent=false
    brokerName=cheese

    package com.mq.test.activeMQ;
    
    import java.net.URI;
    
    import org.apache.activemq.broker.BrokerFactory;
    import org.apache.activemq.broker.BrokerService;
    import org.omg.CORBA.portable.ApplicationException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class InnerBroker {
        public static void main(String[] args) throws Exception {
                    String Uri ="properties:broker.properties";
                    BrokerService broker1 =BrokerFactory.createBroker(new URI(Uri));
                    broker1.addConnector("tcp://localhost:61616");
                    broker1.start();
     
        }
    }

    3:利用Spring集成Broker,Spring的配置文件如下:

    <bean id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
    <property name="brokerName" value="myBroker" />
    <property name="persistent" value="false"></property>
    <property name="transportConnectorURIs" >
    <list>
    <value>tcp://localhost:61616</value>
    </list>
    </property>
    </bean>

    package com.mq.test.activeMQ;
    
    import java.net.URI;
    
    import org.apache.activemq.broker.BrokerFactory;
    import org.apache.activemq.broker.BrokerService;
    import org.omg.CORBA.portable.ApplicationException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class InnerBroker {
        public static void main(String[] args) throws Exception {
     
     ApplicationContext  ctx =new  ClassPathXmlApplicationContext("applicationContext.xml");
        }
    }
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
               http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
               http://www.springframework.org/schema/aop   
               http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
               http://www.springframework.org/schema/tx  
               http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
               http://www.springframework.org/schema/context  
               http://www.springframework.org/schema/context/spring-context-3.2.xsd"
        default-autowire="byName" default-lazy-init="false">
    
         
        <bean  id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
             <property name="brokerName" value="myBroker" />
             <property name="persistent" value="false"></property>
             <property name="transportConnectorURIs"  >
                     <list>
                          <value>tcp://localhost:61616</value>
                     </list>
             </property> 
        </bean>
    
         
         
    
    </beans>

    或者配置 BrokerFactoryBean,示例如下:
    <beans>
    <bean id=broker class="org. apache. activemq. xbean. BrokerFactoryBean">
    <Property name="config" value="resources/activemq-simple.xml"/>
    <property name="start" value="true"/>
    </bean>
    </beans>
    ■ ActiveMQ的启动:
    1:可以通过在应用程序中以编码的方式启动 broker,例如: broker. start(
    如果需要启动多个 broker,那么需要为 broker设置一个名字。例如
    BrokerService broker= new BrokerService();
    broker.setName("fred")
    broker.addConnector("tcp: //localhost: 61616")
    broker.start
    2:还可以通过 spring来启动,前面已经演示过了

     

  • 相关阅读:
    spring mvc DispatcherServlet详解之一---处理请求深入解析
    spring mvc DispatcherServlet详解之前传---前端控制器架构
    [推荐]趣味剖析Spring5核心原理
    源码揭秘mybatis日志实现的原理
    mybatis返回自增主键踩坑记
    根据身份证号码判定原籍地的方法
    深入源码解析spring aop实现的三个过程
    匆忙--一个大龄十年老程序员战战兢兢的应对中年危机的2019年总结与2020年展望
    Java 趟坑录
    迷你MVVM框架 avalonjs1.5 入门教程
  • 原文地址:https://www.cnblogs.com/caoyingjielxq/p/9340090.html
Copyright © 2020-2023  润新知