• ActiveMq池


    有两种连接方式

    1.Spring  引用

    <!-- 配置JMS连接工厂 -->
        <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
            destroy-method="stop">
            <property name="connectionFactory">
                <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                    <property name="brokerURL">
                        <value>failover:(tcp://192.168.2.211:62617,tcp://192.168.2.211:62618,tcp://192.168.2.211:62619)?maxReconnectAttempts=10</value>
                    </property>
                    <property name="useAsyncSend">
                        <value>true</value>
                    </property>
                </bean>
            </property>
        </bean>

    2.配置文件

    MqUserName=admin
    MqPassword=admin
    MqUrl=failover:(tcp://192.168.2.211:62617,tcp://192.168.2.211:62618,tcp://192.168.2.211:62619)
      
    

    3.代码

    import java.util.Properties;
    
    import javax.jms.Connection;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.pool.PooledConnectionFactory;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    
    public class ActiveMqUtils {
        
        private static PooledConnectionFactory factory;
        
        static{
                //方式一
    //             Properties pps = new Properties();
    //             String url="",name="",pwd="";
    //            try {
    //                pps.load(ActiveMqUtils.class.getClassLoader().getResourceAsStream("MqProperty.properties"));
    //                url = pps.getProperty("MqUrl");
    //                name = pps.getProperty("MqUserName");
    //                pwd = pps.getProperty("MqPassword");
    //                ActiveMQConnectionFactory   activeMQConnectionFactory = new ActiveMQConnectionFactory();  
    //                activeMQConnectionFactory.setUserName(name);  
    //                activeMQConnectionFactory.setPassword(pwd);  
    //                activeMQConnectionFactory.setBrokerURL(url);  
    //                   
    //                factory = new PooledConnectionFactory( activeMQConnectionFactory);  
                       
                    // session数  
    //                int maximumActive = 5;
    //                factory.setMaximumActiveSessionPerConnection(maximumActive);  
    //                factory.setIdleTimeout(120);  
    //                factory.setMaxConnections(5);  
    //                factory.setBlockIfSessionPoolIsFull(true);  
    //            } catch (Exception e) {
    //                e.printStackTrace();
    //            } 
                
              //方式二
                String[] springConfigFiles = {"mybatis-spring-config.xml","module-service-config.xml" };
                ApplicationContext ctx = new ClassPathXmlApplicationContext( springConfigFiles );
                factory = (PooledConnectionFactory) ctx.getBean( "connectionFactory" );
        }
        
        public static void doSend(String  key,String message){
            Connection connection =null;
            Session session;
            Destination destination;
            MessageProducer producer;
            try {
                connection =factory.createConnection();
                connection.start();
                session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
                destination = session.createQueue(key);
                producer = session.createProducer(destination);
                producer.setDeliveryMode(DeliveryMode.PERSISTENT);
                TextMessage msgObj = session .createTextMessage(message);
                producer.send(msgObj);
                session.commit();
            }catch (Exception e) {
                e.printStackTrace();
                }    
            finally {
                close(connection);
            }
        }
        
        public static String doReceive(String  key){
            String rs="";
            Connection connection =null;
            Session session;
            Destination destination;
            MessageConsumer consumer;
            try {
                connection =factory.createConnection();
                connection.start();
                session = connection.createSession(Boolean.FALSE,
                        Session.AUTO_ACKNOWLEDGE);
                destination = session.createQueue("sales");
                consumer = session.createConsumer(destination);
                TextMessage message = (TextMessage) consumer.receive(10);
                if (null != message) {
                    rs = message.getText();
                } 
            }catch (Exception e) {
                e.printStackTrace();
            }    
            finally {
                close(connection);
            }
            return rs;
        }
    
           /** 
      * 关闭连接 
      */ 
     public static void close(Connection connection) {  
         try {  
             if (connection != null) {  
                 connection.close();  
             }  
         } catch (JMSException e) {  
    
             e.printStackTrace();  
         }  
     }  
        
        public static void main(String[]  agrs){
            
            for(int i= 0;i<20;i++){
                long begin = System.currentTimeMillis();
                ActiveMqUtils.doSend("1111", "sss");
                long end = System.currentTimeMillis();
                System.out.println("耗时:"+(end-begin));
            }
            
        }
    }
  • 相关阅读:
    PHP如何判断一个gif图片是否为动画?
    Linux常用系统管理命令(top、free、kill、df)
    Mysql字符串连接函数 CONCAT()与 CONCAT_WS()
    OSChina.net 的 Tomcat 配置 server.xml 参考
    修改Linux默认启动级别或模式
    更改CentOS 6.3 yum源为国内 阿里云源
    PHP session过期机制和配置
    PHP垃圾回收机制防止内存溢出
    memcache与memcached的区别
    【总结】虚拟机VirtualBox各种使用技巧
  • 原文地址:https://www.cnblogs.com/luyang08/p/5464569.html
Copyright © 2020-2023  润新知