zoukankan      html  css  js  c++  java
  • jms的俩种模式

    package com.jiangchong.job;
    
    import java.util.Date;
    
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.DeliveryMode;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.MessageProducer;
    import javax.jms.Queue;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.command.ActiveMQQueue;
    
    public class JMS
    {
    
        public static void main(String[] args) throws Exception
        {
            consume();
             product();
        }
    
        public static void product() throws JMSException
        {
            // "tcp://localhost:61616"
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                    "vm:localhost:10000");
            Connection connection = connectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(false,
                    Session.AUTO_ACKNOWLEDGE);
            Topic topic = session.createTopic("testTopic");
            MessageProducer producer = session.createProducer(topic);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
            while (true)
            {
                TextMessage message = session.createTextMessage();
                message.setText("message_" + new Date().toLocaleString());
                producer.send(message);
                try
                {
                    Thread.sleep(1000 * 5);
                }
                catch (InterruptedException e)
                {
                    e.printStackTrace();
                }
            }
        }
    
        public static void consume() throws JMSException
        {
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                    "vm:localhost");
            Connection connection = connectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(false,
                    Session.AUTO_ACKNOWLEDGE);
            Topic topic = session.createTopic("testTopic");
            MessageConsumer consumer = session.createConsumer(topic);
            consumer.setMessageListener(new MessageListener()
            {
                public void onMessage(Message message)
                {
                    TextMessage tm = (TextMessage) message;
                    try
                    {
                        System.out.println("Received message: " + tm.getText());
                    }
                    catch (JMSException e)
                    {
                        e.printStackTrace();
                    }
                }
            });
        }
        
        public static void p2p() throws JMSException
        {
            ConnectionFactory factory = new ActiveMQConnectionFactory(
                    "vm://localhost");
    
            Connection connection = factory.createConnection();
            connection.start();
    
            Queue queue = new ActiveMQQueue("testQueue");
    
            final Session session = connection.createSession(false,
                    Session.AUTO_ACKNOWLEDGE);
            final Message message = session.createTextMessage(new Date()
                    .toLocaleString() + "  Hello JMS! come from producer");
    
            final MessageProducer producer = session.createProducer(queue);
            new Thread(new Runnable()
            {
    
                public void run()
                {
                    while (true)
                    {
                        try
                        {
                            producer.send(message);
                        }
                        catch (JMSException e)
                        {
                            e.printStackTrace();
                        }
                        try
                        {
                            Thread.sleep(1000 * 3);
                        }
                        catch (InterruptedException e)
                        {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }
    
            }).start();
    
            final MessageConsumer comsumer = session.createConsumer(queue);
            new Thread(new Runnable()
            {
    
                public void run()
                {
                    while (true)
                    {
                        Message recvMessage;
                        try
                        {
                            recvMessage = comsumer.receive();
                            System.out.println(((TextMessage) recvMessage)
                                    .getText() + " rec");
                        }
                        catch (JMSException e)
                        {
                            e.printStackTrace();
                        }
                        try
                        {
                            Thread.sleep(4 * 1000L);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                    }
                }
            }).start();
        }
    
    }
  • 相关阅读:
    Redis扩展功能
    Redis持久化
    redis-通讯协议及事件处理机制
    Redis-数据类型与底层数据结构
    分布式集群架构场景化解决方案
    MySQL-运维和第三方工具
    缓存原理&设计
    MySQL性能优化
    MySQL高级-日志常用的工具等等
    Mysql高级——优化
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/5399516.html
Copyright © 2011-2022 走看看