eureka和zookeeper優(yōu)缺點(diǎn) eureka是ap還是cp?
eureka是ap還是cp?eureka是ap。三個分布式系統(tǒng)不可能同樣的不滿足C(一致性)、A(可用性)和P(主分區(qū)容錯性)。由于分區(qū)容錯性在是分布式系統(tǒng)中可以要保證的,并且我們只能在A和C之間并且
eureka是ap還是cp?
eureka是ap。
三個分布式系統(tǒng)不可能同樣的不滿足C(一致性)、A(可用性)和P(主分區(qū)容錯性)。由于分區(qū)容錯性在是分布式系統(tǒng)中可以要保證的,并且我們只能在A和C之間并且權(quán)衡。在此Zookeeper保證的是CP,而Eureka則是AP。
自研Java分布式產(chǎn)品如何技術(shù)選型,有哪些比較好的技術(shù)推薦?
一個非常好的問題。推薦Java Spring Boot,詳細(xì)功能組件能介紹如下。
Java是通吃開發(fā)語言,應(yīng)用普片,Spring Boot是具體方法框架,有極為豐富的組件和交互友好功能,在電商系統(tǒng)、信息管理系統(tǒng)、各種企業(yè)應(yīng)用開發(fā)中在壟斷地位。
一,系統(tǒng)架構(gòu)基本框架可兩類接口服務(wù)、數(shù)據(jù)層、異步運(yùn)行任務(wù)調(diào)度、業(yè)務(wù)處理、日志監(jiān)控等幾大模塊。
1,集成ActiveMQ消息隊(duì)列,平滑高峰期電流值
高峰期時,為了及時處理吶喊之聲客戶端只是請求,系統(tǒng)架構(gòu)中引導(dǎo)出ActiveMQ消息隊(duì)列,同步異步處理業(yè)務(wù)數(shù)據(jù),將剎那間負(fù)載狀態(tài)不平滑,保障運(yùn)行穩(wěn)定,構(gòu)架易擴(kuò)展。
2,板載顯卡Redis緩存系統(tǒng),增強(qiáng)數(shù)據(jù)讀寫效率,并意見故障恢復(fù)
數(shù)據(jù)保存到到Redis緩存中,和不使用內(nèi)存比起有兩個優(yōu)點(diǎn):
1)在架構(gòu)上接受集群存儲,多個服務(wù)器節(jié)點(diǎn)時,一次性處理業(yè)務(wù)邏輯讀寫數(shù)據(jù)時,是從Redis系統(tǒng)保持一致。
2)在服務(wù)重啟后或則發(fā)生故障時,可以不重新恢復(fù)當(dāng)前一次性處理的業(yè)務(wù)數(shù)據(jù)。
3,集成主板WebSocket,實(shí)時更新數(shù)據(jù)到后臺管理頁面,又不增強(qiáng)服務(wù)器負(fù)載
怎么沒更新會顯示數(shù)據(jù)的或狀態(tài)信息到后臺管理頁面中?有兩個方案可選。
1)有定時動態(tài)創(chuàng)建接口,是為馬上不顯示,定時任務(wù)執(zhí)行頻率會系統(tǒng)設(shè)置的比較比較高。那樣就給予兩個問題,是需要是提升服務(wù)器電流值,如果你是是在沒有新數(shù)據(jù)時,依然必須頻繁的全局函數(shù)接口。
2)WebSocket公眾號推送數(shù)據(jù),業(yè)務(wù)去處理.服務(wù)在發(fā)來新請求或者狀態(tài)發(fā)生了什么變化時,推送內(nèi)容數(shù)據(jù)到后臺管理頁面,不但可以做到了信息實(shí)時顯示,而且電腦資源服務(wù)器資源更加少,在多個管理后臺再打開頁面時,不額外增加服務(wù)器電流值。
二,功能組件詳細(xì)介紹1.數(shù)據(jù)層,MySQL數(shù)據(jù)庫,MyBatis持久度層,F(xiàn)lyway版本化管理數(shù)據(jù)庫SQL腳本,AliDruid再連接池等框架。Hibernate是一個經(jīng)常會不使用的自然持久化框架。
MyBatisPlus對MyBatis做了進(jìn)一步提高、更簡練開發(fā)和提高效率,并且可以提供了簡單易用的代碼生成器。
2.緩存系統(tǒng),最常在用Redis,也可建議選用MongoDB等其他NoSQL數(shù)據(jù)庫。
3.異步模式消息隊(duì)列,廣泛ActiveMQ,RocketMQ,RabbitMQ,Kafka,確定防御部署程序維護(hù)的緊張度,據(jù)項(xiàng)目的業(yè)務(wù)量選擇。
4.JSON數(shù)據(jù)處理,具體方法Fastjson,Gson,Jackson,Json-lib,推薦推薦Fastjson。
5.開發(fā)工具包,正確ApacheCommons套件,lang,collections,codec,io等功能庫。
6.同步異步任務(wù)調(diào)度,急切工程巨大任務(wù),建議使用Quartz框架異步模式負(fù)責(zé)執(zhí)行。銀色項(xiàng)目是可以使用Spring框架那個軟件的Schedule。
7.自動化單元測試JUnitMockit,瞬間覆蓋功能函數(shù),更加有保障代碼質(zhì)量。
8.日志系統(tǒng),集成LogBack,接入LogStash另外ELK講如何處理。
9.服務(wù)監(jiān)控,不使用Actuator等框架利用運(yùn)行信息收集和打110,和圖像化展示工具,比如說Prometheus Grafana AlertManager
10.Swagger接口文檔,將代碼和文檔融合一體,在修改代碼的同時能維護(hù)文檔。
接口調(diào)試工具,文件導(dǎo)出腳本文件更方便團(tuán)隊(duì)協(xié)作,并且也可以自動化運(yùn)行。
三,功能組件列表
四,部署系統(tǒng)運(yùn)維我推薦建議使用Docker容器,啟動本地開發(fā)環(huán)境,自動化運(yùn)維部署。阿里云容器鏡像服務(wù)吧Git Docker鏡像自動統(tǒng)合系統(tǒng)。
我是工作多年的Web應(yīng)用架構(gòu)師,陸續(xù)首頁關(guān)于軟件開發(fā)方面的文章,歡迎大家關(guān)注我,清楚更大IT專業(yè)知識。