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