RabbitMQ 教程(三)远程数据交互

回顾前面,我们进行了RabbitMQ的环境搭建,配置,还有本地代码的简单交互。现在我们来进行远程数据交互,就是说,我们的RabbitMQ.Server和RabbitMQ.Client可以不在同一个服务器,也能进行数据传输。

一、远程账号配置(参考第一章配置 admin配置)

配置的账号密码,就是用于我们远程服务访问。

二、RabbitMQ.Server 写入代码

static void Main(string[] args)
{
    for (int i = 0; i < 50; i++)
    {
        Task.Run(async () =>
        {
            await CreateProdcut();
        });
    }
    Console.ReadLine();}

private static ConnectionFactory factory = new ConnectionFactory() { HostName = "116.28.8.166", UserName = "admin", Password = "********", VirtualHost = "/" };
private static Task CreateProdcut()
{
    return Task.Factory.StartNew(() =>
    {
         using (var connection = factory.CreateConnection())
         {
             using (var channel = connection.CreateModel())
             {                 string guid = Guid.NewGuid().ToString();
                 var body = Encoding.UTF8.GetBytes(Guid.NewGuid().ToString());
                 channel.QueueDeclare("AllenLeeQueue", false, false, false, null);
                 channel.BasicPublish("", "AllenLeeQueue", null, body);

                 Console.WriteLine("[Set Msg To AllenLeeQueue] " + guid);
              }
          }
    });
}

三、RabbitMQ.Client 写入代码

private static ConnectionFactory factory = new ConnectionFactory() { HostName = "116.28.8.166", UserName = "admin", Password = "********", VirtualHost = "/" };
static void Main(string[] args)
{
    factory.AutomaticRecoveryEnabled = true;//设置端口后自动恢复连接属性即可
    using (var connection = factory.CreateConnection())
    {
        using (var channel = connection.CreateModel())
        {
            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [Get Msg from AllenLeeQueue] {0}", message);
            };

            channel.BasicConsume(queue: "AllenLeeQueue", noAck: true, consumer: consumer);
            Console.ReadLine();
        }
    }
}

四、运行RabbitMQ.Server和RabbitMQ.Client

我们可以看到,我们远程进行了调用,RabbitMQ.Server发送出来的数据,可以在RabbitMQ.Client进行接收,至此我们的远程访问已经成功。这样后续我们就可以在任意的地方,通过RabbitMQ对服务器的数据进行访问获取,

这为我拉后续的并发打下基础。后续我们就会深入到大数据并发的场景,一步步慢慢由浅入深。

时间: 2024-10-09 03:10:09

RabbitMQ 教程(三)远程数据交互的相关文章

CRL快速开发框架系列教程三(更新数据)

本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框架系列教程四(删除数据) CRL快速开发框架系列教程五(使用缓存) CRL快速开发框架系列教程六(分布式缓存解决方案) CRL快速开发框架系列教程七(使用事务) CRL快速开发框架系列教程八(使用CRL.Package) CRL快速开发框架系列教程九(导入/导出数据) CRL快速开发框架系列教程十(

Struts2基本使用(三)--数据交互

Struts2中的数据交互 在Struts2中我们不必再使用request.getParameter()这种方式来获取前台发送到服务器的参数. 我们可以在服务器端的Java类中直接声明一个和前台发送数据的同名变量即可,然后生成它的set/get方法即可以实现前后台数据的交互. 假如我们在前台页面中的表单如下: <form method="post" action="demo!register.action"> username:<input typ

三种数据交互形式:get post jsonp

一.get请求 1.引入 vue.js 和 vue-resource.js , 准备一个按钮 <input type="button" value="按钮" @click="get()"/> //点击按钮请求数据函数get() 2.准备一个txt文件 welcome vue 3.编写js代码 <script> window.onload=function(){ new Vue({ el:'body', //主体为body,

CRL快速开发框架系列教程四(删除数据)

本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框架系列教程四(删除数据) CRL快速开发框架系列教程五(使用缓存) CRL快速开发框架系列教程六(分布式缓存解决方案) CRL快速开发框架系列教程七(使用事务) CRL快速开发框架系列教程八(使用CRL.Package) CRL快速开发框架系列教程九(导入/导出数据) CRL快速开发框架系列教程十(

Git与远程仓库交互,拉取与提交数据

一.项目维护者建立一个中心数据远程仓库,用git init 初始化一个仓库. 二.其他developer,以该数据仓库为中心,提交各自的代码供项目维护者确认. ## 建立对远程仓库的镜像:## git remote add Wiki [email protected]:/project/ ## 拉取数据到本地:## git pull 这个命令会直接将远程仓库的分支合并到当前分支,没有经过developer确认,不人性化. 2.git fetch 这个命令将远程数据拉取到本地,可经过确认后再合并,

RabbitMQ入门教程(三):Hello World

原文:RabbitMQ入门教程(三):Hello World 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78583480 分享一个朋友的人工智能教程(请以"右键"->"在新标签页中打开连接"的方式访问).比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. Hello World示例功能简介 功能描述

uLua学习之数据交互(三)

前言 在上节中,大概谈了一下如何在lua脚本中调用unity3d中的方法来创建游戏物体,这只是很小的一个方面,uLua的优势在于对unity3d中C#语言的扩展和定制.那么如何扩展和定制呢?其中的数据交互想必是重中之重.今天就来看一下,如何在unity3d的C#脚本中读取Lua脚本中的变量值吧! 相关代码 这是在NotePad++中展示的Lua脚本文件,我个人很喜欢NotePad++这个文本编辑器,以后我们的Lua脚本也是要在这个软件中编辑的,推荐给大家使用,比起记事本什么的要好用多了(点我查看

《ServerSuperIO Designer IDE使用教程》- 6.增加与阿里云物联网(IOT)对接服务,实现数据交互。发布:v4.2.4 版本

v4.2.4 更新内容:1.增加了对接阿里物联网平台的服务.下载地址:官方下载   6. 增加与阿里云物联网(IOT)对接服务,实现数据交互  6.1    概述 为了满足业务系统数据上云的要求,ServerSuperIO集成了对接阿里云物联网的服务.企业级系统建设采用ServerSuperIO作为后台服务,同时可以把数据上传到阿里云物联网平台,后续使用阿里的产品体系构建应用.当然也可以在阿里云购买服务器资源,把ServerSuperIO部署在服务器上,使用SuperLink(内部定义的协议)协

RabbitMQ(三) -- Publish/Subscribe

RabbitMQ(三) -- Publish/Subscribe `rabbitmq`支持一对多的模式,一般称为发布/订阅.也就是说,生产者产生一条消息后,`rabbitmq`会把该消息分发给所有的消费者. Exchanges 之前的教程中,仅仅使用了基本的消息模型: 生产者产生消息 把消息添加到消息队列 消费者接收消息 而在`rabbitmq完整的消息模型`中,并不是这样的.事实上,生产者并不知道消息是否发送到队列,而是把消息直接发送给`Exchanges`. `Exchanges`的功能理解