1:我們為什么需要使用微服務架構?或者說微服務能幫助我們解決什么問題?
思路:我們可以從微服務的對立面進行考慮,從單體應用存在的問題思考,
- 隨著業務的發展,開發變得越來越復雜, 修改、新增某個功能,需要對整個系統進行測驗,重寫部署,為了解決上述問題,微服務架構應運而生,簡單來說,微服務就是將?個單體應?拆分成若干個小型服 務,協同完成系統功能的?種架構模式,在系統架構層面進行解耦合,
- 各個模塊使?同?種技術框架,局限性太大,很難根據業務選擇最適合的技術架構,微服務架構拆分成小的模塊之后的各個微服務之間進行通信 微服務之間只需要制定統?的協議即可,?于每個微服務使?什么技術框架來完成,統統不需要關心, 這種松耦合的?式使得開發、部署都變得更加靈活,同時系統更容易擴展,降低了開發、運維的難度,

2.微服務的優點
- 各個服務之間實作了松耦合,彼此之間不需要關注對?是?什么語言開發,無論是python,java,c#等等,只需要保證自己的接?可以正常訪問即可,通過標準協議訪問其他介面即可,
- 各個微服務之間獨立管理,只需要專注于做好自己的業務,開發和維護不會影響到其他的微服務, 微服務是?種去中心化的架構方式,相當于每個人做好的零件,最終將其拼接在一起而不管程序是如何生產零件的,
3.微服務的缺點
- 某個系統的遠程呼叫出現問題時,導致微服務不可用,因為其是通過注冊中心來呼叫的,因此就有可能產生級聯反應,造成整個系統的崩潰,
- 如果某個需求需要呼叫多個微服務,如何來保證資料的?致性,一般采用json,
- 相比較于單體應用,微服務的學習難度會增加,對于新加?團隊的員工來講,如何快速掌握上手微服務架構,是?個問題,
4.微服務設計原則
- 分析業務需求,從大到小提煉出核心需求,搞清楚服務間的互動關系,先拆分成粒度較大的服務,然后再根據具體的業務需求逐步細化服務粒度,
- 各個微服務的功能職責盡量單?,避免出現多個服務處理同?個需求,避免出現高耦合,
- 保證資料的獨?性,各個微服務獨立管理其業務模型下的資料, 使? RESTful 協議完成微服務之間的協作任務,資料互動采用JSON 格式,方便呼叫和整合,

5.解決方案
- Spring Cloud 微服務是?種分布式軟體架構設計方式,具體的落地?案有很多,Dubbo、Spring Boot/Spring Cloud、Motan 等等,但是Spring Cloud 屬于Spring全家桶里的一份子,基于 Spring Boot 使得整體的開發、配置、部署都非常方便,可以 快速搭建基于微服務的分布式應?,Spring Cloud 相當于微服務各個組件的集?成者,
- SpringCloud依托于Spring平臺,具備更加完善的生態體系;而Dubbo一開始只是做RPC遠程呼叫,生態相對匱乏,現在逐漸豐富起來,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/300741.html
標籤:java
