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

  • 相关阅读:
    socket的accept函数解析
    c socket(续)
    C socket指南
    网络字节序和本机字节序
    jar包
    RESTful API 设计指南[转]
    理解RESTful架构[转]
    c语言正则表达式
    Fedora设置中文
    创建框架结构的页面2
  • 原文地址:https://www.cnblogs.com/licunzhi/p/9341181.html
Copyright © 2011-2022 走看看