簡體   English   中英

在Linux容器上的dotnet Core中實現消息使用者

[英]Implementing a Message Consumer in dotnet Core on Linux container

我正在尋求實現將在Linux kubernetes集群上部署的服務。 它將使用和處理隊列中的消息。

我的問題是,今天在dotnet核心中實現工人的推薦和常規方式是什么? ASPNET應用程序中的后台任務似乎過大,因為我不需要處理Web請求。 一些研究使我認為構建IHost和自定義IHostedService的控制台應用程序可以完成這項工作。 我對這種情況下沒有示例感到驚訝,盡管這使我想知道我是否缺少實現這一目標的更標准方法?

使用“簡單”控制台應用程序,通過在最后一個代碼行添加Console.ReadLine()顯然將不起作用,因為在K8s中運行時沒有輸入流。

推薦的實現此方法的方法是使用主機生成器。

如前所述,WebHost用於Web應用程序,但是對於所有其他通常不需要Web功能的其他類型的應用程序,都有一個通用的主機構建器。

盡管起初它似乎有點“過大殺傷力”,但實際上並非如此。 當計划在Kubernetes上運行時,您必須考慮快樂路徑以外的其他路徑。 例如,在該部署發生縮減事件時,允許K8s向您發出信號通知終端(處理SIGTERM),或者在使用HostBuilder時開箱即用地支持節點排空(以正常關閉)。 此外,您還可以享受其他內置功能,例如從文件自動重載設置(將ConfigMap安裝到文件時效果很好)

文檔: https : //docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-2.2

示例項目: https : //github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/fundamentals/host/generic-host/samples/2.x/GenericHostSample

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM