springcloud学习笔记(八)SpringCloud集成zuul路由(一)
程序员文章站
2022-06-12 22:51:05
...
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简答的微服务系统如下图:
注意:A服务和B服务是可以相互调用的,作图的时候忘记了。并且配置服务也是注册到服务注册中心的。
在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。,服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理(下一篇文章讲述),配置服务的配置文件放在git仓库,方便开发人员随时改配置。
一、Zuul简介
Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。
zuul有以下功能:
- Authentication
- Insights
- Stress Testing
- Canary Testing
- Dynamic Routing
- Service Migration
- Load Shedding
- Security
- Static Response handling
- Active/Active traffic management
不多说,上面是复制的,下面开始代码测试:
项目结构如下图
首先,启动类加入注解@EnablezuulProxy:
package com.xc;
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;
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class App_zuul {
public static void main(String[] args){
SpringApplication.run(App_zuul.class,args);
}
}
资源文件application.yml:
eureka:
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://xc:aaa@qq.com:8761/eureka
server:
port: 6543
spring:
application:
name: service-zuul
zuul:
routes:
api-a:
path: /api-a/**
serviceId: cloud-test
api-b:
path: /api-b/**
serviceId: cloud-test2
其中serviceId:cloud-test为微服务,并且有个服务为hello:
其中serviceId:cloud-test2为微服务,并且也有个服务为hello:
下面我们启动注册中心,以及路由微服务和两个测试微服务。
如下:
我们访问
http://localhost:6543/api-a/hello 成功访问到sercice1
http://localhost:6543/api-b/hello 成功访问到sercice2
ok,一个简单的路由就搭建起来了
推荐阅读
-
springCloud学习笔记一 注册中心搭建
-
SpringCloud 2.x学习笔记:4、Zuul
-
SpringCloud学习笔记(一)服务注册
-
SpringCloud学习笔记(一):构建SpringBoot项目
-
【微服务】Springcloud学习笔记(一) —— Eureka
-
SpringCloud学习笔记一 SpringCloud简介
-
springcloud学习笔记(九)zuul的过滤功能(二)
-
SpringCloud系列八:Zuul 路由访问(Zuul 的基本使用、Zuul 路由功能、zuul 过滤访问、Zuul 服务降级)
-
SpringCloud学习笔记(6):使用Zuul构建服务网关
-
从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)