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

歡迎訪問 生活随笔!

生活随笔

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

windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

為您提供更多閱讀

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

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

總結(jié)

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

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