spring cloud微服务快速教程之(五) ZUUL API网关中心
程序员文章站
2022-06-09 17:03:59
0-前言 我们一个个微服务构建好了,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一个代理层,这个代理层直接与调用方通信进行权限控制,后将 ......
0-前言
我们一个个微服务构建好了,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个api网关根据请求的url,路由到相应的服务。当添加api网关后,在第三方调用端和服务提供方之间就创建了一个代理层,这个代理层直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。
zuul:就是一个api中间代理层,可以用来执行认证、动态路由、服务前移、负载均衡、安全、动态响应处理等;比如/api/user转发到到user服务,/api/order转发到到shop服务。zuul默认使用ribbon实现负载均衡;
一、zuul的简单使用
1.1、创建zuul模块,添加依赖:
<dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-netflix-zuul</artifactid> </dependency>
1.2、创建配置文件,增加配置
server: port: 8081 spring: application: name: zuul # 配置eureka地址 eureka: client: service-url: defaultzone: http://localhost:8761/eureka/ instance: prefer-ip-address: true # 构建路由地址 zuul: prefix: /api routes: # 这里可以自定义 user: # 匹配的路由规则 path: /user/** # 路由的目标服务名 serviceid: user order: # 匹配的路由规则 path: /order/** # 路由的目标服务名 serviceid: order
1.3、启动类增加 @enablezuulproxy 注解
@springbootapplication @enablezuulproxy @enableeurekaclient public class application { public static void main(string[] args) { springapplication.run(application.class); } }
完成
1.4、运行测试
可以看到,zuul已经按照配置文件的路由规则进行了路由转发,并对服务实现了负载均衡;
zuul简单使用完毕;
gitdemo地址: