dubbo和 cloud
dubbo,高內(nèi)聚,設(shè)計優(yōu)美,spi可以自定義環(huán)節(jié),支持http,rmi調(diào)用。
spring cloud功能全,config,zuul,gateway,springboot配置簡單,不用處理依賴。
Eureka
注冊中心+客戶端+服務(wù)端,3種項(xiàng)目身份。
注冊中心存儲服務(wù)端服務(wù)列表。
eureka:
server:
eviction-interval-timer-in-ms: 60000
服務(wù)端提供服務(wù),上線后會注冊自己到注冊中心,之后還有維護(hù)心跳監(jiān)測,一個心跳周期后沒有發(fā)現(xiàn)心跳,服務(wù)剔除。
eureka:
instance:
instance-id: ae-usm-product
#設(shè)置心跳的時間間隔
lease-renewal-interval-in-seconds: 30
lease-expiration-duration-in-seconds: 90
客戶端
調(diào)用流程-> feign-> ribbon返回機(jī)器地址端口(eureka注冊中心列表,負(fù)載均衡)。
eureka和zookeeper區(qū)別
zookeeper 遵守 cp
集群中有 master 節(jié)點(diǎn)掛掉了 其他節(jié)點(diǎn)會選舉新的主節(jié)點(diǎn) 期間可能幾分鐘 zookeeper是掛掉的狀態(tài)
eureka遵守 ap
強(qiáng)調(diào)可用性 集群節(jié)點(diǎn)都是平等的 節(jié)點(diǎn)失敗 會啟動用其他的節(jié)點(diǎn)
只有有一臺 能用就可以繼續(xù)使用
client 服務(wù)的提供者
https://mp.weixin.qq.com/s/MoVNY7i6NeHQ7aqp1cYytg
啟動流程
http://www.saily.top/2020/03/15/springcloud/eureka01/
Zuul
如果前端、移動端要調(diào)用后端系統(tǒng),統(tǒng)一從 Zuul 網(wǎng)關(guān)進(jìn)入,由 Zuul 網(wǎng)關(guān)轉(zhuǎn)發(fā)請求給對應(yīng)的服務(wù)??梢宰鼋y(tǒng)一的降級、限流、認(rèn)證授權(quán)、安全
ribbon
https://blog.csdn.net/hry2015/article/details/78357990
http://www.saily.top/2020/03/31/springcloud/ribbon01/
https://segmentfault.com/a/1190000021893974
https://blog.csdn.net/hry2015/category_9270400.html
feign
@RequestMapping(value = "/usm/approval/getApprovalTime", method = RequestMethod.POST)
String getApprovalTime(@RequestParam("orderId") String orderId);
1.如果寫成
String getApprovalTime(String orderId);
orderId接收不到一直為null
@RequestParam是必須的
負(fù)載均衡
按照功能實(shí)現(xiàn)分類:
客戶端負(fù)載均衡
robbin
dubbo
服務(wù)端負(fù)載均衡
一種是硬件負(fù)載均衡
F5
還有一種是軟件負(fù)載均衡
nginx
常用的負(fù)載均衡策略:
隨機(jī)+權(quán)重
輪詢+權(quán)重
最小活躍數(shù) 看誰比較閑 就給誰
一致性hash 客戶端訪問服務(wù)端 機(jī)器固定