译MassTransit 快速入门
给我看代码!
下面是MassTransit的功能设置。
public class YourMessage { public string Text { get; set; } }
public class Program
{
public static void Main()
{
var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
}); sbc.ReceiveEndpoint(host, "test_queue", ep =>
{
ep.Handler<YourMessage>(context =>
{
return Console.Out.WriteLineAsync($"Received: {context.Message.Text}");
});
});
}); bus.Start(); bus.Publish(new YourMessage{Text = "Hi"}); Console.WriteLine("Press any key to exit");
Console.ReadKey(); bus.Stop();
}
}
如何运行的
如果我们构建一个消息系统,我们需要去创建一个消息。YourMessage .NET 类代表我们的消息。注意他仅仅是一个poco。
接下来,我们需要一个程序运行我们的代码,这里我们使用控制器程序 的 main方法。要设置中心,我先从bus静态类开始,然后从Factory扩展点结束。从这里我们调用CreateUsingRabbitMq方法创建一个 RabbitMQ 服务总线实例。这个方法采用lambda,并且有一个参数允许你配置总线的属性。
你的第一个决定是:“我想运行什么传输”在这里我们选择了RabbitMQ (Bus.Factory.CreateUsingRabbitMQ()),因为它是MassTransit的事实上的总线选择。
之后,我们需要配置RabbitMQ host 设置sbc.Host()。第一个参数设置要连接的机器名称和虚拟目录。在此之后, 您可以使用 lambda 来调整所需的任何其他设置。在这里,我们可以看到它设置的用户名和密码。
现在我们有了一个主机监听,我们可以配置一些接收端点sbc.ReceiveEndpoint。我们通过主机连接来侦听,然后我们要侦听哪个队列,最后用lambda来注册我们要使用的每个处理程序。
最后,在配置中,我们有个处理程序 Handler<YourMessage>方法,它为消息类型 YourMessage 订阅一个处理程序, 并采用一个异步 lambda(oh yeah baby TPL),它给出了一个上下文类来处理。在这里,我们通过遍历上下文来访问消息,然后将消息的文本写入控制台。
现在我们有了一个完全配置的总线实例, 并且可以开始处理消息。我们可以抓取我们创建的busControl,调用Start()方法启动,然后循环获取消息。我们再次等待结果,现在我们可以走了。
我们可以调用busControl的Publish 方法,我们应该可以看到控制台写出输出。
译MassTransit 快速入门的更多相关文章
- 【Win2D】【译】Win2D 快速入门
原文链接:http://microsoft.github.io/Win2D/html/QuickStart.htm 快速入门 这是 Win2D 的快速入门教程,将会介绍 Win2D 中的基本功能.你将 ...
- AngularJS 30分钟快速入门【译】
引用自:http://www.revillweb.com/tutorials/angularjs-in-30-minutes-angularjs-tutorial/,翻译如下: 简介 我三年前开始使用 ...
- OpenStack云计算快速入门之一:OpenStack及其构成简介
原文:http://blog.chinaunix.net/uid-22414998-id-3263551.html OpenStack云计算快速入门(1) 该教程基于Ubuntu12.04版,它将帮助 ...
- 快速入门react
安装react npm install creat-react-app -g这里直接安装react的一个脚手架,里面包含了要用到的许多东西,帮助快速入门react 创建新项目 create-react ...
- [转帖]Hive 快速入门(全面)
Hive 快速入门(全面) 2018-07-30 16:11:56 琅琊山二当家 阅读数 4343更多 分类专栏: hadoop 大数据 转载: https://www.codercto.com/ ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro]
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro. Rust的宏macro是实现元编程的强大工具. ...
- Polar码快速入门
Polar码快速入门 本科生在学习极化码时,并不是件简单的事情.网上极化码的资料很少,而且基本上都是较难的论文.这篇文章是用来帮你快速入门极化码. Poalr码背景 2015 年,国际电信联盟无线通信 ...
- Docker 快速入门(一)- 情况介绍和安装
欢迎您! 很高兴您想学习 Docker . 这个页面包含了如何开始使用 Docker 的循序渐进的说明. Docker 快速入门培训模块教你如何: 设置 Docker 环境(在本页) 构建并运行您的镜 ...
- vue 快速入门 系列 —— vue loader 上
其他章节请看: vue 快速入门 系列 vue loader 上 通过前面"webpack 系列"的学习,我们知道如何用 webpack 实现一个不成熟的脚手架,比如提供开发环境和 ...
随机推荐
- C语言笔试经典--求分数数列的和
题目: 求数组的和 2 3/2 5/3 8/5 13/8 21/13 ... 求前20项的和 //求分数数列的和 #include<stdio.h> // ...
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...
- 使用XStream是实现XML与Java对象的转换(2)--别名
五.使用别名(Alias) 首先,有这样一段Java代码: import java.util.ArrayList; import java.util.List; import com.thoughtw ...
- 2018 .NET开发者调查报告: .NET Core 是怎么样的状态
4月28日,在公众号里发起<.NET Core 使用调查>,该调查为期一周,有近3300名开发者参与. 已经使用.net core 的人数只有44%,计划使用.net core 比例达到 ...
- css区分ie8/ie9/ie10/ie11 chrome firefox的代码
以下是几个主要浏览器的css hack汇总: 现有css样式为: .class{ color:red; } 判断IE8以上的浏览器才执行的代码/* IE8+ */ .class{ color:red ...
- Day7组合
可以将那些重复的,固定的东西提出来,单独定义一个类. 例如: class Course: def __init__(self,course_name,course_period,course_pric ...
- 移动端调试技巧(禁止webviuew,inspect等)
如果由于某种原因(天朝FQ),不能支持google 的 inspect 调试 或者再想在某个APP里面调试你的页面,但是没有打开APP的webview ,也不能授权调试 在或者,Fider 可以拦截 ...
- 关于国际化时报org.springframework.context.NoSuchMessageException错,具体到No message found under code '你的键名' for locale 'zh_CN'.的解决方案
使用IntelliJ IDEA开发工具解决方案: 总结原因,解决方案: 1,在使用messageSource.getMessage方法时,参数1的键名跟属性文件中键名不一致,比如Controller中 ...
- 通知:QQ互联网回调地址校验加强
今天公司网站第三方qq快捷登录突然登录不了了,之前明明是ok的. 可以看到有一个错误信息提示 在qq互联的官网看到了这个通知 然后解决办法是: 1.打开http://open.qq.com/tools ...