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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java属于什么行业,吐血整理

發(fā)布時(shí)間:2023/11/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java属于什么行业,吐血整理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

微服務(wù)的發(fā)展

微服務(wù)倡導(dǎo)將復(fù)雜的單體應(yīng)用拆分為若干個(gè)功能簡(jiǎn)單、松耦合的服務(wù),這樣可以降低開(kāi)發(fā)難度、增強(qiáng)擴(kuò)展性、便于敏捷開(kāi)發(fā)。當(dāng)前被越來(lái)越多的開(kāi)發(fā)者推崇,很多互聯(lián)網(wǎng)行業(yè)巨頭、開(kāi)源社區(qū)等都開(kāi)始了微服務(wù)的討論和實(shí)踐。

微服務(wù)落地存在的問(wèn)題

雖然微服務(wù)現(xiàn)在如火如荼,但對(duì)其實(shí)踐其實(shí)仍處于探索階段。很多中小型互聯(lián)網(wǎng)公司,鑒于經(jīng)驗(yàn)、技術(shù)實(shí)力等問(wèn)題,微服務(wù)落地比較困難。

如著名架構(gòu)師Chris Richardson所言,目前存在的主要困難有如下幾方面:

  • 單體應(yīng)用拆分為分布式系統(tǒng)后,進(jìn)程間的通訊機(jī)制和故障處理措施變的更加復(fù)雜。
  • 系統(tǒng)微服務(wù)化后,一個(gè)看似簡(jiǎn)單的功能,內(nèi)部可能需要調(diào)用多個(gè)服務(wù)并操作多個(gè)數(shù)據(jù)庫(kù)實(shí)現(xiàn),服務(wù)調(diào)用的分布式事務(wù)問(wèn)題變的非常突出。
  • 微服務(wù)數(shù)量眾多,其測(cè)試、部署、監(jiān)控等都變的更加困難。

隨著RPC框架的成熟,第一個(gè)問(wèn)題已經(jīng)逐漸得到解決。例如springcloud可以非常好的支持restful調(diào)用,dubbo可以支持多種通訊協(xié)議。關(guān)注公眾號(hào)碼猿技術(shù)專(zhuān)欄獲取更多面試資源。

對(duì)于第三個(gè)問(wèn)題,隨著docker、devops技術(shù)的發(fā)展以及各公有云paas平臺(tái)自動(dòng)化運(yùn)維工具的推出,微服務(wù)的測(cè)試、部署與運(yùn)維會(huì)變得越來(lái)越容易。

而對(duì)于第二個(gè)問(wèn)題,現(xiàn)在還沒(méi)有通用方案很好的解決微服務(wù)產(chǎn)生的事務(wù)問(wèn)題。分布式事務(wù)已經(jīng)成為微服務(wù)落地最大的阻礙,也是最具挑戰(zhàn)性的一個(gè)技術(shù)難題。

ACID

  • 原子性(Atomicity):?一個(gè)事務(wù)的所有系列操作步驟被看成是一個(gè)動(dòng)作,所有的步驟要么全部完成要么一個(gè)也不會(huì)完成,如果事務(wù)過(guò)程中任何一點(diǎn)失敗,將要被改變的數(shù)據(jù)庫(kù)記錄就不會(huì)被真正被改變。
  • 一致性(Consistency):?數(shù)據(jù)庫(kù)的約束 級(jí)聯(lián)和觸發(fā)機(jī)制Trigger都必須滿(mǎn)足事務(wù)的一致性。也就是說(shuō),通過(guò)各種途徑包括外鍵約束等任何寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)都是有效的,不能發(fā)生表與表之間存在外鍵約束,但是有數(shù)據(jù)卻違背這種約束性。所有改變數(shù)據(jù)庫(kù)數(shù)據(jù)的動(dòng)作事務(wù)必須完成,沒(méi)有事務(wù)會(huì)創(chuàng)建一個(gè)無(wú)效數(shù)據(jù)狀態(tài),這是不同于CAP理論的一致性"consistency".
  • 隔離性(Isolation):?主要用于實(shí)現(xiàn)并發(fā)控制, 隔離能夠確保并發(fā)執(zhí)行的事務(wù)能夠順序一個(gè)接一個(gè)執(zhí)行,通過(guò)隔離,一個(gè)未完成事務(wù)不會(huì)影響另外一個(gè)未完成事務(wù)。
  • 持久性(Durability):?一旦一個(gè)事務(wù)被提交,它應(yīng)該持久保存,不會(huì)因?yàn)楹推渌僮鳑_突而取消這個(gè)事務(wù)。很多人認(rèn)為這意味著事務(wù)是持久在磁盤(pán)上,但是規(guī)范沒(méi)有特別定義這點(diǎn)。

一致性理論

分布式事務(wù)的目的是保障分庫(kù)數(shù)據(jù)一致性,而跨庫(kù)事務(wù)會(huì)遇到各種不可控制的問(wèn)題,如個(gè)別節(jié)點(diǎn)永久性宕機(jī),像單機(jī)事務(wù)一樣的 ACID 是無(wú)法奢望的。

另外,業(yè)界著名的 CAP 理論也告訴我們,對(duì)分布式系統(tǒng),需要將數(shù)據(jù)一致性和系統(tǒng)可用性、分區(qū)容忍性放在天平上一起考慮。

兩階段提交協(xié)議(簡(jiǎn)稱(chēng)2PC)是實(shí)現(xiàn)分布式事務(wù)較為經(jīng)典的方案,但 2PC 的可擴(kuò)展性很差,在分布式架構(gòu)下應(yīng)用代價(jià)較大,eBay 架構(gòu)師 Dan Pritchett 提出了 BASE 理論,用于解決大規(guī)模分布式系統(tǒng)下的數(shù)據(jù)一致性問(wèn)題。關(guān)注公眾號(hào)碼猿技術(shù)專(zhuān)欄獲取更多面試資源。

BASE 理論告訴我們:可以通過(guò)放棄系統(tǒng)在每個(gè)時(shí)刻的強(qiáng)一致性來(lái)?yè)Q取系統(tǒng)的可擴(kuò)展性。

CAP 理論

在分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)和分區(qū)容忍性(Partition Tolerance)3 個(gè)要素最多只能同時(shí)滿(mǎn)足兩個(gè),不可兼得。其中,分區(qū)容忍性又是不可或缺的。

  • 一致性:分布式環(huán)境下,多個(gè)節(jié)點(diǎn)的數(shù)據(jù)是否強(qiáng)一致。
  • 可用性:分布式服務(wù)能一直保證可用狀態(tài)。當(dāng)用戶(hù)發(fā)出一個(gè)請(qǐng)求后,服務(wù)能在有限時(shí)間內(nèi)返回結(jié)果。
  • 分區(qū)容忍性:特指對(duì)網(wǎng)絡(luò)分區(qū)的容忍性。

舉例:Cassandra、Dynamo 等,默認(rèn)優(yōu)先選擇 AP,弱化 C;HBase、MongoDB 等,默認(rèn)優(yōu)先選擇 CP,弱化 A。

BASE 理論

核心思想:

  • 基本可用(?Basically?Available):指分布式系統(tǒng)在出現(xiàn)故障時(shí),允許損失部分的可用性來(lái)保證核心可用;
  • 軟狀態(tài)(?Soft state):指允許分布式系統(tǒng)存在中間狀態(tài),該中間狀態(tài)不會(huì)影響到系統(tǒng)的整體可用性;
  • 最終一致性(?Eventual consistency):指分布式系統(tǒng)中的所有副本數(shù)據(jù)經(jīng)過(guò)一定時(shí)間后,最終能夠達(dá)到一致的狀態(tài);
  • 原子性(A)與持久性(D)必須根本保障;
  • 為了可用性、性能與降級(jí)服務(wù)的需要,只有降低一致性( C ) 與 隔離性( I ) 的要求;
  • 酸堿平衡(ACID-BASE Balance);

BASE 是對(duì) CAP 中 AP 的一個(gè)擴(kuò)展

一致性模型

數(shù)據(jù)的一致性模型可以分成以下三類(lèi):

  • 強(qiáng)一致性:數(shù)據(jù)更新成功后,任意時(shí)刻所有副本中的數(shù)據(jù)都是一致的,一般采用同步的方式實(shí)現(xiàn)。
  • 弱一致性:數(shù)據(jù)更新成功后,系統(tǒng)不承諾立即可以讀到最新寫(xiě)入的值,也不承諾具體多久之后可以讀到。
  • 最終一致性:弱一致性的一種形式,數(shù)據(jù)更新成功后,系統(tǒng)不承諾立即可以返回最新寫(xiě)入的值,但是保證最終會(huì)返回上一次更新操作的值。

分布式系統(tǒng)數(shù)據(jù)的強(qiáng)一致性、弱一致性和最終一致性可以通過(guò) Quorum NRW 算法分析。

本地事務(wù)

  • 在單個(gè)數(shù)據(jù)庫(kù)的本地并且限制在單個(gè)進(jìn)程內(nèi)的事務(wù)
  • 本地事務(wù)不涉及多個(gè)數(shù)據(jù)來(lái)源

分布式事務(wù)典型方案

  • 兩階段提交(2PC, Two Phase Commit)方案;
  • 本地消息表 (eBay 事件隊(duì)列方案);
  • TCC 補(bǔ)償模式;

分類(lèi):

  • 兩階段型
  • 補(bǔ)償型
  • 異步確保型
  • 最大努力通知型

服務(wù)模式:

  • 可查詢(xún)操作
  • 冪等操作
  • TCC操作
  • 可補(bǔ)償操作

線(xiàn)程、數(shù)據(jù)庫(kù)、算法、JVM、分布式、微服務(wù)、框架、Spring相關(guān)知識(shí)

一線(xiàn)互聯(lián)網(wǎng)P7面試集錦+各種大廠(chǎng)面試集錦

資料領(lǐng)取方式:戳這里

學(xué)習(xí)筆記以及面試真題解析

mg-ogOPi3yV-1624514804777)]

資料領(lǐng)取方式:戳這里

學(xué)習(xí)筆記以及面試真題解析

總結(jié)

以上是生活随笔為你收集整理的java属于什么行业,吐血整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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