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.bootgroupId>
    <artifactId>spring-boot-starter-webfluxartifactId>
dependency>

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-actuatorartifactId>
dependency>



<dependency>
    <groupId>org.apache.shenyugroupId>
    <artifactId>shenyu-spring-boot-starter-gatewayartifactId>
    <version>${shenyu.version}version>
dependency>

<dependency>
    <groupId>org.apache.shenyugroupId>
    <artifactId>shenyu-spring-boot-starter-plugin-springcloudartifactId>
    <version>${shenyu.version}version>
dependency>

<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-commonsartifactId>
    <version>2.2.5.RELEASEversion>
dependency>

<dependency>
    <groupId>org.apache.shenyugroupId>
    <artifactId>shenyu-spring-boot-starter-plugin-httpclientartifactId>
    <version>${shenyu.version}version>
dependency>

<dependency>
    <groupId>org.apache.shenyugroupId>
    <artifactId>shenyu-spring-boot-starter-instanceartifactId>
    <version>${shenyu.version}version>
dependency>


<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    <version>${nacos.version}version>
dependency>


<dependency>
    <groupId>org.apache.shenyugroupId>
    <artifactId>shenyu-spring-boot-starter-sync-data-nacosartifactId>
    <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依赖

你可能感兴趣的:(springcloud,java,微服务)