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.mzph.cn/news/719767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【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 …

毕业生信息招聘平台|基于springboot+ Mysql+Java的毕业生信息招聘平台设计与实现(源码+数据库+文档+PPT)

目录 论文参考 摘 要 数据库设计 系统详细设计 文末获取源码联系 论文参考 摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 毕业生信息招聘平台&#xff0c;主要的模块包括查看管理员&a…

基于Springboot的无人智慧超市管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的无人智慧超市管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

【每日刷题】数组-LC56、LC238、随想录1、LC560

1. LC56 合并区间 题目链接 Arrays.sort先让intervals里的子数组按照子数组的第一个数字值从小到大排列。开一个新数组&#xff0c;newInterval&#xff0c;存放合并好的子数组让intervals的当前子数组i的第一个数字与newInterval的当前子数组index的最后一个数字比较大小&am…

Intel/国产化无人叉车机器视觉专用控制器

无人叉车和机器视觉是两个独立的技术领域&#xff0c;但它们可以结合使用以实现更高效的物流自动化。无人叉车是一种自动化运输工具&#xff0c;可以在没有人为干预的情况下完成货物的搬运和运输。机器视觉是一种人工智能技术&#xff0c;可以让计算机识别和理解图像或视频中的…

FPGA时序约束与分析--建立时间与保持时间

文章目录 前言一、定义二、举例说明2.1 建立时间违规2.2 保持时间违规前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的…

搜索回溯算法(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中所有的单词及单词的出现次数&#…

p18 线性代数,行阶梯型矩阵

行阶梯型矩阵 行最简型矩阵

steam游戏搬砖,跨国信息差项目,每天1小时收益也很不错

大家好&#xff0c;我是阿阳&#xff01;每天都是一个新的开始&#xff01; 今天看到个Steam游戏搬砖项目&#xff0c;还是跨国国际贸易&#xff0c;感觉很好玩&#xff0c;特来给大家分享。 原理简介 就是把Steam上的游戏装备&#xff0c;搬运到国内网易Buff平台上来卖。目前…

算法沉淀——动态规划之01背包问题(leetcode真题剖析)

算法沉淀——动态规划之01背包问题 01.【模板】01背包02.分割等和子集03.目标和04.最后一块石头的重量 II 01背包问题是一类经典的动态规划问题&#xff0c;通常描述为&#xff1a;有一个固定容量的背包&#xff0c;以及一组物品&#xff0c;每件物品都有重量和价值&#xff0c…

云计算 2月28号 (linux的磁盘分区)

一 存储管理 主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID 初识硬盘 机械 HDD 固态 SSD SSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术&#xff0c;拥有极高的存储性能&#xff0c;被认为是存储技术发展的未来新星。 与传统硬盘相比&#xff0c…

深度伪造,让网络钓鱼更加难以辨别

网络钓鱼一直是安全领域的一个突出话题&#xff0c;尽管这类诈骗形式已经存在了几十年&#xff0c;依旧是欺诈攻击或渗透组织的最有效方法之一。诈骗分子基于社会工程原理&#xff0c;通过邮件、网站以及电话、短信和社交媒体&#xff0c;利用人性&#xff08;如冲动、不满、好…

嵌入式驱动学习第二周——Linux内核打印

前言 这篇博客来聊一聊Linux内核打印。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前言1. dmesg指令…

【LeetCode:225. 用队列实现栈 + 栈 | 队列】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

水牛社软件是真的吗?

软件是真的&#xff0c;不过毕竟是为了赚钱或者获取资源而买的&#xff0c;所以大部分只关心能赚多少钱吧 说实话&#xff0c;我用了2年了&#xff0c;一些独立的项目还有群&#xff0c;有一月挣几千上万的&#xff0c;有一月赚几百的 软件是一个集合体&#xff0c;不是像很多…

代码随想录第二十七天 455.分发饼干 376.摆动序列 53.最大子序和 122.买卖股票的最佳时机II

LeetCode 455 分发饼干 题目描述 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼…

2024全国护网行动HW行动招聘/收人!!!

2024全国护网行动HW行动招聘 溯蓉信创开始收人啦&#xff01;&#xff01;&#xff01;现在开始收录2024HW简历&#xff0c;感兴趣的小伙伴扫码二维码添加微信 我们签约后&#xff0c;入场即预付款3k&#xff0c;签约后我们会在HW之前对我们的人员进行HW培训&#xff0c;保证上…