2015-06-27 100 views
1

微服務.NET可以相互通信的好方法是什麼?使用NETMQ(ZeroMQ的端口),點對點通信是否會更好(用於性能),還是通過總線(NServiceBus或RhinoBus)會更好? 你也可以將你的數據訪問層分成微服務嗎?.NET中微服務的設計策略

-Indu

+1

您可能希望**閱讀whathaveyoutried.com並向StackOverflow社區表示一些敬意**,該社區強烈建議您發佈高質量的問題,並附上** MCVE(最小完全可驗證的示例顯示迄今爲止您嘗試過的內容**)。您可能需要更新您的帖子,以達到此最低合理質量水平,並顯示您的意願,以尊重其他StackOverflow貢獻成員。他們是專業人士,他們熱衷於回答有關MCVE相關問題的好問題。 **享受成爲StackOverflow貢獻會員並支持此社區網絡禮儀** – user3666197

+0

我仍在制定設計策略並尋求建議。 – Indu

+1

如果它不是基於定量證據(閱讀測試,測試和再次測試以驗證*),那麼這將是一個**高度誤導性的**技術營銷,以提供任何類型的這種「推薦」 *符合所有設計標準**)。事先事先做好定量。與運輸相關的瑣事最大。允許e-2-e潛伏期[ns],最小/最大大小[B],最小值。總體吞吐量[Mmsg/s]不久將比體系結構功能 - 控制平面,同步/異步/非阻塞原子模式和內部信號傳輸,外部使用情況的可擴展性更重要。 T.B.C. – user3666197

回答

0

一個基於總線的設計服務可以讓你的應用程序來利用decoupling middleware設計模式。您對每個微服務的通信方式有明確的控制。您還可以調節流量。但是,它確實取決於您的要求。請參考this tutorial關於在.NET(C#)中構建和測試微服務。

0

我們正在走上這條路。像所有新的熱門新方法一樣,您必須注意您實際上正在實現使用微服務方法的好處。

我們評估Azure Service Fabric是一種可能性。作爲託管你的應用程序的地方,它看起來很有前途。如果您希望應用程序與環境緊密集成,那麼還有一個令人印象深刻的API。這種整合可能會回答你的問題。需要注意的是API仍然處於不斷變化之中(它正在改進)並且文檔很少。它也有點像「供應商鎖定」。

爲了簡單起見,我們開始讓微服務成爲通過REST進行通信的簡單無狀態應用程序。端點有詳細的文檔記錄,並且包含合同版本號作爲URI的一部分。隨着需求的增加(即性能),我們打算在後面介紹更復雜的交互方式。

要回答你關於「數據訪問層」的問題,我的觀點是每個微服務應該以任何最適合該服務的方式持續存在。實際存儲對微服務是私有的,其他服務可能只能通過其公共API使用該數據。

+0

我們可以開發微服務架構嗎? –

-1

我們最近開源了.NET微服務框架,它涵蓋了微服務所需的幾個模式。我建議至少看看當你進入這種架構時需要什麼。 https://github.com/gigya/microdot