Rainbond网络治理插件ServiceMesh官方文档说明

目录
  • ServiceMesh网络治理插件
  • 插件实践​
    • 综合网络治理插件​
    • 入站方向​
    • 出站方向​
    • 出站网络治理插件​

ServiceMesh网络治理插件

5.1.5版本后,Rainbond默认提供了综合网络治理插件(同时处理入站和出站网络)和出站网络治理插件两个插件可用。 网络治理插件工作在与业务容器同一个网络空间之中,可以监听一个分配端口,拦截入站的业务流量进行限流、断路等处理再将流量负载到业务服务的实际监听端口之上。

同时也可以工作在出站方向,业务服务需要访问上游服务时,通过访问本地出站治理插件监听的端口,进行流量路由、断路、安全验证等处理,再将流量负载到尚有服务的主机之上。

对于插件的开发者来说需要关注如下两点:

  • 入站治理插件需要根据系统分配的端口转发规则进行流量转发,比如UI服务本身是监听的8080端口,这是不能改变的,但是我们可以改变从边缘网关访问UI服务时的访问端口,因此Rainbond应用运行时为动态为入站网络治理插件生成监听端口对,比如下述配置:
"base_ports":[
      {
          "service_alias":"gre484d9",
          "service_id":"9703228e9b42cde3e3a72f4826e484d9",
          "port":8080,
          "listen_port":65301,
          "protocol":"http",
          "options":{
              "LIMIT_DOMAIN":"limit.common",
              "OPEN_LIMIT":"NO"
          }
      }
  ]

插件运行时会自动注入DISCOVER_URL变量,通过此变量值的地址可以动态获取到如上的配置信息,入站网络治理插件必须通过以上配置来监听65301端口,将流量负载到127.0.0.1:8080端口。

  • 出站治理插件不存在端口映射的问题,出站治理插件根据下属的动态配置信息生成本地监听负载到远程地址。
"base_services":[
        {
            "service_alias":"gre484d9",
            "service_id":"9703228e9b42cde3e3a72f4826e484d9",
            "depend_service_alias":"grcff92d",
            "depend_service_id":"c81923991ff2428082a5d9d478cff92d",
            "port":5000,
            "protocol":"http",
            "options":{
                "BaseEjectionTimeMS":"30000",
                "ConsecutiveErrors":"5",
                "Domains":"todos",
                "Headers":"",
                "IntervalMS":"10",
                "MaxActiveRetries":"5",
                "MaxConnections":"10",
                "MaxEjectionPercent":"20",
                "MaxPendingRequests":"1024",
                "MaxRequests":"1024",
                "MaxRequestsPerConnection":"",
                "PROXY":"YES",
                "Prefix":"/",
                "Weight":"80"
            }
        }
]

使用上述原生配置发现和服务发现来让自定义插件工作,插件层面需要做较多的数据适配工作。Rainbond同时提供了基于envoy XDS(grpc)规范的动态配置发现服务,在插件中通过XDS_HOST_IP XDS_HOST_PORT两个变量来获取XDS服务的地址。

对用用户来说插件层的网络治理对于业务层是完全透明的,所有有依赖关系的分布式服务类似于运行同一台主机一样。

插件实践

综合网络治理插件

默认提供的综合网络治理插件基于envoy 1.9.0实现,综合网络插件同时实现了入站方向的治理和出站方向的治理,提供以下配置参数:

入站方向

全局限流:

  • OPEN_LIMIT 开启全局限流功能,全局限流功能依赖于第三方的限流服务,比如 ratelimit , 当前服务需要依赖ratelimit服务,并设置RATE_LIMIT_SERVER_HOST和RATE_LIMIT_SERVER_PORT环境变量。
  • LIMIT_DOMAIN 限流链路的domain key,与全局限流服务的配置对应

断路:

  • MaxConnections 最大连接数,Http协议时仅适用于http1.1,TCP协议时设置最大TCP连接数。
  • MaxRequests 并发请求数,适用于HTTP协议
  • MaxPendingRequests 最大等待请求数,适用于HTTP协议
  • MaxActiveRetries 最大重试次数,适用于HTTP协议
  • MaxRequestsPerConnection 单连接最大请求数,适用于HTTP协议,支持http1.1 和http2

出站方向

动态路由(HTTP协议):

Domains

请求域名,对于http协议的上游服务,支持基于域名路由并复用80端口。

Prefix

请求Path路径的前缀,基于前缀来路由不同的上游服务。

Headers

请求头,基于请求头的路由不同的上游服务。

Weight

权重,基于不同的权重来将流量分发到不同的上游服务。

断路(面向连接):

  • MaxConnections 最大连接数,Http协议时仅适用于http1.1,TCP协议时设置最大TCP连接数。
  • MaxRequests 并发请求数,适用于HTTP协议
  • MaxPendingRequests 最大等待请求数,适用于HTTP协议
  • MaxActiveRetries 最大重试次数,适用于HTTP协议
  • MaxRequestsPerConnection 单连接最大请求数,适用于HTTP协议,支持http1.1 和http2

断路(面向上游主机):

  • ConsecutiveErrors 上游服务主机发生500错误的被逐出的次数。
  • BaseEjectionTimeMS 主机被逐出的基础时间,及第一次被逐出的时间,如果被逐出n次,时间则为n*BaseEjectionTimeMS
  • MaxEjectionPercent 被逐出主机的最大比例,如果设置为100则允许全量逐出。
  • IntervalMS 分析主机是否应该被逐出的时间间隔
  • HealthyPanicThreshold 进入恐慌模式的比例,默认是50

出站网络治理插件

当服务无需使用入站方向的治理功能时,可只使用出站治理插件,配置参数与综合治理插件的出站方向一致。

以上就是Rainbond网络治理插件ServiceMesh官方文档说明的详细内容,更多关于Rainbond网络治理插件ServiceMesh官方文档的资料请关注我们其它相关文章!

(0)

相关推荐

  • Rainbond功能架构及应用管理官方文档介绍

    目录 Rainbond是什么? 为什么选择Rainbond? 1.使用简单 2.一步将传统应用变成云原生应用 3.实现数字化能力积累和复用 4.解决2B行业的交付问题,实现各种交付流程自动化 Rainbond的功能及架构 应用级多云管理 应用全生命周期管理 能力复用和共享 Rainbond怎么工作? Rainbond跟其他产品对比 Rainbond是什么? Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器.Kubernetes和底层复杂技术,支持管理多个Kubernetes集群

  • Rainbond配置组件自动构建部署官方文档讲解

    目录 前言 前提条件 基于源代码操作流程 1.开启组件 Git-Webhook 2.配置代码仓库 基于镜像仓库操作流程 1.开启镜像仓库 Webhook 自动构建 2.Tag 触发自动修改策略 3.配置镜像仓库 API 触发自动构建 前言 通过自动构建的功能,可以实现代码或镜像提交后组件自动触发构建和部署,Rainbond 提供了基于代码仓库 Webhooks.镜像仓库 Webhooks 和自定义 API 三种方式触发组件自动部署.自动构建的功能可以辅助开发者便捷的实现敏捷开发. 前提条件 组件

  • Rainbond部署组件Statefulset的使用官方文档

    目录 前言 组件部署类型 服务的“状态” 处理服务的 “状态” 前言 对于kubernetes老玩家而言,StatefulSet这种资源类型并不陌生.对于很多有状态服务而言,都可以使用 StatefulSet 这种资源类型来部署.那么问题来了:挖掘机技术哪家强?额,不对. 如何在 Rainbond 使用 StatefulSet 资源类型来部署服务呢? 组件部署类型 通过在服务组件的其他设置中,更改 组件部署类型 即可选择使用 StatefulSet 资源类型部署服务,操作之前要注意以下几点: 组

  • Rainbond应用分享与发布官方文档说明

    目录 应用分享与发布 应用分享 应用发布流程 完善应用信息 提交发布任务 确认发布 编辑应用发布信息 应用分享与发布 应用分享 应用市场定义了支持大型分布式的数字化业务系统的标准云原生应用模型.它可以包含1-N个服务组件,模型包含其中每个服务组件资源及配置,插件资源及配置,拓扑关系.部署关系等.精心制作完成即可一键发布.一键安装. 在Rainbond中,组件是Rainbond可管理的最小服务单元,用户可以将多个组件组成一个复杂的业务系统,这套业务系统可以对外提供服务,也可以分享给其他组织独立部署

  • Rainbond网络治理插件ServiceMesh官方文档说明

    目录 ServiceMesh网络治理插件 插件实践​ 综合网络治理插件​ 入站方向​ 出站方向​ 出站网络治理插件​ ServiceMesh网络治理插件 5.1.5版本后,Rainbond默认提供了综合网络治理插件(同时处理入站和出站网络)和出站网络治理插件两个插件可用. 网络治理插件工作在与业务容器同一个网络空间之中,可以监听一个分配端口,拦截入站的业务流量进行限流.断路等处理再将流量负载到业务服务的实际监听端口之上. 同时也可以工作在出站方向,业务服务需要访问上游服务时,通过访问本地出站治理

  • fullCalendar中文API官方文档

    1. 使用方式: 引入相关js, css后, $('#div_name').fullCalendar({//options}); 接受的是一个option对象 2. 普通属性 2.1. year, month, date: 整数, 初始化加载时的日期. 2.2. defaultView: 字符串类型, 默认是'month; 2.2.1. 允许的views: 2.2.1.1. month 一页显示一月, 日历样式 2.2.1.2. basicWeek 一页显示一周, 无特殊样式 2.2.1.3.

  • 深入理解Vue官方文档梳理之全局API

    Vue.extend 配置项data必须为function,否则配置无效.data的合并规则(可以看<Vue官方文档梳理-全局配置>)源码如下: 传入非function类型的data(上图中data配置为{a:1}),在合并options时,如果data不是function类型,开发版会发出警告,然后直接返回了parentVal,这意味着extend传入的data选项被无视了. 我们知道实例化Vue的时候,data可以是对象,这里的合并规则不是通用的吗?注意上面有个if(!vm)的判断,实例化

  • iPhone X官方文档的适配学习详解

    前言 官方文档原文地址:链接,iPhone X在文中均用iPX来表示,iPhone 7在文中均用iP7来表示 屏幕尺寸 iPX的屏幕尺寸是2436px×1125px(812pt×375pt @ 3x),也就是说我们依然使用的是3x的素材应该影响不大,他和iP7在宽度上是一致的,但是高度上多了145个点. 布局 最好在真机上预览一下布局. 布局需要延伸到边缘,另外在纵向高度上最好可以根据不同情境滚动. 状态栏的高度已经改变了,如果布局没有使用系统的导航栏,或者布局是依照导航栏来的,那么需要重新适配

  • Vue官方文档梳理之全局配置

    本文主要介绍了Vue官方文档梳理之全局配置,分享给大家,也给自己留个笔记.具体如下: optionMergeStrategies 用于自定义选项的合并策略,Vue已经预定义了一些自己配置项的合并策略,如下图所示. 比如props.methods.computed就是同一个策略:子配置项会覆盖父级配置项.源码如下: var strats = config.optionMergeStrategies; strats.props = strats.methods = strats.computed =

  • 利用python查看官方文档

    离线版本Python Mannuals,直接开始菜单搜索就行,Module Docs是安装模块的文档,点开在浏览器打开 或者安装Python目录下找Doc点进去 比如查看python内置的函数 像re,tkinter在D:\Python36\lib下,jupyter,mysql安装在D:\Python36\lib\site-packages下 官网点击Docs https://docs.python.org/3/ 到此这篇关于利用python查看官方文档的文章就介绍到这了,更多相关python查

随机推荐