首页 > 其他分享 >SpringCloud之zuul

SpringCloud之zuul

时间:2023-04-02 18:56:03浏览次数:60  
标签:负载 服务 SpringCloud http 7000 zuul localhost

后台的微服务和客户端之间都有一个类似于酒店的前台,叫做网关。网关一般有以下作用:
1、统一登录认证,由网关来进行身份认证,调用每个微服务时就不用各自认证了。
2、解决跨越问题,微服务一般是部署在内网中。客户端调用时存在跨域。
3、动态路由和负载均衡,根据请求路径动态分发到不同服务。也可根据服务名进行负载均衡。
4、限流。每个服务自定义限流。
5、监控。网关是微服务的入口,可以监控请求的流量等。

 
 

Zuul是Netflix开源的微服务网关,核心是一系列过滤器。这些过滤器可以完成以下功能。

  1. 是所有微服务入口,进行分发。
  2. 身份认证与安全。识别合法的请求,拦截不合法的请求。
  3. 监控。在入口处监控,更全面。
  4. 动态路由。动态将请求分发到不同的后端集群。
  5. 压力测试。可以逐渐增加对后端服务的流量,进行测试。
  6. 负载均衡。也是用ribbon。
  7. 限流。比如我每秒只要1000次,10001次就不让访问了。
  8. 服务熔断

 
 

新建名为ZuulServer的模块,SpringCloud版本选择Hoxton.SR9,java版本选择java8,SpringBoot版本选择2.3.2.RELEASE。

添加依赖:

<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.properties配置:

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
spring.application.name=zuulserver
server.port=7000

启动类加@EnableZuulProxy注解。

 

访问http://localhost:7000/consumer/helloByFeign,看到hello,张三,8002。启动Producer模块端口为8000的服务,在访问可以看到负载均衡已生效。默认是使用ribbon做负载均衡。

负载均衡

修改负载均衡策略,在application.properties配置:

producer.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

多访问http://localhost:7000/producer/hello?name=张三几次,可看到负载均衡策略已生效。

 
 

通过服务名配置虚拟主机名

zuul.routes.consumer=/test/**

访问http://localhost:7000/test/helloByFeign看到已生效。

 

配置自定义映射:

zuul.routes.search.path=/search/**
zuul.routes.search.url=http://www.baidu.com

访问http://localhost:7000/search/,可以看到跳转到了百度首页。

 

忽略微服务

zuul.ignored-services=producer

访问http://localhost:7000/producer/hello?name=张三,看到报错。

加前缀

zuul.prefix=/api/v1

访问http://localhost:7000/consumer/helloByFeign报错,访问http://localhost:7000/api/v1/consumer/helloByFeign成功。

标签:负载,服务,SpringCloud,http,7000,zuul,localhost
From: https://www.cnblogs.com/shigongp/p/17280898.html

相关文章

  • vue+webSocket+springCloud消息推送交互
    一、后台代码:1、pom里面加上依赖;<!--webSocket坐标依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.2.4.RE......
  • SpringCloud之openFeign
    FeignOpenFeign是Netflix开发的声明式、模板化的HTTP请求客户端。可以更加便捷、优雅地调用httpapi。OpenFeign会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign会将函数的参数值设置到这些请求模板中。feign主要是构建微服务消费端。只要使用OpenF......
  • SpringCloud常见问题描述
    1什么是SpringCloudSpringcloud流应用程序启动器是基于SpringBoot的Spring集成应用程序,提供与外部系统的集成。SpringcloudTask,一个生命周期短暂的微服务框......
  • SpringCloud和SpringBoot关系
    SpringCloud和SpringBoot关系SpringBoot专注于快速开发单个个体微服务-jarSpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整......
  • SpringCloud-Getway网关
    在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如浏览器、手机、软件工具等)想要直接请求这些服务,......
  • SpringCloud 介绍
    SpringCloud是一款基于SpringBoot实现的微服务框架。SpringCloud源自Spring社区,主要由 Pivotal和Netflix两大公司提供技术迭代和维护。随着微服务的火爆流行......
  • SpringCloud-Eureka注册中心
    Eureka一词来源于古希腊词汇,是“发现了”的意思。在软件领域,Eureka是Netflix公司开发的一款开源的服务注册与发现组件。SpringCloud将Eureka与Netflix中的其他开......
  • SpringCloud快速入门及详解
    一、SpringCloud简介 SpringCloud是一种用于构建企业级应用程序的框架,它是基于SpringFramework构建的。SpringCloud通过提供集成的组件来简化微服务应用程序的开发,这......
  • 使用Docker 一键部署SpringBoot和SpringCloud项目
    Docker是一个非常流行的容器化技术,可以方便地将应用程序和服务打包成容器并运行在不同的环境中。在本篇博客中,我将向您展示如何使用Docker一键部署SpringBoot和SpringCloud......
  • SpringCloudAlibaba中使用Nacos实现配置中心和配置动态刷新
    场景SpringCloudConfig分布式配置中心介绍与搭建使用以及ConfigClient实现动态刷新配置:在上面实现ConfigClient动态刷新的机制下,是通过post接口调用ConfigClient的方式去进......