zoukankan      html  css  js  c++  java
  • 译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 方法,我们应该可以看到控制台写出输出。

  • 相关阅读:
    我的数学之美(一)——RANSAC算法详解
    机器学习经典算法之-----最小二乘法(zz)
    基于大数据的餐饮推荐系统总结
    Hive 数据错位修复方案
    Python 2.x 判断 Excel 是否包含指定的 sheet
    Shell脚本判断目录是否为空
    MySQL启动报错 The server quit without updating PID file 解决方案
    DolphinScheduler 1.3.2集群版(基于CDH5.13.1)安装手册
    添加 Shell 脚本的启动用户限制
    CentOS 7 离线安装 MySQL 5.7
  • 原文地址:https://www.cnblogs.com/chengtian/p/9059886.html
Copyright © 2011-2022 走看看