日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

从微服务到分布式系统-Java开发人员生存指南

發(fā)布時間:2023/12/3 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从微服务到分布式系统-Java开发人员生存指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

感覺像是對微服務(wù)的炒作正在慢慢地落到實處,并且我們的行業(yè)開始意識到,僅通過在現(xiàn)有組件之上公開一些HTTP接口就無法輕松創(chuàng)建根據(jù)微服務(wù)背后的體系結(jié)構(gòu)范式的系統(tǒng)。 我們似乎確實同意必須進(jìn)行服務(wù)優(yōu)化的基礎(chǔ)架構(gòu),文化和組織變革,最后但并非最不重要的是這些架構(gòu)的外部架構(gòu)或業(yè)務(wù)流程。 許多Java開發(fā)人員似乎仍在苦苦掙扎的部分是具體的系統(tǒng)體系結(jié)構(gòu),以及事實上,微服務(wù)就是分布式系統(tǒng)。 不幸的是,正是這些知識領(lǐng)域決定了項目失敗的成功。 對于一些背景知識,我建議您閱讀

丹尼爾·布萊恩特(Daniel Bryant) 對Uwe和Adrian進(jìn)行的InfoQ精彩采訪 。

為什么要再次使用微服務(wù)? 我不能只是高興地編寫EJB和Servlet嗎?

微服務(wù)的關(guān)鍵思想是支持其余應(yīng)用程序環(huán)境的獨立性和快速可擴(kuò)展性的屬性。 此外,與基于應(yīng)用程序服務(wù)器的應(yīng)用程序相比,它們應(yīng)獨立擴(kuò)展并需要更少的資源。 在不斷變化的業(yè)務(wù)需求和不斷增長的應(yīng)用程序客戶端數(shù)量的世界中,集中式基礎(chǔ)架構(gòu)的運(yùn)營成本日益高昂,并朝著無法預(yù)測的負(fù)載或負(fù)載高峰擴(kuò)展。 如果所有人都被應(yīng)用服務(wù)器所困擾,那么就不會有Netflix,Twitter或Amazon。 所以:不。您不能只呆在原地。

微服務(wù)是分布式系統(tǒng)。 他們有什么特別之處?

分布式系統(tǒng)的原始定義是:“分布式系統(tǒng)是一種模型,其中位于聯(lián)網(wǎng)計算機(jī)上的組件通過傳遞消息來通信和協(xié)調(diào)其動作?!?( Wikipedia )這正是基于微服務(wù)的架構(gòu)中發(fā)生的事情。 各個服務(wù)被部署到物理上在某個地方運(yùn)行的云實例,并且它們交換消息。 這與我們用來構(gòu)建集中式應(yīng)用程序的方式有很大的不同。 現(xiàn)在,我們不再擁有代表我們處理各種同步,事務(wù)和故障轉(zhuǎn)移場景的服務(wù)器,而是擁有獨立發(fā)展且彼此不捆綁的獨立服務(wù)。 分布式計算存在一些獨特的基本挑戰(zhàn)。 其中包括容錯,同步,自我修復(fù),背壓,網(wǎng)絡(luò)分裂等。

分布式系統(tǒng)不是每個人都稱為反應(yīng)式系統(tǒng)嗎?

比這更復(fù)雜。 老實說,這些天“反應(yīng)性”這個詞本身有很多事情。 要使用單個微服務(wù)構(gòu)建應(yīng)用程序或系統(tǒng),您需要使用一組設(shè)計原則,使它們具有響應(yīng)性,彈性,彈性和消息驅(qū)動性。 如果聽起來很熟悉,那么您可能是對的。 來自的定義
反應(yīng)式宣言 。 實現(xiàn)反應(yīng)式宣言的四個特征的分布式系統(tǒng)應(yīng)該被稱為
反應(yīng)系統(tǒng) 。 您可以在Jonas的書中閱讀有關(guān)反應(yīng)式微服務(wù)系統(tǒng)設(shè)計原理的更多信息。 Lagom框架是基于這些原則構(gòu)建的,但是讓我清楚一點,您不一定需要特定的框架或產(chǎn)品來構(gòu)建此類應(yīng)用程序。 其中一些只是使您的地獄生產(chǎn)率更高,并且您的運(yùn)營會更有效。 休·麥基(Hugh McKee)有一本關(guān)于基于Actor的系統(tǒng)的設(shè)計原理的免費書籍 。

構(gòu)建基于微服務(wù)的系統(tǒng)有哪些選擇?

我個人看到解決今天與微服務(wù)有關(guān)的問題的兩種不同趨勢。 首先是將問題歸結(jié)為業(yè)務(wù)流程或數(shù)據(jù)中心操作或云系統(tǒng),如DC / OS,OpenShift,Cloudfoundry等。 第二種解決方案是在應(yīng)用程序或框架級別上本機(jī)處理它們(Akka,Vert.x等)。

每次服務(wù)一個容器,或者為什么水蟒 不應(yīng)該 吞下馬匹。

讓我們更詳細(xì)地介紹第一種方法。 編寫微服務(wù),將其與運(yùn)行時一起打包在一個小容器中,然后將其推送到云中。 如今,DevOps開發(fā)人員已經(jīng)全堆了,因此創(chuàng)建基于云的運(yùn)行時所需的元信息很容易。 多虧了我的引導(dǎo)性服務(wù),所有相關(guān)的監(jiān)視信息已經(jīng)公開,并且我可以輕松地檢測到失敗的服務(wù)并重新啟動它們。 這肯定可以工作。 您甚至可以將功能齊全的應(yīng)用程序服務(wù)器用作微服務(wù)運(yùn)行時。 此外,還有許多魔術(shù)框架(NetflixOSS)可幫助應(yīng)對分布式系統(tǒng)的挑戰(zhàn)。 對我個人而言,缺點是在這種情況下與基礎(chǔ)架構(gòu)緊密耦合。 您所選擇的平臺之外的系統(tǒng)將無法在其他任何平臺上運(yùn)行。 此外,他們建議您只需要使用容器來解決微服務(wù)領(lǐng)域中的所有問題。 回顧響應(yīng)式宣言,這些類型的系統(tǒng)將無法幫助您滿足在服務(wù)之間使用消息傳遞的要求。

沒有容器的微服務(wù)? 那就是沒有黃油的花生!

真正。 容器可以很好地完成一件事。 將整個堆棧以可控制的方式打包到可部署的單元中。 它們是基礎(chǔ)架構(gòu)級別的隔離機(jī)制。 擁有容器標(biāo)準(zhǔn)實際上可能是一件好事。 因此,請保留您的容器。 但是,您還需要更多。
因此,構(gòu)建具有復(fù)原力的自我修復(fù)系統(tǒng)的關(guān)鍵是允許對故障進(jìn)行以下處理:將故障包含在內(nèi),將其分類為消息,發(fā)送給其他組件(充當(dāng)主管)并從發(fā)生故障的組件外部的安全上下文中進(jìn)行管理。 在這里,以消息為驅(qū)動力是推動力:擺脫每個人都受到痛苦或忽略的強(qiáng)耦合,易碎,深度嵌套的同步呼叫鏈。 這個想法是將故障管理與呼叫鏈分離,使客戶端從處理服務(wù)器故障的責(zé)任中解放出來。 沒有容器或業(yè)務(wù)流程編制工具可以幫助您將其集成。 您正在尋找事件源。 的
使用事件源的事件驅(qū)動架構(gòu)的設(shè)計概念與微服務(wù)架構(gòu)模式非常一致。

響應(yīng)式編程,系統(tǒng)和流:不是全部一樣嗎?

反應(yīng)性已經(jīng)成為一個超負(fù)荷的術(shù)語,并且現(xiàn)在正與與不同人相關(guān)的幾項不同的事物相關(guān)聯(lián)—在好的公司中,諸如“流”,“輕量”和“實時”之類的詞。 “響應(yīng)式編程通過性能和資源效率,在組件級別上為內(nèi)部邏輯和數(shù)據(jù)流管理提高了開發(fā)人員的生產(chǎn)率。 Reactive Systems在系統(tǒng)級別上通過彈性和彈性為架構(gòu)師和DevOps提供生產(chǎn)力,用于構(gòu)建Cloud Native或其他大規(guī)模分布式系統(tǒng)。 您應(yīng)該真正花時間閱讀一下JonasBonér和Viktor Klang如何解釋他們之間的個體差異 。

在哪里可以了解有關(guān)如何設(shè)計反應(yīng)式微服務(wù)的更多信息?

詹姆斯·羅珀(James Roper)在去年的反應(yīng)性峰會上做了精彩的演講,并親手研究了系統(tǒng)的體系結(jié)構(gòu)(包括數(shù)據(jù)流,所用的通信類型以及將系統(tǒng)分解為組件的方式)如何需要在將整體分解為基于反應(yīng)式微服務(wù)的系統(tǒng)時進(jìn)行更改。

我在CJUG上進(jìn)行了有關(guān)Java開發(fā)人員的CQRS的演講 ,向您進(jìn)行了介紹。 如果您有感興趣的特定主題,請在評論中讓我知道。

為您提供更多閱讀

  • JonasBonér和Viktor Klang 在20分鐘內(nèi)介紹了反應(yīng)式編程與反應(yīng)式系統(tǒng)
  • Konrad最近進(jìn)行了一次網(wǎng)絡(luò)研討會,內(nèi)容涉及Java 8中的Akka Streams,Alpakka和Kafka中的Reactive Integrations。
  • 傳統(tǒng)Java企業(yè)的反應(yīng)式系統(tǒng)設(shè)計基礎(chǔ)
  • Duncan DeVore 在不到12分鐘的時間內(nèi)進(jìn)行了反應(yīng)式架構(gòu),設(shè)計和編程

翻譯自: https://www.javacodegeeks.com/2017/02/microservices-distributed-systems-survival-guide-java-developers.html

總結(jié)

以上是生活随笔為你收集整理的从微服务到分布式系统-Java开发人员生存指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。