Apache ShenYu(神禹) 网关
采用Java WebFlux编写的响应式API网关:具有异步、高性能、跨语言的特点。开发,是一个一部非阻塞式IO模型,通过少量的容器现场支撑大量的并发访问,底层采用。部署方式:本地部署、docker部署、k8s部署、集群部署等。与传统的SpringMVC不同,SpringMVC基于。选择Spring Reactive Web依赖。项目中的服务调用监控链:ShenYu网关。
·
Apache ShenYu(神禹)网关
项目中的服务调用监控链:ShenYu网关
回顾Zuul
- 功能:对请求的路由和过滤
- 路由转发:将请求转发到微服务实例上
- 过滤器:对请求的处理进行干预:请求校验,服务聚合等
yaml配置:
zuul:
routes:
xxx.sericeId:
xxx.path:
ignored-servies:
启动类上:
@EnableZuulProxy
ShenYu
采用Java WebFlux编写的响应式API网关:具有异步、高性能、跨语言的特点
- 支持HTTP、Dubbo、spring cloud、grpc、Motan等
- 内置鉴权、限流、熔断等插件
部署方式:本地部署、docker部署、k8s部署、集群部署等
本地部署:
- 下载仓库:https://github.com/apache/incubator-shenyu.git(直接从那个IDEA导入CVS即可)
- 下载后启动
ShenyuAdminBootstrap
项目:运维管理后台 - 访问:http://localhost:9095
- 用户名&密码:admin/123456
- 微服务网关:
ShenyuBootstrapApplication
项目
依赖部署:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--shenyu-->
<!--shenyu gateway start-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-gateway</artifactId>
<version>${shenyu.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-springcloud</artifactId>
<version>${shenyu.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-httpclient</artifactId>
<version>${shenyu.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-instance</artifactId>
<version>${shenyu.version}</version>
</dependency>
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
<!-- apache shenyu data sync start use nacos-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-sync-data-nacos</artifactId>
<version>${shenyu.version}</version>
</dependency>
yaml配置
shenyu:
register:
registerType: http #nacos #zookeeper
serverLists: http://10.10.12.184:30098
props:
username: admin
password: 123456
client:
springCloud:
props:
contextPath: /pay #项目在shenyu网关的路由前缀
port: ${server.port} #本项目的启动端口
isFull: false #设置true 代表代理你的整个服务,false表示代理你其中某几个controller;目前适用于springmvc/springcloud
主启动类
@EnableDiscoveryClient
基于Spring WebFlux开发,是一个一部非阻塞式IO模型,通过少量的容器现场支撑大量的并发访问,底层采用Netty容器;与传统的SpringMVC不同,SpringMVC基于Servlet开发的
-
反应式流:Reactive Stream
-
选择Spring Reactive Web依赖
更多推荐
已为社区贡献1条内容
所有评论(0)