網(wǎng)站開發(fā)怎樣建立后臺(tái)數(shù)據(jù)推廣產(chǎn)品的軟文怎么寫
我的新書《Android App開發(fā)入門與實(shí)戰(zhàn)》已于2020年8月由人民郵電出版社出版,歡迎購買。點(diǎn)擊進(jìn)入詳情
構(gòu)建和管理微服務(wù)是一項(xiàng)艱巨的任務(wù)。這是因?yàn)槲⒎?wù)就像多個(gè)并行的整體應(yīng)用程序,它們都必須處于同步通信和并發(fā)運(yùn)行時(shí)間。因此,在設(shè)計(jì)和構(gòu)建它們時(shí)考慮并應(yīng)用最佳實(shí)踐非常重要。以下是此類做法的列表,但并不詳盡:
- 不要構(gòu)建微服務(wù)。
- 認(rèn)真地說,構(gòu)建微服務(wù)只能被視為最后的選擇。
- 務(wù)實(shí)一點(diǎn)。
- 首先嘗試構(gòu)建一個(gè)模塊化整體。微服務(wù)應(yīng)該放在最后。
2. 針對(duì)失敗進(jìn)行設(shè)計(jì)。
- 任何使用微服務(wù)的分布式系統(tǒng)總是有失敗的可能。設(shè)計(jì)得越早越好。
- 故障設(shè)計(jì)必須滿足每個(gè)級(jí)別——基礎(chǔ)設(shè)施級(jí)別、數(shù)據(jù)庫級(jí)別和單個(gè)微服務(wù)。
- 應(yīng)使用斷路器、優(yōu)雅的降級(jí)方法和艙壁。
3. 構(gòu)建小型服務(wù)。
- 微服務(wù)應(yīng)該非常具體,并且應(yīng)該在這一點(diǎn)上表現(xiàn)出色。將微服務(wù)構(gòu)建為一把瑞士刀會(huì)導(dǎo)致災(zāi)難。
4. 使用輕量級(jí)通信協(xié)議。
- 微服務(wù)之間的通信至關(guān)重要。
- 應(yīng)使用 REST、GRPC 或消息隊(duì)列等協(xié)議。
- 應(yīng)盡可能減少通信開銷并提高性能。
5. 實(shí)施服務(wù)發(fā)現(xiàn)。
- 為了有效通信,微服務(wù)需要能夠相互識(shí)別,因此,應(yīng)該從一開始就實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)。
- 可以使用Eureka或者Consul等工具。
6.數(shù)據(jù)管理應(yīng)該是分布式的。
- 數(shù)據(jù)應(yīng)歸各個(gè)服務(wù)所有。
- 任何數(shù)據(jù)都應(yīng)該由所有者服務(wù)管理。
- 最終目標(biāo)應(yīng)該是減少服務(wù)之間的耦合,使它們能夠獨(dú)立發(fā)展。
7. 實(shí)施彈性模式。
- 為了提高系統(tǒng)可用性,應(yīng)實(shí)施彈性模式。
- 鼓勵(lì)使用重試策略、緩存和速率限制。
8. 主動(dòng)監(jiān)控服務(wù)。
- 在任何分布式系統(tǒng)中,會(huì)宕機(jī)的服務(wù)最終都會(huì)宕機(jī)。
- 為了跟上服務(wù)的步伐,需要及時(shí)識(shí)別問題,并收集和分析指標(biāo)。
- Prometheus 和 Grafana 等工具有助于監(jiān)控整個(gè)系統(tǒng)并盡早發(fā)現(xiàn)潛在問題。
9. 各級(jí)都應(yīng)配備安全性。
- 微服務(wù)具有很大的攻擊面,因此盡可能最小的單元內(nèi)的安全性非常重要。
- 安全性必須從基礎(chǔ)設(shè)施層到服務(wù)層,再到通信層來實(shí)現(xiàn)。
- 應(yīng)使用最新安全協(xié)議和工具的適當(dāng)權(quán)限。
10.集中記錄。
- 在了解系統(tǒng)發(fā)生的情況時(shí),日志非常重要。
- 但是,為了確保日志有意義,來自所有服務(wù)的日志必須聚合在一個(gè)集中位置以便于分析。
- 使用 ELK 等工具構(gòu)建強(qiáng)大的日志記錄設(shè)置。
11. 使用容器化技術(shù)。
- 為了以隔離的方式部署微服務(wù),應(yīng)使用容器化和編排工具,例如 Docker 和 Kubernetes。
- 它們旨在簡化服務(wù)的部署和擴(kuò)展要求。
- 還應(yīng)該分配充足的時(shí)間來管理這些資源。
12. 使用自動(dòng)化測試和部署。
- 微服務(wù)應(yīng)該經(jīng)過徹底的測試以確??煽啃?。
- 應(yīng)使用自動(dòng)化測試用例作為 CI/CD 流程的一部分來確保無縫體驗(yàn)。