spring cloud(六):Zuul的集成

1、概念

Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。另外需要理解的概念就是反向代理和负载均衡,反向代理:就是外网向内网请求资源,并把资源返回给客户端,正向代理相反;负载均衡就是多个客户端请求,会如果有多个相同的serviceid,网关则会进行轮询的方式进行访问。

2、搭建

2.1、添加依赖

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-zuul</artifactId>

<version>1.3.4.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

<version>1.3.2.RELEASE</version>

</dependency>

2.2、具体实现

@EnableZuulProxy

@SpringCloudApplication

public class ZuulApplication {

public static void main(String[] args) {

new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);

}

}

2.3、配置

spring.application.name=api-gateway

server.port=9412

# routes to serviceId 这里边是通过serviceid来绑定地址,当在路径后添加/xx-a/   则是访问service-A对应的服务。

zuul.routes.xx-a.path=/xx-a/**

zuul.routes.xx-a.serviceId=service-A

zuul.routes.yy-b.path=/yy-b/**

zuul.routes.yy-b.serviceId=service-B

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

2.4、新建微服务service-A和微服务service-B

可以在controller里面注入 @Autowired    private DiscoveryClient client;然后通过client获得主机及端口号

2.5、对A、B服务复制一份,修改端口,进行启动,然后分别请求,会发现两次请求A服务,获得端口号不同的微服务,从而实现了客户端负载均衡。

3、总结

zuul简化客户端调用复杂度;负载均衡功能减少了单台服务器的压力,把请求压力分发到相同的服务。

原文地址:http://blog.51cto.com/xxdeelon/2096381

时间: 2024-08-30 14:51:59

spring cloud(六):Zuul的集成的相关文章

Spring Cloud系列-Zuul网关集成JWT身份验证

前言 这两三年项目中一直在使用比较流行的spring cloud框架,也算有一定积累,打算有时间就整理一些干货与大家分享. 本次分享zuul网关集成jwt身份验证 业务背景 项目开发少不了身份认证,jwt作为当下比较流行的身份认证方式之一主要的特点是无状态,把信息放在客户端,服务器端不需要保存session,适合分布式系统使用. 把jwt集成在网关的好处是业务工程不需要关心身份验证,专注业务逻辑(网关可验证token后,把解析出来的身份信息如userId,放在请求头传递给业务工程). 顺便分享下

spring cloud 分布式链路跟踪(集成zipkin)

篇写了分布式链路追踪  spring cloud 分布式链路追踪 这样的链路追踪虽然可以解决问题 但日志太过于分散 如果微服务过多 就会变的相当复杂 zipkin就可以帮我们把链路调用的过程全部收集起来 它就像注册中心一样 分为客户端和服务端 想要使用 首先建一个模块 当作他的服务端 首先添加如下依赖 compile 'io.zipkin.java:zipkin-server' compile 'io.zipkin.java:zipkin-autoconfigure-ui' 在配置文件中配置它的

Spring Cloud 之 Zuul.

一.概述 ?API 网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的 Facade 模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤.它除了要实现请求路由.负载均衡.校验过滤等功能之外,还需要更多能力,比如与服务治理框架的结合.请求转发时的熔断机制.服务的聚合等一系列高级功能. ?在 Spring Cloud 中了提供了基于 Net?ix Zuul 实现的 API 网关组件 Spring Cloud Zuul. 二.准备阶段 S

(四)Spring Cloud教程——Zuul(F版本)

参考:方志鹏的专栏 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简单的微服务系统如下图: 注意:A服务和B服务是可以相互调用的,作图的时候忘记了.并且配置服务也是注册到服务注册中心的. 在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul.Ngnix),再到达服务网关(zuul集群),然后再到具体的服.,服务统一注

spring cloud (六) 将一个普通的springcloud项目 非feign或ribbon项目,改造成turbine可聚合监听的项目

改造之前一个项目 service-a 1 pom.xml添加如下 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframewor

Spring Cloud之Zuul负载均衡

Zuul网关默认是实现负载均衡的,不需要任何配置.默认开启ribbon效果的 可以启启动两个服务端口,访问下. 原文地址:https://www.cnblogs.com/toov5/p/9972466.html

API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd(转)

前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay ?elik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作为单体应用的网关,后来接触到微服务架构后开始逐渐采用了其他组件. 我对于所做的工作或者感兴趣的技术,喜欢刨根问底,所以当读一篇文章时发现没有看到我想要看到的设计思想,我就会四处搜集资料,此外这篇文章涉及了我正在捣鼓的 Spring Cloud,所以我就决定写一篇文章,争取能从设计思路上解释为什么会有这样的性

spring cloud 学习笔记--网关zuul学习

微服务是多个服务共同完成一件事情,那么"一致对外"就很有必要,就像我们去买面包,不可能先去找农民买小麦,再.... 盗图 spring cloud 引入zuul方式来实现这一功能 添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </depend

Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置

Spring Cloud 在 Zuul 的 routing 阶段实现了几个过滤器,这些过滤器决定如何进行路由工作. 简单路由(SimpleHostRoutingFilter) 该过滤器运行后,会将 HTTP 请求全部转发到"源服务器",简单路由的配置如下: #zuul路由配置 zuul: routes: #表示http://localhost:9100/person/speaks地址,路由到http://localhost:8080/speaks person: path:/perso