zoukankan      html  css  js  c++  java
  • Java程序RabbitMQ服务端和客户端

    先需要引入相关的依赖文件

    <!--引入先关依赖包文件-->
    <dependencies>
    <dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>3.6.5</version>
    </dependency>
    </dependencies>

    上来就是干:
    编写链接工具类
    public class ConnectionUtil {
    
        private static ConnectionFactory factory;
    
        private static  Channel channel;
    
        public static final String QUEUE_NAME = "cloud_attacking_dream";
    
        /*
        * 单例模式机制获取连接通道
        * */
        public static Channel initConnetion() throws IOException, TimeoutException {
            if (null == factory && null == channel) {
                factory = new ConnectionFactory();
                factory.setHost("localhost");
                factory.setPort(5672);
                //本机调用,用户密码省略
                /*factory.setUsername();
                factory.setPassword();*/
                Connection connection = factory.newConnection();
                channel = connection.createChannel();
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            }
            return channel;
        }
    
    }
    

      服务端代码:

    /**
     * @author licunzhi
     * @desc 服务端(生产者)
     * @date 2018-07-20
     */
    public class Server {
        public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
            Channel channel = ConnectionUtil.initConnetion();
            for (int i =0; i < 100; i++) {
                String message = UUID.randomUUID().toString();
                channel.basicPublish("", ConnectionUtil.QUEUE_NAME, null, message.getBytes("UTF-8"));
                //定時發送消息  展示結果更加明顯
                Thread.sleep(10000);
            }
        }
    

      客户端代码

    /**
     * @author licunzhi
     * @desc 客户端(消费者)
     * @date 2018-07-20
     */
    public class Client {
        public static void main(String[] args) throws IOException, TimeoutException {
            Channel channel = ConnectionUtil.initConnetion();
            Consumer consumer = new DefaultConsumer(channel) {
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope,
                                AMQP.BasicProperties properties, byte[] body)
                                throws IOException {
                    String message = new String(body, "UTF-8");
                    System.out.println("Customer Received '" + message + "'");
                }
            };
            channel.basicConsume( ConnectionUtil.QUEUE_NAME, true, consumer);
        }
    }
    

      

    运行项目查看结果展示:

    如果这些看着还是不爽  还是不解的话 :没关系  我有代码给你玩:

    github: git@github.com:licunzhi/dream_on_sakura_rain.git

    最后欢迎大佬加群指点:589780530

  • 相关阅读:
    centos6.5mini版安装及配置
    ruby读取exce文件,使用roo---Gem
    L3-Day34
    keepalived+nginx实现高可用+tomcat
    破解IDEA注册码,设置 license server一直有效不过期
    nginx配置文件详解
    Windows如何设置动态和静态ip地址
    Tortoisegit生成SSH密钥一次性输入密码
    ajax
    myeclipse tomcat部署按钮点击没反应
  • 原文地址:https://www.cnblogs.com/licunzhi/p/9341181.html
Copyright © 2011-2022 走看看