1.單體應用架構存在的問題
一個歸檔包(例如war)包含所有功能的應用程序,通常稱為單體應用。
相信很多項目都是從單體應用開始的,單體應用比較容易部署和測試,項目的初期,項目可以很好的運行,然而,隨着需求的不斷增加,越來越多的人加入到開發團隊,代碼庫也在飛速的膨脹,慢慢的單體應用變得越來越臃腫,可維護性,靈活性逐漸降低,維護的成本越來越高,以下列舉單體架構中存在的問題:
- 復雜性高:定時炸彈
- 技術債務:no broken don't fix
- 可靠性差:單個bug,導致整個系統癱瘓
- 阻礙技術創新
2.架構的演變
3.什么是微服務
the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
- 由一系列微小的服務組成
- 每個服務獨立運行在自己的進程中
- 獨立部署
- 基於分布式的管理
官網鏈接:https://www.martinfowler.com/articles/microservices.html
4.微服務的解決方案
5.什么是springcloud
Spring Cloud是一個含概多個子項目的開發工具集,集合了眾多的開源框架,他利用了Spring Boot開發的便利性實現了很多功能,如服務注冊,服務注冊發現,負載均衡等.Spring Cloud在整合過程中主要是針對Netflix(耐非)開源組件的封裝.
NetFlix 是美國的一個在線視頻網站,微服務業的翹楚,他是公認的大規模生產級微服務的傑出實踐者,NetFlix的開源組件已經在他大規模分布式微服務環境中經過多年的生產實戰驗證,因此spring cloud中很多組件都是基於NetFlix組件的封裝
Spring Cloud的出現真正的簡化了分布式架構的開發
6.springcloud的特點
- 服務注冊和發現
- 路由
- service - to - service調用
- 負載均衡
- 斷路器