首页 > 其他分享 >Apache ShenYu介绍与部署

Apache ShenYu介绍与部署

时间:2024-10-25 13:47:57浏览次数:9  
标签:插件 ShenYu 部署 网关 Apache shenyu 选择器

一、概述 

Apache ShenYu (incubating)是一个异步的,高性能的,跨语言的,高性能,多协议,易扩展,响应式的API网关。 兼容各种主流框架体系,支持热插拔,用户可以定制化开发,满足用户各种场景的现状和未来需求,经历过大规模场景的锤炼。 支持丰富的协议:HttpSpring CloudgRPCDubboSOFARPCMotanTars等等。

2022年7月28日Apache软件基金会宣布Apache ShenYu正式毕业,成为Apache顶级项目(TLP)

ShenYu(神禹)是中国古代君主夏禹(后世亦称大禹)的尊称,他留下了三渡黄河造福人民并成功治理黄河洪水的感人故事。他和尧、舜一起被认为是中国古代三大帝王之一。

  • 首先,ShenYu这个名字是为了弘扬我们中华文明的传统美德。
  • 其次,对于网关来说最重要的是流量管理。
  • 最后,社区将以公平、公正、公开、择优的方式做事,在向神禹致敬的同时,也符合 Apache Way。

Apache ShenYu特点

  • 代理:支持Apache Dubbo,Spring Cloud,gRPC,Motan,SOFA,TARS,WebSocket,MQTT
  • 安全性:签名,OAuth 2.0,JSON Web令牌,WAF插件
  • API治理:请求、响应、参数映射、Hystrix、RateLimiter插件
  • 可观测性:跟踪、指标、日志记录插件
  • 仪表板:动态流量控制,用户菜单权限的可视化后端
  • 扩展:插件热插拔,动态加载
  • 集群:NGINX、Docker、Kubernetes
  • 语言:提供.NET,Python,Go,Java客户端用于API注册

官方文档Apache ShenYu 介绍 | Apache ShenYu

源码地址:GitHub - apache/shenyu: Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance.

二、架构

2.1、Apache ShenYu Admin 

Apache ShenYu Admin 是网关的后台管理系统,能够可视化管理所有插件、选择器和规则,设置用户、角色,控制资源。

2.1.1 插件、选择器和规则

  • 插件:Apache ShenYu 使用插件化设计思想,实现插件的热插拔,极易扩展。内置丰富的插件,包括 RPC 代理、熔断和限流、权限认证、监控等等。
  • 选择器:每个插件可设置多个选择器,对流量进行初步筛选。
  • 规则:每个选择器可设置多个规则,对流量进行更细粒度的控制。
  • 数据库 UML 类图:

  • 设计详解:

    • 一个插件对应多个选择器,一个选择器对应多个规则。

    • 一个选择器对应多个匹配条件,一个规则对应多个匹配条件。

    • 每个规则在对应插件下,有不同的处理能力。

2.1.2 资源权限

  • 资源代表的是 shenyu-admin 用户后台中的菜单或者按钮。

  • 资源权限数据表用来存储用户名称、角色、资源数据以及对应关系。

  • 数据库 UML 类图:

  • 设计详解:
    • 一个用户对应多个角色,一个角色对应多个资源。

2.1.3 数据权限

  • 数据权限表用来存储用户,选择器、规则对应关系。
  • 数据库 UML 类图:

  • 设计详解:
    • 数据权限的表为: data_permission,一个用户对应多条数据权限。
    • 数据权限表中字段 data_type 区分不同的类型数据, 具体对应关系如下:0 -> 选择器, 1 -> 规则
    • 数据权限表中字段 data_id 存放相应类型的主键id

2.1.4 元数据

  • 元数据主要是用于网关的泛化调用。
  • 每个接口方法,对应一条元数据。
  • 数据库 UML 类图:

  • 设计详解:

    • path:在请求网关的时候,会根据 path 来匹配到一条数据,然后进行后续的流程。

    • rpc_ext:用于保存RPC代理中的扩展信息。

2.1.5 字典管理

  • 字典管理主要用来维护和管理公用数据字典。
  • 数据库 UML 类图:

2‌、Apache ShenYu Bootstrap 

Apache ShenYu Bootstrap是Apache ShenYu网关的核心模块之一,主要用于启动项目并提供负载均衡、熔断、限流和路由等逻辑处理,

Apache ShenYu Bootstrap是Apache ShenYu网关的一个关键组件,主要负责启动网关服务并加载其他模块的代码。它包含了启动类ShenyuBootstrapApplication,通过运行这个启动类,可以启动整个网关服务‌。此外,Apache ShenYu Bootstrap还提供了负载均衡、熔断、限流和路由等核心功能,确保网关能够高效地处理请求并优化系统性能‌。

三、部署(Docker)

1、ShenYu Admin

docker pull apache/shenyu-admin
docker network create shenyu
docker run -d -p 9095:9095 --net shenyu apache/shenyu-admin

浏览器输入:http://hadoop100:9095/ 

默认账号: admin

默认密码: 123456

 登录后重新设置密码为 SehnYu@123

2、ShenYu Bootstrap

docker pull apache/shenyu-bootstrap
docker run -d -p 9195:9195 -e "shenyu.local.enabled=true" --net shenyu apache/shenyu-bootstrap

标签:插件,ShenYu,部署,网关,Apache,shenyu,选择器
From: https://blog.csdn.net/taogumo/article/details/143221194

相关文章

  • 部署 KRaft 模式下的 Kafka
    环境介绍kafka1:192.168.174.100kafka2:192.168.174.101kafka3:192.168.174.102下载kafka#wgethttps://dlcdn.apache.org/kafka/3.8.0/kafka_2.13-3.8.0.tgz解压kafka#tarxfkafka_2.13-3.8.0.tgz-C/usr/local#ln-sv/usr/local/kafka_2.13-3.8.0/usr/local......
  • aria2部署和使用
    CentOS6安装aria2,CentOS7可以直接yum安装1、安装aria2tar-zxvfaria2-1.17.1.tar.gzll-thrmvaria2-1.17.1/usr/local/src/cd/usr/local/src/ll-thrcdaria2-1.17.1/ll-thr./configureecho$?makeecho$?makeinstall2、使用aria2aria2c-x16-s16http......
  • Docker部署及项目的生命周期
    目标了解传统项目生命周期的阶段特点了解新型项目生命周期的特点了解部署方案的一般流程1.项目生命周期​ 世间万物皆有其生命,软件项目也是如此。随着互联网的发展,软件项目的生命周期也发生了很大的变化,为了更好的让大家理解软件项目,项目生命周期有狭义(具体)、广义(缘起/缘......
  • iis部署tms web core
    iis部署tmswebcore首先准备好你要发布的网站文件夹 1)iis设置网站2)1、打开“IIS信息服务管理器”——》选择你发布的网站——》选择功能视图中的“身份验证”——》右键匿名身份验证,选择“编辑”,选择“特定用户IUSR”;2、右键要发布的网站文件夹,选择“安全”——》“编辑......
  • 在虚拟机里部署 Dify 模型
    在虚拟机里部署Dify模型的一般步骤:1. 准备虚拟机环境:选择操作系统:常见的选择有Ubuntu、CentOS等Linux发行版。确保虚拟机的配置满足Dify的最低系统要求,一般建议CPU核心数不少于2个,内存不少于4GB。安装必要软件:在虚拟机中安装Docker(用于容器化部署)、Git(用于拉......
  • 大华乐橙设备私有平台EasyCVR私有化部署视频平台监控摄像机安装注意事项与具体步骤
    在当今数字化时代,视频监控已成为保障安全的重要手段。监控摄像机的安装和配置是一个涉及多个步骤的细致过程。本文将探讨在安装过程中需要注意的事项以及具体的安装步骤,确保用户能够高效、安全地部署监控系统。首先,确保监控摄像机的选址合理,避免监控盲区,并考虑到光线变化对图像质......
  • 宝塔可以同时安装apache和nginx
    宝塔面板是一个服务器管理软件,可以帮助用户快速、简单地管理服务器。宝塔面板支持一键安装Apache、Nginx、MySQL、PHP等,并且可以提供各种管理功能,如网站、数据库的管理等。宝塔面板不支持同时安装Apache和Nginx,因为这两个软件都是用来处理HTTP服务的,你只能选择安装其中之一。如......
  • 基于SpringBoot+Vue+uniapp的乡村政务办公系统的详细设计和实现(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • ClickHouse的下载与安装部署
    ClickHouse安装一、了解ClickHouseClickHouse是一个关系型数据库,说到关系型数据库,我们之前也学习到一个数据库Mysql,但是两者之间是有着很大区别的。MySQL数据库一般存储较少的数据(100万以内),而今天学习的ClickHouse存储的数据就相当之大,可以存储亿条数据。再者说两者的工作原理......
  • 使用 docker 的方式部署 NFS server 提供文件共享能力
    目录构建NFSserver镜像准备Dockerfile准备.bashrc文件准备nfsd.sh构建镜像特权模式dockerdocker-composedockerrun的方式环境变量方式配置文件挂载方式docker-compose的方式本地挂载NFS题外话什么是Capabilities常见的Capabilities列表获取Capabilities列表方法一......