日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

基于 Spring Cloud 完整的微服务架构实战

發布時間:2023/11/30 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于 Spring Cloud 完整的微服务架构实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本項目是一個基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架構建的微服務項目。

@作者:Sheldon地址:https://github.com/zhangxd1989

技術棧

  • Spring boot - 微服務的入門級微框架,用來簡化 Spring 應用的初始搭建以及開發過程。
  • Eureka - 云端服務發現,一個基于 REST 的服務,用于定位服務,以實現云端中間層服務發現和故障轉移。
  • Spring Cloud Config - 配置管理工具包,讓你可以把配置放到遠程服務器,集中化管理集群配置,目前支持本地存儲、Git 以及 Subversion。
  • Hystrix - 熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
  • Zuul - Zuul 是在云平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當于是設備和 Netflix 流應用的 Web 網站后端所有請求的前門。
  • Spring Cloud Bus - 事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與 Spring Cloud Config 聯合實現熱部署。
  • Spring Cloud Sleuth - 日志收集工具包,封裝了 Dapper 和 log-based 追蹤以及 Zipkin 和 HTrace 操作,為 SpringCloud 應用實現了一種分布式追蹤解決方案。
  • Ribbon - 提供云端負載均衡,有多種負載均衡策略可供選擇,可配合服務發現和斷路器使用。
  • Turbine - Turbine 是聚合服務器發送事件流數據的一個工具,用來監控集群下 hystrix 的 metrics 情況。
  • Spring Cloud Stream - Spring 數據流操作開發包,封裝了與 Redis、Rabbit、Kafka 等發送接收消息。
  • Feign - Feign 是一種聲明式、模板化的 HTTP 客戶端。
  • Spring Cloud OAuth2 - 基于 Spring Security 和 OAuth2 的安全工具包,為你的應用程序添加安全控制。

應用架構

該項目包含 8 個服務

  • registry - 服務注冊與發現
  • config - 外部配置
  • monitor - 監控
  • zipkin - 分布式跟蹤
  • gateway - 代理所有微服務的接口網關
  • auth-service - OAuth2 認證服務
  • svca-service - 業務服務A
  • svcb-service - 業務服務B

體系架構

?

?

應用組件

?

?

啟動項目

  • 使用 Docker 快速啟動
  • 配置 Docker 環境
  • mvn clean package?打包項目及 Docker 鏡像
  • 在項目根目錄下執行?docker-compose up -d?啟動所有項目
  • 本地手動啟動
  • 配置 rabbitmq
  • 修改 hosts 將主機名指向到本地
    127.0.0.1 registry config monitor rabbitmq auth-service
    或者修改各服務配置文件中的相應主機名為本地 ip
  • 啟動 registry、config、monitor、zipkin
  • 啟動 gateway、auth-service、svca-service、svcb-service

項目預覽

注冊中心

訪問 http://localhost:8761/ 默認賬號 user,密碼 password

?

?

監控

訪問 http://localhost:8040/ 默認賬號 admin,密碼 admin

控制面板

?

?

應用注冊歷史

?

?

Turbine Hystrix面板

?

?

應用信息、健康狀況、垃圾回收等詳情

?

?

計數器

?

?

查看和修改環境變量

?

?

管理 Logback 日志級別

?

?

查看并使用 JMX

?

?

查看線程

?

?

認證歷史

?

?

查看 Http 請求軌跡

?

?

Hystrix 面板

?

?

鏈路跟蹤

訪問 http://localhost:9411/ 默認賬號 admin,密碼 admin

控制面板

?

?

鏈路跟蹤明細

?

?

服務依賴關系

?

?

RabbitMQ 監控

Docker 啟動訪問 http://localhost:15673/ 默認賬號 guest,密碼 guest(本地 rabbit 管理系統默認端口15672)

?

?

接口測試

  • 獲取 Token
  • curl -X POST -vu client:secret http://localhost:8060/uaa/oauth/token -H "Accept: application/json" -d "password=password&username=anil&grant_type=password&scope=read%20write"

    返回如下格式數據:

  • {

  • "access_token": "eac56504-c4f0-4706-b72e-3dc3acdf45e9",

  • "token_type": "bearer",

  • "refresh_token": "da1007dc-683c-4309-965d-370b15aa4aeb",

  • "expires_in": 3599,

  • "scope": "read write"

  • }

  • 使用 access token 訪問 service a 接口
  • curl -i -H "Authorization: Bearer eac56504-c4f0-4706-b72e-3dc3acdf45e9" http://localhost:8060/svca

    返回如下數據:

  • svca-service (172.18.0.8:8080)===>name:zhangxd

  • svcb-service (172.18.0.2:8070)===>Say Hello

  • 使用 access token 訪問 service b 接口
  • curl -i -H "Authorization: Bearer eac56504-c4f0-4706-b72e-3dc3acdf45e9" http://localhost:8060/svcb

    返回如下數據:

    svcb-service (172.18.0.2:8070)===>Say Hello
  • 使用 refresh token 刷新 token
  • curl -X POST -vu client:secret http://localhost:8060/uaa/oauth/token -H "Accept: application/json" -d "grant_type=refresh_token&refresh_token=da1007dc-683c-4309-965d-370b15aa4aeb"

    返回更新后的 Token:

  • {

  • "access_token": "63ff57ce-f140-482e-ba7e-b6f29df35c88",

  • "token_type": "bearer",

  • "refresh_token": "da1007dc-683c-4309-965d-370b15aa4aeb",

  • "expires_in": 3599,

  • "scope": "read write"

  • }

  • 刷新配置
  • curl -X POST -vu user:password http://localhost:8888/bus/refresh

    源碼下載

    github.com/souyunku/sp…

    如果想學習Java工程化、高性能及分布式、微服務、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java進階群:318261748 群里有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給大家。如果想領取spring boot和spring colud學習資料可以關注公眾號“大數據技術匯”回復springboot領取下載鏈接。

    總結

    以上是生活随笔為你收集整理的基于 Spring Cloud 完整的微服务架构实战的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。