B084-SpringCloud-Zuul Config

目錄

      • zuul
        • 系統架構和zuul的作用
        • zuul網關實現
        • 配置映射路徑
        • 過濾器
      • Config
        • 概述
        • 云端管理
        • 本地配置

zuul

zuul是分布式和集群后前端統一訪問入口

系統架構和zuul的作用

在這里插入圖片描述
zuul把自己注冊進eureka,然后可通過前端傳來的服務名發現和訪問對應的服務集群

為了預防zuul單點故障,zuul也要做集群,所以要在前面再加個nginx反向代理,nginx本身也有負載均衡的作用

為了預防nginx單點故障,由keepalived管理,配置主備切換,配置相同的虛擬ip給前端訪問

正常開發只需要負責到zuul層,keepalived和nginx由運維搭

zuul網關實現

創建新模塊zuul-gateway-2010

導包

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency>

application.yml

server:port: 2010
spring:application:name: zuul-gateway
eureka:client:service-url:defaultZone: http://eureka1:1010/eureka,http://eureka2:1020/eureka,http://eureka3:1030/eurekainstance:instance-id: zuul:2010prefer-ip-address: false

啟動類

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy    //zuul網關的注解
public class ZuulApp {public static void main(String[] args) {SpringApplication.run(ZuulApp.class,args);}
}

啟動eureka集群,生產者和網關,瀏覽器訪問測試:http://localhost:2010/user-provider/user/provider/3

配置映射路徑

可隱藏服務名,加前綴
在這里插入圖片描述
瀏覽器訪問測試:http://localhost:2010/services/myUser/user/provider/100

過濾器

核心方法,執行流程和使用場景見文檔3.4.1,3.4.2,3.4.3
在這里插入圖片描述
代碼實現

@Component
public class LoginFilter extends ZuulFilter {//過濾器類型  pre 前置  routing 路由  post 后置  error 錯誤@Overridepublic String filterType() {return "pre";}//執行的順序  數字越小 越先執行@Overridepublic int filterOrder() {return 0;}//判斷該過濾器是否需要執行@Overridepublic boolean shouldFilter() {return true;}//業務邏輯  例如登錄的token驗證@Overridepublic Object run() throws ZuulException {//獲取當前請求上下文RequestContext context = RequestContext.getCurrentContext();//從上下文里面獲取請求對象HttpServletRequest request = context.getRequest();String token = request.getHeader("token");if (token==null||"".equals(token.trim())){//返回錯誤的結果context.setSendZuulResponse(false);//設置響應碼context.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());}//不為空,去redis里面查詢return null;}
}

瀏覽器不帶token訪問和postman帶token訪問測試:http://localhost:2010/services/myUser/user/provider/101

zuul自帶負載均衡和斷路器,配置即可
tips:這里的負載均衡和斷路器作用于前端通過zuul訪問服務集群,不同于之前的消費者訪問生產者集群

zuul:retryable: true
ribbon:ConnectTimeout: 250 # 連接超時時間(ms)ReadTimeout: 2000 # 通信超時時間(ms)OkToRetryOnAllOperations: true # 是否對所有操作重試MaxAutoRetriesNextServer: 2 # 同一服務不同實例的重試次數MaxAutoRetries: 1 # 同一實例的重試次數
hystrix:command:default:execution:isolation:thread:timeoutInMillisecond: 3000 # 熔斷超時時長:3000ms

Config

概述

見文檔4.2.1,4.2.2

云端管理

1.Gitee創建倉庫
添加文件application-zuul-test.yml,復制配置文件內容到其中,端口2010
添加文件application-zuul-dev.yml,復制配置文件內容到其中,可改動端口為2020做區分

2.新建項目config-server-3010,
導包

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--配置中心支持--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency>

配置

server:port: 3010
spring:application:name: config-servercloud:config:server:git:uri: https://gitee.com/ming-feng/config-center.gitusername: 513585429@qq.compassword: ***********

啟動類

@SpringBootApplication
@EnableConfigServer //啟用配置服務端
public class ConfigServerApp {public static void main(String[] args) {SpringApplication.run(ConfigServerApp.class);}
}

啟動項目,瀏覽器訪問測試:http://localhost:3010/application-zuul-dev.yml或
http://localhost:3010/application-zuul/test

3.以zuul項目為例,修改配置文件名讓原來的配置文件失效
導包

    <!--configclient端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>

添加配置文件bootstrap.yml
在這里插入圖片描述

spring:cloud:config:name: application-zuul #gitee上面名稱profile: dev #環境label: master #分支uri: http://127.0.0.1:3010 #配置服務器

啟動項目,瀏覽器可訪問測試:http://localhost:2020/services/myUser/user/provider/104

本地配置

克隆gitee項目到本地電腦
configserver項目添加本地文件路徑配置

server:port: 3010
spring:application:name: config-server
#  cloud:
#    config:
#      server:
#        git:
#          uri: https://gitee.com/ming-feng/config-center.git
#          username: 513585429@qq.com
#          password: gt513585429cloud:config:server:native: #在本地目錄搜索search-locations: file:D:\\code\\config-centerprofiles:active: native

重啟configserver
瀏覽器訪問測試:http://localhost:3010/application-zuul-dev.yml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719767.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 枚舉類的深入理解與應用

Java 的枚舉類是一種特殊的類&#xff0c;通常表示一組常量。在編譯或設計時&#xff0c;當我們知道所有變量的可能性時&#xff0c;盡量使用枚舉類型。本文將通過一個具體的例子&#xff0c;深入探討 Java 枚舉類的定義、使用和高級特性。 目錄 枚舉類的定義與使用枚舉類的構造…

【OJ】求和與計算日期

文章目錄 1. 前言2. JZ64 求123...n2.1 題目分析2.2 代碼 3. HJ73 計算日期到天數轉換3.1 題目分析3.2 代碼 4. KY222 打印日期4.1 題目分析4.2 代碼 1. 前言 下面兩個題目均來自牛客&#xff0c;使用的編程語言是c&#xff0c;分享個人的一些思路和代碼。 2. JZ64 求123…n …

Vue 賦值后原數據隨賦值后的數據的變化而變化

很常見的&#xff0c;當我們直接用“”號等方式直接賦值后 原數據會隨賦值后的數據的變化而變化 但是有時候我們的需求是不需要原數據跟隨變化 所以怎么解決呢&#xff1f; 解決辦法有&#xff1a; 1.使用Object.assign() 方法 2.使用深拷貝函數 JSON.parse() 3.使用第三方庫lo…

畢業生信息招聘平臺|基于springboot+ Mysql+Java的畢業生信息招聘平臺設計與實現(源碼+數據庫+文檔+PPT)

目錄 論文參考 摘 要 數據庫設計 系統詳細設計 文末獲取源碼聯系 論文參考 摘 要 隨著社會的發展&#xff0c;社會的各行各業都在利用信息化時代的優勢。計算機的優勢和普及使得各種信息系統的開發成為必需。 畢業生信息招聘平臺&#xff0c;主要的模塊包括查看管理員&a…

#ifndef 和 #pragma once的區別

#ifndef 和 #pragma once 都是用來防止頭文件被重復包含的&#xff0c;但它們的工作方式和兼容性有所不同&#xff1a; #ifndef 是 C 的標準語法&#xff0c;它依賴于不重復的宏名稱&#xff0c;保證了包含在 #endif 的內容不會被重復包含。這個內容可以是一個文件的所有內容&…

Webpack配置與運行基礎教程

在前端開發中&#xff0c;Webpack是一款非常流行的模塊打包工具&#xff0c;它可以幫助我們將多個文件打包成一個或多個靜態資源文件&#xff0c;從而提高前端項目的性能和可維護性。本文將為你介紹Webpack的基礎配置和運行方法&#xff0c;幫助你快速上手Webpack。 什么是Web…

基于Springboot的無人智慧超市管理系統(有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的無人智慧超市管理系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系…

1.3 有哪些文本表示模型?它們各有什么優缺點?

1.3 有哪些文本表示模型?它們各有什么優缺點? 場景描述 文本是一類非常重要的非結構化數據&#xff0c;如何表示文本數據一直是機器學習領域的一個重要研究方向。 知識點 詞袋模型(Bag of Words)TF-IDF(Term Frequency-Inverse DocumentFrequency)主題模型(Topic Model)詞…

【每日刷題】數組-LC56、LC238、隨想錄1、LC560

1. LC56 合并區間 題目鏈接 Arrays.sort先讓intervals里的子數組按照子數組的第一個數字值從小到大排列。開一個新數組&#xff0c;newInterval&#xff0c;存放合并好的子數組讓intervals的當前子數組i的第一個數字與newInterval的當前子數組index的最后一個數字比較大小&am…

ARM 架構下國密算法庫

目錄 前言GmSSL編譯環境準備下載 GmSSL 源碼編譯 GmSSL 源碼SM4 對稱加密算法SM2 非對稱加密算法小結前言 在當前的國際形式下,國替勢不可擋。操作系統上,銀河麒麟、統信 UOS、鴻蒙 OS 等國產系統開始發力,而 CPU 市場,也是百花齊放,有 龍芯(LoongArch架構)、兆芯(X86…

Intel/國產化無人叉車機器視覺專用控制器

無人叉車和機器視覺是兩個獨立的技術領域&#xff0c;但它們可以結合使用以實現更高效的物流自動化。無人叉車是一種自動化運輸工具&#xff0c;可以在沒有人為干預的情況下完成貨物的搬運和運輸。機器視覺是一種人工智能技術&#xff0c;可以讓計算機識別和理解圖像或視頻中的…

YOLO:實時目標檢測的革命

目標檢測作為計算機視覺領域的一個核心任務&#xff0c;一直以來都是研究的熱點。而YOLO&#xff08;You Only Look Once&#xff09;技術作為其中的杰出代表&#xff0c;以其獨特的處理方式和卓越的性能&#xff0c;成為了實時目標檢測的標桿。本文將探討YOLO技術的核心原理、…

FPGA時序約束與分析--建立時間與保持時間

文章目錄 前言一、定義二、舉例說明2.1 建立時間違規2.2 保持時間違規前言 時序約束的定義–設計者根據實際的系統功能,通過時序約束的方式提出時序要求; FPGA 編譯工具根據設計者的時序要求,進行布局布線;編譯完成后, FPGA 編譯工具還需要針對布局布線的結果,套用特定的…

【C++】每日一題,189 輪轉數組

給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: [5,6,7,1,2,3,…

搜索回溯算法(DFS)1------遞歸

目錄 簡介&#xff1a; 遞歸問題解題的思路模板 例題1&#xff1a;漢諾塔 例題2&#xff1a;合并兩個有序鏈表 例題3&#xff1a;反轉鏈表 例題4&#xff1a;兩兩交換鏈表中的節點 例題5&#xff1a;Pow&#xff08;x,n&#xff09;-快速冪 結語&#xff1a; 簡介&…

嵌入式驅動學習第二周——斷言機制

前言 這篇博客來聊一聊C/C的斷言機制。 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博主并訂閱本專欄&#xff0c;一起討論一起學習。現在關注就是老粉啦&#xff01; 目錄 前言1. 斷言介紹…

貪心 Leetcode 134 加油站

加油站 Leetcode 134 學習記錄自代碼隨想錄 在一條環路上有 n 個加油站&#xff0c;其中第 i 個加油站有汽油 gas[i] 升 你有一輛油箱容量無限的的汽車&#xff0c;從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發&#xff0c;開始時油…

串聯所有單詞的子串

題目鏈接 串聯所有單詞的子串 題目描述 注意點 words[i] 和 s 由小寫英文字母組成1 < words.length < 5000可以以 任意順序 返回答案words中所有字符串長度相同 解答思路 根據滑動窗口哈希表解決本題&#xff0c;哈希表存儲words中所有的單詞及單詞的出現次數&#…

Reactor詳解

目錄 1、快速上手 介紹 2、響應式編程 2.1. 阻塞是對資源的浪費 2.2. 異步可以解決問題嗎&#xff1f; 2.3.1. 可編排性與可讀性 2.3.2. 就像裝配流水線 2.3.3. 操作符&#xff08;Operators&#xff09; 2.3.4. subscribe() 之前什么都不會發生 2.3.5. 背壓 2.3.6. …

p18 線性代數,行階梯型矩陣

行階梯型矩陣 行最簡型矩陣