SpringCloud微服务小白也能搭(Hoxton.SR8)(六)Zuul|服务网关

SpringCloud组件之网关Zuul(Hoxton版本) 1.Zuul简介 API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的访问都通过它来进行路由及过滤。它实现了请求路由、负载均衡、校验过滤、服务容错、服务聚合等功能。 2.创建Spring Cloud Zuul工程 2.1在pom中添加相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://ma 阅读详情

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦

摘要

Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能。API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的访问都通过它来进行路由及过滤。它实现了请求路由、负载均衡、校验过滤、服务容错、服务聚合等功能。

1.创建一个api-zuul模块

  

1.1 pom.xml新增 zuul依赖

 <dependencies>
        <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>
</dependencies>

 1.2 启动类新增 @EnableZuulProxy 和 @EnableDiscoveryClient

package com.zqh.www;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.core.env.Environment;

/**
 * 开启zuul代理
 */
@EnableZuulProxy
/**
 * 开启服务发现客户端
 *
 * @EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。
 */
@EnableDiscoveryClient
@SpringBootApplication
public class ApiZuulApplication {

    private final static Logger logger = LoggerFactory.getLogger(ApiZuulApplication.class);

    public static void main(String[] args) {
        Environment env = SpringApplication.run(ApiZuulApplication.class, args).getEnvironment();
        logger.info(
                "\n----------------------------------------------------------\n\t"
                        + "Application '{}' is running! Access URLs:\n\t"
                        + "Local: \t\thttp://localhost:{}{}"
                        + "\n----------------------------------------------------------",
                env.getProperty("spring.application.name"), env.getProperty("server.port"),
                env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
    }
}

1.3 yml配置

server:
  port: 8092
spring:
  application:
    name: api-zuul
eureka:
  client:
    service-url:
      #注册地址
      defaultZone: http://root:root@localhost:8081/eureka/
  #显示服务器IP加端口
  instance:
    hostname: localhost
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

zuul:
  #网关路由前缀
  prefix: /
  routes:
    # 配置服务路由
    user-service:
      path: /userService/**
    feign-service:
      path: /feignService/**
    ribbon-service:
      path: /ribbon-service/**
  #重定向添加host请求头
  add-host-header: true
  #配置过滤敏感的请求头信息,设置为空就不会过滤
  sensitive-headers: Cookie,Set-Cookie,Authorization
  #关闭默认路由配置,自动配置的路由以服务名称为匹配路径
  ignored-services: user-service
  # 关闭重试机制
  retryable: true
  LogFilter:
    pre:
      #控制是否禁用过滤器
      disable: false

1.4 拦截器

package com.zqh.www.filters;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

/**
 *
 */
@Component
public class LogFilter extends ZuulFilter {

    private static final Logger LOGGER = LoggerFactory.getLogger(LogFilter.class);

    /**
     * 过滤器类型,有pre、routing、post、error四种。
     * pre:在请求被路由到目标服务前执行,比如权限校验、打印日志等功能;
     * routing:在请求被路由到目标服务时执行,这是使用Apache HttpClient或Netflix Ribbon构建和发送原始HTTP请求的地方;
     * post:在请求被路由到目标服务后执行,比如给目标服务的响应添加头信息,收集统计数据等功能;
     * error:请求在其他阶段发生错误时执行。
     */
    @Override
    public String filterType() {
        return "pre";
    }

    /**
     * 过滤器执行顺序,数值越小优先级越高。
     */
    @Override
    public int filterOrder() {
        return 0;
    }

    /**
     * 是否进行过滤,返回true会执行过滤。
     */
    @Override
    public boolean shouldFilter() {
        return true;
    }

    /**
     * 自定义的过滤器逻辑,当shouldFilter()返回true时会执行。
     */
    @Override
    public Object run() throws ZuulException {
        RequestContext currentContext = RequestContext.getCurrentContext();
        HttpServletRequest request = currentContext.getRequest();
        String remoteHost = request.getRemoteHost();
        String method = request.getMethod();
        String requestURI = request.getRequestURI();
        LOGGER.info("remoteHost:{},method:{},requestURI:{}", remoteHost, method, requestURI);
        return null;
    }
}

2.网关测试

测试方式:调用网关映射的接口路径

请求:http://localhost:8092/userService/api/user/getUserList

请求:http://localhost:8092/user-service/api/user/getUserList ,原因:因为yml配置了:ignored-services: user-service,所以不能采用服务名称为匹配路径

请求:http://localhost:8092/feignService/api/feign/getUserList

请求:http://localhost:8092/feign-service/api/feign/getUserList

3.gitee地址

源码参考

STM32N6570-DK ISP调试 将下载线接入STLINK V3EC接口,将BOOT1拨码拨至右边,即将其置为H,上电或已经上电的按复位,打开STM32CubeProgrammer,设置start address:0x70000000。板子消耗电流较大,即使缩短数据线接了USB供电依然不能正常点亮显示屏,最终通过板上CN2端子加了外部5V供电,仍然需要560mA的外部电流。3.烧录bin文件:STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。 阅读详情

相关推荐

【数据分享】中国371个城市的坡度矢量数据和excel数据

在城市发展的进程中,地形地貌始终是影响规划决策的关键因素,而坡度作为表征地表倾斜程度的核心指标,更是贯穿于城市建设、生态保护等诸多环节。本文将全面解读中国 371 个城市坡度数据的相关情况,包括数据概况、生成流程、应用场景等内容,为读者呈现一份详尽的坡度数据指南。

qq_39719713的博客 1842

SpringCloud Hoxton SR8最新版,博文有点长耐心看完不说精通,至少从零搭建没问题了

SpringCloudNetflix 简介 Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-t

吴杰 7300

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4236

SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦https://spring.io/blog/2020/08/28/spring-cloud-hoxton-sr8-has-been-released 开发工具:ideaj社区版 jar管理:maven 聚合构建 1.创建父pom项目 注意: Spring Assistant是一个插件,需要自己安装,安装教程参考 第三幅图,以前是不用强制选择的组件的,应.

itjavaee的博客 4567

TOGAF9.2/10 认证基础知识点概览表

(考点解析:业务场景是一种重要的技术,可以在企业架构的各个阶段使用,主要是架构愿景和业务架构,但如果需要,也可以在其他架构域中使用,以直接从业务的高级需求中派生架构的特征。“哪里”可以看作是对相关企业的界定、“为什么”可以被视为组织环境中的关键驱动因素和要素、“谁”是指确定发起人利益相关者和受业务指令影响的其他主要利益相关者,以创建企业架构,并确定他们来自企业的需求和优先级、他们与企业的关系以及彼此之间所需的工作行为。它是业务驱动和业务主导的,它结 合了所有业务线的必要努力,以实现所需的能力。

2302_81497763的博客 2075

深入解析i2cdetect:从基础命令到高级读写操作

本文深入解析Linux下i2cdetect工具,从基础安装、总线扫描到高级读写操作。作为i2c-tools的核心组件,i2cdetect是硬件调试的得力侦探,能快速识别I2C总线上的设备地址。文章还涵盖了i2cdump、i2cset、i2cget等进阶工具,并介绍了如何在C程序中调用读写接口进行嵌入式开发,是掌握I2C通信调试的实用指南。

weixin_29189987的博客 371

【SpringCloud+】Spring Cloud Hoxton.SR8升级到Spring Cloud 2020

由于近期项目做安全扫描,原项目中引用的Spring Cloud Hoxton.SR8,存在一些漏洞问题。也是因为Spring Cloud新组件的发布。所以打算升级到Spring Cloud 2020版本,在此记录一下一路的坎坷。Spring Cloud组件的使用,是有依赖关系。若不进行相关组件升级,会报一系列的问题。非常让人EMO。 示例在使用Spring Cloud 2020之后,官方文档介绍新版spring cloud关闭了bootstrap.xml读取。所以需要增加引用。 2.@EnableOAuth

诸葛小二的博客 1661

node-red 可视化探索

配置socket选择配置流程产生url。

weixin_44133581的博客 3411

Spring Cloud Zuul:API网关服务

Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能,本文将...

macrozheng的专栏 878

【PointNet++】使用Open3D对分割后的结果可视化

PointNet++中的局部分割网络预测后是没有可视化文件的,所以需要自己通过编写Open3D或者PCL点云算法去可视化,在本人经过查找翻阅修改后,实现了网络输出点云分割后结果的可视化。已实现推测单个点云,并可视化。

纵马踏花向自由 2453

科研级YOLO26下采样革新:ContextGuided模块赋能,让特征降维兼具上下文感知的实战指南

在文件夹下新建,将上述类的代码写入其中。这一步是为了让YOLO26的代码架构能识别我们的自定义下采样模块。

LXY_LOVE36的博客 98

SpringCloud微服务小白也能搭(Hoxton.SR8)(五)Dashboard/Turbine|断路器监控

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 SpringCloud微服务小白也能搭(Ho.

itjavaee的博客 782

PS射击游戏射线检测优化:原理、工程与全链路高性能实现

射线池:减少GC,提升批量检测效率。分层检测:先粗后细,远距离射击高效判定。批量检测:并行处理,适合大量射线场景。空间结构:进一步加速大场景检测。下面继续深入射线检测优化,补充更多实用细节和进阶技巧,包括空间分区加速、射线检测多线程/异步化、射线合并与分帧、射线池通用模板、常见性能陷阱与调优建议等。对于极端性能需求,可自定义轻量级物理系统,仅检测关键对象(如玩家、子弹),跳过复杂物理引擎。结合AABB、OBB、球体等简单碰撞体,射线-包围体检测极快。空间分区+分层检测是大场景射线优化核心。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 434

SpringCloud微服务小白也能搭(Hoxton.SR8)(七)Gateway|服务网关

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 SpringCloud微服务小白也能搭(Ho.

itjavaee的博客 1770

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringCloud微服务小白也能搭(Hoxton.SR8)(四)Hystrix|断路器

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 摘要 Spring Cloud Netflix.

itjavaee的博客 947

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 摘要 Spring Cloud OpenFeign 是声明式的服务调用工具,它整合了Ribbon和Hystrix,拥有负载均衡和服务容错功能。Fei.

itjavaee的博客 1135

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SpringCloud Hoxton.SR3版本 配置中心config搭建教程

引言 最近在搭建配置中心的时候遇到了很多问题,因为刚开始接触springcloud 对里面的很多只是并不是很了解,但是看了文档以后觉得 应该是很简单的,结果在搭建过程中都是大坑啊。下面先介绍正确的配置过程,然后在分享其中遇到的坑。 项目版本 spring-boot-version:2.2.5.RELEASE spring-cloud.version:Hoxton.SR3 注意:sprin...

Jack 架构师之路 3万+

SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者

Spring Cloud Netflix Ribbon 是Spring Cloud Netflix 子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能,在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候,如何保证负载均衡是个不得不去考虑的问题。负载均衡可以增加系统的可用性和扩展性,当我们使用RestTemplate来调用其他服务时,Ribbon可以很方便的实现负载均衡功能。本文将对其用法进行详细介绍。 SpringCloud微服务小白也能搭(Hoxton.SR8)(.

itjavaee的博客 1008

SpringCloud(Hoxton SR6)微服务工具集学习笔记

版本: Hoxton SR6

weixin_43711204的博客 2467

SpringCloud-Hoxton.SR1学习

SpringCloud-Hoxton.SR1学习(1)1. 微服务架构2. Spring Cloud和boot版本选型2.1. 版本选择2.2. Cloud组件停更3. 搭建父工程4. 支付模块搭建(微服务订单模块,微服务消费者订单模块)4.1. IDEA新建Project工作空间4.2. 开启热部署Devtools4.3. RestTemplate4.4. 工程重构5. 服务注册发现Eureka5.1. 什么是服务治理5.2. 什么是服务注册与发现![请添加图片描述](https://img-blog.c

Hide on bush 1948

SpringCloud Hoxton版微服务-入门篇

删除 聚合结果: <packaging>pom</packaging> <!--统一管理jar包版本--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> ...

日常分享工作中的一些技术干货。 1506

springcloud_入门示例_Hoxton.SR8

参考文档 、 参考文档1 、 参考文档2 Spring cloud 入门示例 使用spring cloud搭建微服务过程,集成eureka(注册中心)、Zuul(网关)、Feign(本地化的远程调研、负载均衡)、hystrix(熔断器)。 使用的spring cloud 是Hoxton.SR8版本。 父工程 <!-- 父项目pom.xml --> <parent> <groupId>org.springframework.boot</groupId>

蜗牛跑的快 1476

SpringCloud微服务小白也能搭(Hoxton.SR8)(八)Sleuth|服务链路跟踪

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 SpringCloud微服务小白也能搭(Ho.

itjavaee的博客 785

【SpringCloud】微服务笔记

集中什么是微服务架构: 1597213385700 SpringCloud 是微服务一站式服务解决方案,微服务全家桶。它是微服务开发的主流技术栈。它采用了名称,而非数字版本号。 s方法gCloud 和 springCloud Alibaba 目前是最主流的微服务框架组合。 版本选择: 选用 springboot 和 springCloud 版本有约束,不按照它的约束会有冲突。 版本问题 本次学习的各种软件的版本: boot使用的是数字作为版本。官网强烈建议升级到2.0以上 cloud使用的是字母作为版本,伦

努力充实,远方可期 3万+

从零搭建微服务SpringCloud Hoxton.SR8 + Spring Boot 2.3.2.RELEASE

JDK:1.8 maven: 3.8.1 Spring Boot: 2.3.2.RELEASE Spring Cloud: Hoxton.SR8 Spring Cloud Alibaba: 2.2.5.RELEASE 开发工具: IntelliJ IDEA 2021.1x64 系统: Windows 10 Spring Boot、 Cloud、Cloud Alibaba三者对应的关系: Spring Cloud 基于 Spring Boot Spring Cloud Alibaba...

supersolon的专栏 3164

SpringCloud 服务网关Zuul Hoxton版本

Spring Cloud Zuul简介:Spring Cloud Zuul是Spring Cloud Netflix子项目的核心组件之一,作为微服务API网关,具有动态路由、过滤、压力测试、监控、弹性伸缩和安全等功能,并且能够与Eureka、Ribbon、Hystrix等组件配合使用。

RtxTitanV的博客 3491
上一篇: SpringCloud微服务小白也能搭(Hoxton.SR8)(五)Dashboard/Turbine|断路器监控
下一篇: SpringCloud微服务小白也能搭(Hoxton.SR8)(七)Gateway|服务网关
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值