译MassTransit 快速入门

简介: 给我看代码! 下面是MassTransit的功能设置。 public class YourMessage { public string Text { get; set; } } public class Program { public static void Main() { var bus = Bus.

给我看代码!

下面是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 方法,我们应该可以看到控制台写出输出。

 

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
关系型数据库 API 数据库
Python数据库访问与ORM框架:加速开发、提升效率
在现代软件开发中,数据库是不可或缺的组成部分。本文介绍了Python中数据库访问的重要性,并探讨了ORM框架(例如SQLAlchemy)如何帮助程序员加速开发、提升效率。通过使用ORM框架,开发人员可以轻松地将Python对象映射到数据库表,并且可以通过简洁的API进行数据库操作。此外,本文还讨论了ORM框架在处理复杂查询、维护数据一致性和实现数据库迁移方面的优势。
|
Shell Docker 容器
笔记:Docker命令自动补全
笔记:Docker命令自动补全 一 背景 作为一名 Linux 重度用户,每次敲命令总会情不自禁地按下 Tab 键。在键入 Docker 命令时也会出现类似的习惯性动作。那么是否 Docker 相关命令也能自动补全呢? 二 操作步骤 2.1 安装 bash-completion sudo yum install -y bash-completion 安装完成之后重启系统或者重新登录 shell。
22154 0
|
SQL 关系型数据库 MySQL
docker上定期备份mysql数据库
本文是博主学习docker的记录,希望对大家有所帮助。
1640 0
|
9月前
|
监控 数据可视化 项目管理
关键路径法在项目管理中的实践:从理论到落地的全过程
使用关键路径法(CPM),为你的项目梳理清晰的“优先级”与“全局策略”。
978 2
关键路径法在项目管理中的实践:从理论到落地的全过程
|
6月前
|
机器学习/深度学习 人工智能 并行计算
NotaGen:中央音乐学院联合清华推出AI音乐生成模型,古典乐谱一键生成,音乐性接近人类!
NotaGen 是由中央音乐学院、北京航空航天大学、清华大学等机构联合推出的音乐生成模型,基于模仿大型语言模型的训练范式,能够生成高质量的古典乐谱。该模型通过预训练、微调和强化学习相结合的方式,显著提升了符号音乐生成的艺术性和可控性。
658 15
NotaGen:中央音乐学院联合清华推出AI音乐生成模型,古典乐谱一键生成,音乐性接近人类!
|
数据可视化 JavaScript
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
|
存储 数据可视化 前端开发
Echarts+vue+java+mysql实现数据可视化
Echarts+vue+java+mysql实现数据可视化
408 0
|
安全 网络安全
SimpleWall简单防火墙
SimpleWall是一款小巧的防火墙软件,可以自定义拦截程序联网,对于一些修改软件特别有效.一些恶意的网络操作,因此有了这款工具让用户可以非常详细的了解目前那些程序或者进程进行了网络访问操作并加以控制。Simplewall的使用也非常的简单,比如打开程序后进入设置选择过滤模式为过滤模式:白名单 (允许所选),然后在程序界面中勾选安全需要有联网操作的进程就可以了,非勾选的进程会连不上网络。
318 0
|
存储 缓存 小程序
微信小程序-缓存
微信小程序-缓存
245 0
|
机器学习/深度学习 传感器 安全
2023 年高教社杯D题圈养湖羊的空间利用率思路及参考代码(持续更新)
2023 年高教社杯D题圈养湖羊的空间利用率思路及参考代码(持续更新)