新聞中心
怎樣解析微服務(wù)架構(gòu)SpringCloud,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)專注于蘆淞網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供蘆淞營銷型網(wǎng)站建設(shè),蘆淞網(wǎng)站制作、蘆淞網(wǎng)頁設(shè)計、蘆淞網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造蘆淞網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供蘆淞網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
努力,不是為了要感動誰,也不是要做給某些人看,而是有能力跳出自己厭惡的圈子,并擁有自己選擇的權(quán)力,用自己喜歡的方式,過一生。
微服務(wù)架構(gòu) (一般采用AP架構(gòu))
A:服務(wù)可用性
P:分區(qū)容錯
C:數(shù)據(jù)的強一致性
領(lǐng)域驅(qū)動設(shè)計:通過代碼和數(shù)據(jù)分析找到合理的切分點,并通過數(shù)據(jù)分析來判斷服務(wù)的劃分邊界和劃分粒度。
微服務(wù)核心:Docker為容器中心,DevOps是一種部署手段或理念(DevOps就是開發(fā)(Development)和運維(Operations)這兩個領(lǐng)域的合并)
微服務(wù)架構(gòu)中的三大難題:服務(wù)故障的傳播性、服務(wù)的劃分、分布式事務(wù)
雪崩效應:服務(wù)不可用導致系統(tǒng)處于癱瘓狀態(tài)(通過熔斷器解決)
微服務(wù)具備功能:
服務(wù)的注冊與發(fā)現(xiàn)
服務(wù)的負載均衡
服務(wù)的容錯
服務(wù)網(wǎng)關(guān)
服務(wù)配置中心
服務(wù)鏈路追蹤
與其他服務(wù)框架比較
Dubbo:非常優(yōu)秀的服務(wù)治理和服務(wù)調(diào)用框架
Kubernets:通過容器編排實現(xiàn)所有的微服務(wù)功能,更像一個平臺
Maven配置
.settings.xml 本地倉庫目錄、遠程下載服務(wù)器(國外服務(wù)器、阿里云鏡像庫、自己搭建鏡像庫--Sonatype Nexus Repository Manager)
pom.xml文件:groupid、artifactid、version、parent、properties、dependencies、build
maven命令:mvn clean 、mvn package、mvn compile、mvn install
spring boot:
三大特點:自動配置、起步依賴、Actuator對運行狀況監(jiān)控
//@RestController = @Controller+@ResponseBody
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index(){
return "hello spring boot";
}
}
springboot 配置文件
application.yml 配置文件裝載到配置類,自定義配置文件裝載到類
多個環(huán)境的配置文件:application-{profile}.properties test、dev、prod
需要在application.yml 中添加spring.profiles.active = dev 配置
Actuator監(jiān)控
配置application.yml 屬性支持 management.port 和management.security.enabled
http://localhost:9091/health 查看程序運行狀態(tài)
/beans 查看運行程序的bean
springboot 整合jpa、redis
springboot 整合swagger2,搭建RestfulAPI在線文檔,@API @ApiOperation(value="用戶列表",notes="用戶列表")
服務(wù)注冊和發(fā)現(xiàn)Eureka
Register Service:服務(wù)注冊中心
Provider Service 服務(wù)提供者 application server
Consumer Service 服務(wù)消費者 client sever
一些概念:
Register:服務(wù)注冊 -ip、duank、狀況、主頁訪問地址
Renew:服務(wù)續(xù)約 client默認情況下30秒發(fā)送一次心跳進行服務(wù)續(xù)約
Fetch Registries:獲取服務(wù)注冊列表信息 client 默認30更新一次
Cancel:服務(wù)下線
Eviction:服務(wù)剔除 ,默認client 90秒沒有發(fā)送續(xù)約服務(wù),sever從服務(wù)列表剔除
構(gòu)建高可用Eureka Server集群:application.yml 采用多profile格式,分host和端口
//*****************防止自己注冊自己************
eureka:
client:
register-with-eureka: false
fetch-registry: false
//******************
負載均衡Ribbon
負載均衡有兩種實現(xiàn)方式:一種是獨立進程單元,通過負載均衡轉(zhuǎn)發(fā)到不同的執(zhí)行單元上,eg:nginx,另一種是將負載均衡邏輯以代碼的方式封裝到服務(wù)消費者的客戶端上,eg:Ribbon
RestTemplate與Ribbon進行結(jié)合,在resttemplate bean 上加上@LoadBalanced注解就開啟了負載均衡功能
2個eureka-client 服務(wù)消費者根據(jù)Eureka 服務(wù)名訪問就可以
聲明書調(diào)用Feign
Feign目標是將java Http 客戶端調(diào)用過程變得簡單
@FeignClient(value="eureka-client",configuration=FeignConfig.class)
熔斷器Hystrix
具有自我修復功能
@EnableHystrix
@HystrixCommand(fallbackMethod=“hiError”)
Hystrix Dashboard 監(jiān)控
路由網(wǎng)關(guān)Spring Cloud zuul
所有api接口統(tǒng)一聚合
可以做用戶身份和權(quán)限認證
實時監(jiān)控、日志書瑞
流量監(jiān)控
Zuul包括4種過濾器:
PRE過濾器:請求到具體服務(wù)之前執(zhí)行,可以用于身份認證、參數(shù)驗證
ROUTING過濾器:請求路由到具體微服務(wù)實例時執(zhí)行
POST過濾器:請求已被路由到微服務(wù)后執(zhí)行的,可以用于收集日志信息、指標、響應
ERROR過濾器:在其他過濾器發(fā)生錯誤時執(zhí)行
路由分發(fā),支持版本號
路由上可以配置熔斷器
Zuul很容易實現(xiàn)負載均衡、智能路由、熔斷器,橫向擴展能力非常好
常用實現(xiàn)方式:1、不同渠道使用不同路由(app、web、其它)
2、與nginx相結(jié)合,暴露在最外面是Nginx 主從雙熱備份進行keepalive,Nginx通過某種策略將請求轉(zhuǎn)發(fā)到Zuul集群上,Zuul最終將請求分發(fā)到具體服務(wù)上。
配置中心Spring Cloud Config
@EnableConfigServer
1、從本地讀取配置文件
2、從git服務(wù)器讀取配置文件
使用Spring Cloud Bus 刷新配置,可選的消息代理組件包括RabbitMQ、AMQP和Kafka。
更改配置文件,Bus一個功能讓這個過程變得簡單,只需要向一個微服務(wù)實例發(fā)送一個Post請求,通過消息組件通知其他微服務(wù)實例重新拉取配置文件。
config-client,通過RabbitMQ實現(xiàn),需要搭建MQ服務(wù),client主類添加@RefreshScope,通過Postman或者其它工具發(fā)送一個請求,http://ip:port/bus/refresh
服務(wù)鏈路追蹤SpringCloud Sleuth
使用Zipkin 提供UI展示,使用Http或者RabbitMQ傳遞鏈路數(shù)據(jù),使用MySQL、ElasticSearch(適用于大數(shù)據(jù)量訪問,可以使用Kibana展示鏈路數(shù)據(jù))、Cassandra數(shù)據(jù)庫存儲鏈路數(shù)據(jù)
微服務(wù)監(jiān)控Spring Boot Admin
監(jiān)控Spring Cloud 微服務(wù)、聚合監(jiān)控微服務(wù)系統(tǒng)中熔斷器狀況、集成Security安全登錄界面
Spring Boot Security 安全組件
系統(tǒng)安全也需要考慮傳輸層和系統(tǒng)層,eg:https、服務(wù)器防火窗
同行優(yōu)秀安全框架 Apache Shiro ,一般用于單體應用。
用戶信息可以存內(nèi)存里也可以存數(shù)據(jù)庫
Spring Cloud OAuth3 保護微服務(wù)系統(tǒng)
OAuth3是一個標準授權(quán)協(xié)議
OAuth3認證流程,獲取Token過程,拿token去請求認證,認證通過走用戶權(quán)限
框架的缺陷是每次都要遠程請求auth-service驗證token的有效性
JWT(JSON WEB TOKEN)一種開放標準,數(shù)據(jù)體積非常小
應用場景:認證、信息交換,可以利用JWT實現(xiàn)單點登錄
大量api訪問日志可以使用ELK組件進行處理
關(guān)于怎樣解析微服務(wù)架構(gòu)SpringCloud問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
分享標題:怎樣解析微服務(wù)架構(gòu)SpringCloud
當前路徑:http://www.ef60e0e.cn/article/ipegsh.html