一、架構(gòu)的演進(jìn):
① 單體架構(gòu)
② SOA
③ 微服務(wù)
⑴ 單體架構(gòu)存在的缺點(diǎn):
- 復(fù)雜性逐漸變高
- 技術(shù)債務(wù)逐漸上升
- 部署速度逐漸變慢
- 阻礙技術(shù)創(chuàng)新
- 無法按需伸縮
二、微服務(wù)的特性
- 每個(gè)微服務(wù)課獨(dú)立運(yùn)行在自己的進(jìn)程里寻仗;
- 一系列獨(dú)立運(yùn)行的微服務(wù)共同構(gòu)建起了整個(gè)系統(tǒng);
- 每個(gè)服務(wù)為獨(dú)立的業(yè)務(wù)開發(fā)拿霉,一個(gè)微服務(wù)一般完成某個(gè)特定的功能绽淘,比如訂單管理、用戶管理等祭往;
- 微服務(wù)之間通過一些輕量級(jí)的通信機(jī)制進(jìn)行通信,例如通過REST API或者RPC的方式進(jìn)行調(diào)用离钝。
三卵渴、微服務(wù)的優(yōu)點(diǎn)
- 易于開發(fā)和維護(hù)
- 啟動(dòng)較快
- 局部修改容易部署
- 技術(shù)棧不受限
- 按需伸縮
- DevOps(具備相應(yīng)的自動(dòng)化工具可以輔助運(yùn)維浪读。)
四互订、微服務(wù)帶來的挑戰(zhàn)
- 運(yùn)維要求較高
- 分布式的復(fù)雜性
- 接口調(diào)整成本高
- 重復(fù)勞動(dòng)
五吐葵、微服務(wù)設(shè)計(jì)原則
- 單一職責(zé)原則
- 服務(wù)自治原則
- 輕量級(jí)通信原則
- 接口明確原則
六诚镰、微服務(wù)開發(fā)框架淺談
- Spring Cloud: http://projects.spring.io/spring-cloud
- Dubbo: http:/dubbo.io
- Dropwizard: http://www.dropwizard.io
- Consul刃跛、etcd&etc