zoukankan      html  css  js  c++  java
  • NServiceBus.Net平台下开源的服务总线(opensource service for .net)

     NServiceBus-.Net平台下开源的服务总线(open-source service for .net)

    基于NServiceBus的发布/订阅范例(Publish/Subscribe)

    具体的Pub/Sub 范例程序,可以到 http://www.nservicebus.com/Downloads.aspx 下载,项目所在路径:\Community.NServiceBus.2.5.0.1446\.net 4.0\samples\PubSub

    首先,以admin的权限,在dos命令窗口下,运行RunMeFirst.bat 文件,检查MSMQ 是否安装和配置;配置DTC服务和安装一些性能计数器。

    第二步,打开 Publish/Subscribe 项目

    在Visual Studio 打开PubSub.sln 项目文件。

    MyMessages项目包含了消息的定义,打开Messages.cs文件,可看到EventMessage类和IEvent 接口。需要说明的是 – NserviceBus中的所有消息避免最终基础IMessage接口。

    MyPublisher 项目将发布消息,在console窗口,每按一次Enter 回车键将发送一次消息。

    Subscribe1 项目 – 订阅EventMessage消息,Subscribe2 订阅IEvent 接口。因为 EventMessage实现了IEvent 接口,在MyPublisher 发送 EventMessage 消息时,两个订阅者都将收到这个消息。

    第三步,运行范例程序

    按 F5 运行三个Console 应用程序。通过窗口的标题识别 MyPublisher 应用程序。

    在MyPublisher 窗口重复按 Enter 回车键,可观察到消息在另外的Console窗口出现 – 第一次仅仅在其中一个console 窗口,接下来的消息将出现在两个订阅窗口。

    成功啦 ~~~

    恭喜你 – 你已经成功完成了消息的发布/订阅演示。

    容错消息Fault-tolerant Messaging

    选择一个订阅者(如Subscriber1),关闭该订阅应用程序。

    回到 MyPublisher 应用程序,按Enter 回车键发送消息。

    再次回到Visual Studio,右击关闭的订阅者应用程序(如Subscriber1),再次启动(Debug / Start new instance),如下所示。

    可注意到Subscriber1 订阅者将处理之前 MyPublisher 发送的消息。这样可以在订阅者应用程序或电脑重启时,NServiceBus 将确保消息不会丢失。

    持久化订阅者-Durable Subscriptions

    重启 MyPublisher 应用程序,并多次按 Enter 回车键发送消息。

    注意到订阅者并没有接收到这些消息,这不符合我们的预期。我们希望发布方应用程序即使在重启的情况下,也能记住订阅者。这需要发布方应用程序存储每一个订阅者订阅的消息或事件类型。

    幸运的是,除了默认可存储在内存空间外,NServiceBus 提供了两种可持久化的存储选择,分别为MSMQ 和 数据库。

    MSMQ 适用于集成环境,可测试不同类型的容错情况,不必考虑可扩展性。如需要扩展发布方应用程序在多台机器上,MSMQ 订阅存储则不支持,我们需要使用数据库类型的订阅方存储。

    从in-memory 存储切换到其他存储类型,可通过profile设置。下面将publisher的profile设置为集成存储(integration environment)。

    在Visual studio 集成环境下,停止调试stop debugging,设置MyPublisher项目的Start options选项,如下所示。在Command line arguments 文本框输入NServiceBus.Integration。

    现在按 F5 按钮,在Publisher的Console窗口按 Enter 回车键,可在Subscribers窗口看到消息。接着重启 Publisher应用程序,再次在Publisher的Console 窗口输入Enter回车键,这次Subscribers订阅者的Console窗口仍然可以接收消息。

    原文链接:

    http://www.nservicebus.com/gettingstarted.aspx

  • 相关阅读:
    java基本数据类型及运算的注意事项
    B-Tree 和 B+Tree 结构及应用,InnoDB 引擎, MyISAM 引擎
    软件工程与软件开发模型、软件开发方法
    2020年3月份Unity3D游戏源码合集-免费下载
    独立游戏开发必备!8个效果不错的Unity3D 免费模型资源包
    2019年4月份整理的Unity3D 20个实用插件-免费下载
    2019年4月份整理的Unity3D游戏完整源码
    2019年3月整理的2D美术资源合集
    画面效果都不错!20个精品Unity3D着色器插件
    Unity3D中UnityPlayerActivity与UnityPlayerNativeActivity有什么区别
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2438819.html
Copyright © 2011-2022 走看看