zoukankan      html  css  js  c++  java
  • RabbitMQ的应用

    1.安装

      如果有Docker,可以通过Docker来安装,命令:

    docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management


    启动后,查看端口:

    查看是否安装好,在浏览器中用15672端口进行查看。

     能出现这个就说明安装成功。

    用户名和密码初始都是guest。

    登录成功后:

    也可以从下面的页面直接下载:https://www.rabbitmq.com/install-windows.html

    对应的是这两个链接:

     https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9.exe

    https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.9/rabbitmq-server-3.8.9.exe

    2.开发

      开发之前先看看入门文档: https://www.rabbitmq.com/getstarted.html

     命令行方式:

    dotnet new console --name Send
    move Send/Program.cs Send/Send.cs//在Powershell下用mv 命令,cmd下用Move命令。
    dotnet new console --name Receive
    move Receive/Program.cs Receive/Receive.cs //在Powershell下用mv 命令,cmd下用Move命令。
    cd Send
    dotnet add package RabbitMQ.Client
    dotnet restore
    cd ../Receive
    dotnet add package RabbitMQ.Client
    dotnet restore

    visual studio 2019 方式:

    用.net core 创建程序

    NuGet安装:

    安装后:

     代码参考: https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet

     发送端源码:

    using System;
    using RabbitMQ.Client;
    using System.Text;
    using System.Threading;

    namespace Send
    {
        class Program
        {
            static void Main(string[] args)
            {
                for(int i=0;i<10;i++){
                    var factory=new ConnectionFactory(){ HostName="localhost"};
                    using(var connection=factory.CreateConnection()){
                        using(var channel=connection.CreateModel()){
                            channel.QueueDeclare(queue:"hello",durable:false,exclusive:false,autoDelete:false,arguments:null);
                            string message="Hello World  "+ i.ToString();
                            var body=Encoding.UTF8.GetBytes(message);
                            channel.BasicPublish(exchange:"",routingKey:"hello",basicProperties:null,body:body);
                            Console.WriteLine(" [x] Sent {0}",message);
                        }
                    }
                    Thread.Sleep(1000);
                }
                Console.WriteLine(" Press [Enter] to exit.");
                Console.ReadLine();
            }
        }
    }
     
     
    接收端源码:
    using System;
    using RabbitMQ.Client;
    using System.Text;
    using RabbitMQ.Client.Events;

    namespace Receive
    {
        class Program
        {
            static void Main(string[] args)
            {
                var factory = new ConnectionFactory() { HostName = "localhost" };
                using(var connection = factory.CreateConnection())
                using(var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "hello",
                                        durable: false,
                                    exclusive: false,
                                    autoDelete: false,
                                    arguments: null);

                var consumer = new EventingBasicConsumer(channel);
                consumer.Received += (model, ea) =>
                {
                    var body = ea.Body.ToArray();
                    var message = Encoding.UTF8.GetString(body);
                    Console.WriteLine(" [x] Received {0}", message);
                };
                channel.BasicConsume(queue: "hello",
                                    autoAck: true,
                                    consumer: consumer);

                
                }
            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
            }
        }
    }
     

    以上只是简单的实现了发送和接收。接下来是更复杂些的。

  • 相关阅读:
    关于SQL
    win10商店或者账户连不上网
    pom.xml红叉
    3D球状标签云(兼容IE8)
    网页宽高自适应大小
    html5定位并在百度地图上显示
    【转】Javascript 中的false,零值,null,undefined和空字符串对象
    jQuery checkBox 全选的例子
    jQuery 表单验证 jquery.validator.js
    jQuery 手风琴侧边菜单
  • 原文地址:https://www.cnblogs.com/xiaoyichong/p/14290694.html
Copyright © 2011-2022 走看看