首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

使用 NBear.MQ 分散式服務訊息佇列模組開發分散式系統

     編輯:關於ASP.NET

NBear.MQ 是 NBear Framework 新增的分散式訊息佇列模組,秉承「易用、零配置」特性,大幅提升基於訊息佇列分散式系統的開發效率。本文以 TestServiceMQ 範例示範基本開發流程。

1. TestRemotingServer:訊息佇列伺服器

使用內建 MemoryServiceMQ 幾乎零代碼,僅需發布為 Remoting 服務:

class Program {
  static void Main(string[] args) {
    MemoryServiceMQ mq = new MemoryServiceMQ();
    mq.OnLog = new LogHandler(Console.WriteLine);
    RemotingServiceHelper rh = new RemotingServiceHelper(RemotingChannelType.TCP, "127.0.0.1", 8000, new LogHandler(Console.WriteLine));
    rh.PublishServiceInstance("MMQ", typeof(IServiceMQ), mq, System.Runtime.Remoting.WellKnownObjectMode.Singleton);
    while (Console.ReadLine() != "q") { }
  }
}

關鍵:第 8-9 行發布 mq 實例至 tcp://127.0.0.1:8000/MMQ。若需對接 MSMQ/ActiveMQ,自行實作 IServiceMQ 介面替換即可。

2. TestServiceHost:服務提供者

定義兩個服務繼承 BaseAutoService:

  • MathService: 處理四則運算請求,解析參數回傳結果。
  • HelloWorldService: 回傳文字、位元組陣列與 DataSet。
public class MathService : BaseAutoService {
  public MathService(IServiceMQ mq) : base("demo.math", mq) { }
  protected override ResponseMessage Run(RequestMessage msg) {
    // 解析參數、計算、構建 ResponseMessage 回傳
  }
}
public class HelloWorldService : BaseAutoService {
  public HelloWorldService(IServiceMQ mq) : base("demo.helloworld", mq) { }
  protected override ResponseMessage Run(RequestMessage msg) {
    // 回傳 "hello world" 文字與資料
  }
}

服務啟動後自動註冊至 MQ,客戶端可透過服務名稱調用。完整代碼見範例專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved