Apache ShenYu(神禹) 网关

Apache ShenYu(神禹)网关

项目中的服务调用监控链:ShenYu网关

回顾Zuul

  1. 功能:对请求的路由和过滤
  2. 路由转发:将请求转发到微服务实例上
  3. 过滤器:对请求的处理进行干预:请求校验,服务聚合等

yaml配置:

zuul:
   routes:
     xxx.sericeId:
     xxx.path:
   ignored-servies: 

启动类上:

@EnableZuulProxy

ShenYu

采用Java WebFlux编写的响应式API网关:具有异步、高性能、跨语言的特点

  • 支持HTTP、Dubbo、spring cloud、grpc、Motan等
  • 内置鉴权、限流、熔断等插件

部署方式:本地部署、docker部署、k8s部署、集群部署等

本地部署:

  1. 下载仓库:https://github.com/apache/incubator-shenyu.git(直接从那个IDEA导入CVS即可)
  2. 下载后启动ShenyuAdminBootstrap项目:运维管理后台
  3. 访问:http://localhost:9095
  4. 用户名&密码:admin/123456
  5. 微服务网关: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依赖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shenyu网关是一款开源的API网关软件,它可以帮助开发者实现对接口的统一管理和流量控制。shenyu网关提供了多种功能,包括请求转发、请求过滤、流量限制、负载均衡等,帮助用户实现高可用和高稳定性的系统架构。 shenyu网关基于Java开发,使用简单方便,支持多种开源框架和中间件,如Spring Boot、Dubbo、Motan等。通过使用shenyu网关,开发者可以快速搭建起一个完善的微服务架构,可以轻松地管理和监控各个微服务之间的通信和流量。 另外,shenyu网关还提供了可视化的管理界面,方便用户进行参数配置、资源管理、性能监控等操作。用户可以通过该界面对各个服务进行细粒度的管理,实现功能的灵活配置和动态调整。 码云是中国最大的代码托管平台,类似于国外的GitHub。用户可以通过码云托管自己的代码仓库,并利用这个平台进行团队协作和项目管理。码云提供了Git版本控制、代码托管、代码审查等功能,支持多种开发语言和开发工具。 与GitHub不同的是,码云在国内具有更好的访问速度和稳定性,同时还提供了国内常用的Git代码托管服务,支持国内的开发者更方便地使用和访问。用户可以在码云上创建自己的项目仓库,与其他开发者进行交流学习,并共同进行开发和维护。 综上所述,shenyu网关和码云都是开发者常用的工具。shenyu网关可以帮助开发者实现API网关的功能,提供统一的接口管理和流量控制;码云则是代码托管平台,提供代码的版本控制和团队协作功能。两者的结合可以帮助开发者更好地进行微服务架构的开发和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值