Jaina.NET 事件總線
Jaina
.NET 事件總線,簡化項(xiàng)目、類庫、線程、服務(wù)等之間的通信,代碼更少,質(zhì)量更好。?
特性
- 簡化組件之間通信
- 支持事件監(jiān)視器
- 支持動(dòng)作執(zhí)行器
- 支持自定義消息存儲(chǔ)組件
- 支持自定義策略執(zhí)行
- 支持單消費(fèi)、多消費(fèi)消息
- 支持消息冪等性處理
- 高內(nèi)聚,低耦合,使代碼更簡單
- 非??焖伲棵肟商幚?span>
30000 +消息 - 很小,僅
10KB - 無第三方依賴
- 可在
Windows/Linux/MacOS守護(hù)進(jìn)程部署 - 支持分布式、集群
- 高質(zhì)量代碼和良好單元測試
安裝
Install-Package Jaina
dotnet add package Jaina
快速入門
我們在主頁上有不少例子,這是讓您入門的第一個(gè):
- 定義事件訂閱者
ToDoEventSubscriber:
// 實(shí)現(xiàn) IEventSubscriber 接口 public class ToDoEventSubscriber : IEventSubscriber { private readonly ILogger<ToDoEventSubscriber> _logger; public ToDoEventSubscriber(ILogger<ToDoEventSubscriber> logger) { _logger = logger; } // 標(biāo)記 [EventSubscribe(事件 Id)] 特性 [EventSubscribe("ToDo:Create")] // [EventSubscribe("ToDo:CreateOrUpdate")] // 支持多個(gè) public async Task CreateToDo(EventHandlerExecutingContext context) { var todo = context.Source; _logger.LogInformation("創(chuàng)建一個(gè) ToDo:{Name}", todo.Payload); await Task.CompletedTask; } }
- 創(chuàng)建控制器
ToDoController,依賴注入IEventPublisher服務(wù):
[Route("api/[controller]/[action]")] [ApiController] public class ToDoController : ControllerBase { // 依賴注入事件發(fā)布者 IEventPublisher private readonly IEventPublisher _eventPublisher; public ToDoController(IEventPublisher eventPublisher) { _eventPublisher = eventPublisher; } // 發(fā)布 ToDo:Create 消息 [HttpPost] public async Task CreateDoTo(string name) { await _eventPublisher.PublishAsync(new ChannelEventSource("ToDo:Create", name)); } }
- 在
Startup.cs注冊EventBus服務(wù):
public class Startup { public void ConfigureServices(IServiceCollection services) { // 注冊 EventBus 服務(wù) services.AddEventBus(buidler => { // 注冊 ToDo 事件訂閱者 buidler.AddSubscriber<ToDoEventSubscriber>(); }); // .... } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // .... } }
- 運(yùn)行項(xiàng)目:
info: Jaina.Samples.ToDoEventSubscriber[0] 創(chuàng)建一個(gè) ToDo:Jaina
文檔
您可以在主頁找到 Jaina 文檔。
貢獻(xiàn)
該存儲(chǔ)庫的主要目的是繼續(xù)發(fā)展 Jaina 核心,使其更快、更易于使用。Jaina 的開發(fā)在 Gitee 上公開進(jìn)行,我們感謝社區(qū)貢獻(xiàn)錯(cuò)誤修復(fù)和改進(jìn)。
許可證
Jaina 采用 MulanPSL-2.0 開源許可證。
Copyright (c) 2020-2021 百小僧, Baiqian Co.,Ltd. Jaina is licensed under Mulan PSL v2. You can use this software according to the terms andconditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: https://gitee.com/dotnetchina/Jaina/blob/master/LICENSE THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUTWARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details.
評(píng)論
圖片
表情
