新聞中心
.NET Foundation不僅僅包括.NET,還是眾多語(yǔ)言和框架的開(kāi)源中心,可幫助您在各種.NET運(yùn)行時(shí)環(huán)境和編譯器的基礎(chǔ)上構(gòu)建代碼,全球的公司和個(gè)人為之貢獻(xiàn)代碼。

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、蒸湘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
一種較流行的工具來(lái)自Pivotal(現(xiàn)在再次隸屬VMware)。Steeltoe旨在幫助開(kāi)發(fā)人員構(gòu)建更好的.NET微服務(wù),充當(dāng).NET與Pivotal的Spring Cloud和Cloud Foundry平臺(tái)以及Kubernetes和其他容器之間的橋梁,擁有一組可加快應(yīng)用程序開(kāi)發(fā)的庫(kù)。它現(xiàn)已開(kāi)放,接受.NET社區(qū)(包括微軟團(tuán)隊(duì))貢獻(xiàn)的代碼,立足于Netflix的開(kāi)源庫(kù)方面完成的工作。你可以在GitHub上找到存儲(chǔ)庫(kù)(https://github.com/SteeltoeOSS/steeltoe)。
微服務(wù)和Steeltoe
Steeltoe基于熟悉的工作方式,還可以用作從Java和其他企業(yè)語(yǔ)言進(jìn)入到.NET開(kāi)發(fā)的跳板。你可以將在Spring Cloud上用Java編寫(xiě)的代碼移植到.NET,或使用Steeltoe連接件來(lái)混合不同技術(shù),以便可以通過(guò).NET微服務(wù)改進(jìn)現(xiàn)有的應(yīng)用程序。項(xiàng)目經(jīng)理會(huì)發(fā)現(xiàn)這種方法很有幫助,因?yàn)樗麄兛梢愿鶕?jù)需要混合搭配可用資源,不必?fù)?dān)心兼容性問(wèn)題。
Steeltoe可以使用初始化工具創(chuàng)建云微服務(wù),添加提供不同云服務(wù)的提供商,并自動(dòng)配置用于部署的代碼。配置可以輕松地存儲(chǔ)在代碼之外,那樣您可以將令牌及其他重要的驗(yàn)證詳細(xì)信息保留在Hashicorp的Vault之類(lèi)的安全服務(wù)中,無(wú)需暴露在代碼存儲(chǔ)庫(kù)中。
最大優(yōu)點(diǎn)是其庫(kù),庫(kù)預(yù)包裝在您的代碼中準(zhǔn)備使用的云設(shè)計(jì)模式。這包括借助Eureka和Consul客戶(hù)端以及有助于調(diào)試代碼的分布式跟蹤支持服務(wù)發(fā)現(xiàn)。其他關(guān)鍵元素通過(guò)處理網(wǎng)絡(luò)文件共享來(lái)支持消息傳遞,并提供與要使用的云服務(wù)對(duì)接的連接件。云原生微服務(wù)需要無(wú)狀態(tài)、易于組合且定義明確,而Steeltoe的庫(kù)有助于構(gòu)建支持云原生設(shè)計(jì)模式的代碼,無(wú)需更改編寫(xiě).NET Core應(yīng)用程序的方式。
最新版本是Steeltoe 3.0。這將支持從.NET Framework轉(zhuǎn)移到.NET Core,為.NET 5和將來(lái)基于.NET Core的版本做好了準(zhǔn)備。它增加了支持其他分布式應(yīng)用程序平臺(tái)(比如Kubernetes)和基于消息傳遞的架構(gòu)的功能。這意味著要更改程序包命名,因此升級(jí)到新版本時(shí),代碼需要一番重構(gòu)。
使用斷路器模式
Steeltoe的一項(xiàng)實(shí)用功能是使用基于Netflix Hystrix的工具支持?jǐn)嗦菲?Circuit Breaker)模式。最初的Hystrix處于維護(hù)模式,但它使用的模式仍適用于使微服務(wù)具有容錯(cuò)能力,并通過(guò)提供一種快速鎖定故障并防止連鎖反應(yīng)的方法為應(yīng)用程序增添彈性。
在遠(yuǎn)程或第三方服務(wù)可見(jiàn)性有限的分布式架構(gòu)中,斷路器是一種重要工具。這使得它們適用于這些地方:服務(wù)由不同的Devop團(tuán)隊(duì)構(gòu)建和管理,以及您使用的服務(wù)被太多應(yīng)用程序使用而變得不可靠。斷路器監(jiān)測(cè)代碼中對(duì)服務(wù)的所有調(diào)用。如果太多調(diào)用失敗,它會(huì)退回到替代方法并發(fā)出警報(bào)。這會(huì)觸發(fā)重新啟動(dòng),或者就等到遠(yuǎn)程服務(wù)再次可用。
有了Steeltoe,就很容易為任何服務(wù)調(diào)用添加斷路器包裝件。這在其自己的線(xiàn)程池中運(yùn)行,有助于管理目標(biāo)服務(wù)上的負(fù)載。如果線(xiàn)程因代碼調(diào)用過(guò)多而不可用,或者斷路器在遠(yuǎn)程服務(wù)沒(méi)有響應(yīng)時(shí)等待,可以調(diào)用后備方法。同樣,呼叫可能超時(shí),所有操作會(huì)被記錄并顯示在各自的儀表板上,以便您查看服務(wù)的運(yùn)行情況。這些日志是有用的診斷工具,您可以使用ELK堆?;駻zure的Monitor之類(lèi)的工具將它們納入Devops流程中。
使用Project Tye部署到Kubernetes
如果您想使.NET成為更廣泛的云原生環(huán)境的一部分,Steeltoe與微軟的Project Tye很搭,可將.NET微服務(wù)引入到Kubernetes(尤其是Azure Kubernetes Service)。在這里您可以使用Steeltoe庫(kù)構(gòu)建服務(wù),然后使用Project Tye將它們添加到容器中。這可以自動(dòng)執(zhí)行這個(gè)過(guò)程:創(chuàng)建.NET容器和Kubernetes清單文件,以及查找其他服務(wù)和處理容器依賴(lài)項(xiàng)。這是一個(gè)實(shí)用的工具,可使用.NET命令行工具來(lái)安裝。一旦安裝完成,很容易從應(yīng)用程序腳手架轉(zhuǎn)到運(yùn)行中代碼,儀表板監(jiān)測(cè)運(yùn)行中的服務(wù)并查看日志??蓪⒍鄠€(gè)服務(wù)添加到單個(gè).NET解決方案,然后可以使用單個(gè)tye調(diào)用來(lái)運(yùn)行。
更復(fù)雜的配置可使用Project Tye自己的YAML清單文件來(lái)加以管理。tye.yaml文件將幫助管理依賴(lài)項(xiàng)、與Docker文件和容器注冊(cè)表一起引入服務(wù)并根據(jù)需要進(jìn)行部署。一些場(chǎng)景需要預(yù)配置和部署外部服務(wù),比如數(shù)據(jù)庫(kù)或緩存。
使用Steeltoe構(gòu)建服務(wù)以及使用Project Tye進(jìn)行捆綁是開(kāi)始使用云原生.NET開(kāi)發(fā)的快速方法。雖然Project Tye仍然是試驗(yàn)項(xiàng)目,但.NET 5發(fā)布后微軟會(huì)不會(huì)繼續(xù)致力于它值得拭目以待,因?yàn)橛?jì)劃與Dapr等工具的集成會(huì)使其成為任何.NET開(kāi)發(fā)環(huán)境的一組實(shí)用擴(kuò)展。在我看來(lái),將其集成到.NET命令行環(huán)境中非常有意義,其對(duì).NET的意義如同Draft等工具對(duì)更廣泛的Kubernetes生態(tài)系統(tǒng)的意義。
.NET中與云無(wú)關(guān)的分布式應(yīng)用程序方法
構(gòu)建和運(yùn)行分布式應(yīng)用程序應(yīng)該不難;它們是在多個(gè)云中和跨多個(gè)云工作的關(guān)鍵。通過(guò)支持Spring Cloud和Kubernetes,Steeltoe提供了一種中立的多云開(kāi)發(fā)方法。您可以使用熟悉的工具和技術(shù)以及Steeltoe來(lái)構(gòu)建.NET代碼,然后使用配置工具支持將代碼分發(fā)到目標(biāo)平臺(tái)的工作。
結(jié)果是可以將代碼從一個(gè)云快速切換到另一個(gè)云,以及從數(shù)據(jù)中心快速切換到托管平臺(tái)?;?NET Core的現(xiàn)代代碼是為微服務(wù)設(shè)計(jì)的,Steeltoe可幫助提供原本您需要自行編寫(xiě)的許多功能。探究.NET基金會(huì)托管的各個(gè)項(xiàng)目非常值得,您可能會(huì)找到幫您更快速地編寫(xiě)更好代碼的項(xiàng)目。
分享標(biāo)題:Steeltoe:簡(jiǎn)化.NET云微服務(wù)的構(gòu)建
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/djijehd.html


咨詢(xún)
建站咨詢(xún)
