# 应用
本章节所描述的是应用部署后,如何在Governor中对应用进行管理,包括应用的新增、编辑、删除及进入“管理实例组”页面。
# 新增应用
在“应用”界面,单击“新增”,进入“新增应用”界面。
在“新增应用”界面中,应用编号为下拉框,会自动在注册中心查询属于当前系统的应用。其他参数按照如下参数说明表格填写。
参数 | 说明 | 界面规则 |
---|---|---|
应用编码 | 必填,对应部署的应用的spring.application.name (opens new window) | 下拉单选 |
应用名称 | 必填,仅用于页面展示 | 支持中文,英文,数字,-,下划线,最多20个字符 |
应用负责人 | 应用的负责人,与权限无关 | 下拉单选 |
默认组预期实例数 | 预计有多少实例 | 正整数 |
描述 | 对应用的描述 | 不限制字符类型,最多200个字符 |
# 编辑应用
在“应用”界面,单击指定应用旁“编辑”,进入“编辑应用”界面,对应用负责人、应用名称、预期实例数及应用描述进行编辑。
# 删除应用
在“应用”界面,单击指定应用旁“删除”,在弹出的提示信息中单击“确定”按钮,删除应用。
# 管理实例组
在“应用”界面,单击指定应用旁“管理实例组”,进入“管理实例组”界面。
# 实例组
本章节所描述的是应用部署后,如何在Governor中对应用实例组进行管理,包括应用实例组下实例数查询、实例上下线、实例地址查询、健康检查地址查询及注册时间查询。
# 创建应用实例组
在“应用”界面,单击“管理实例组”,进入“实例组列表”界面。
在实例组列表中,会自动创建实例组名称为默认组、编号为default的默认实例组。若部署的应用eos.application.app-inst-grp-code不为default,则点击“新增实例组”。
在“新增应用实例组”界面中,参数按照如下参数说明表格填写。
参数 | 说明 | 界面规则 |
---|---|---|
实例组编码 | 必填,对应应用配置文件中eos.application.app-inst-grp-code | 支持英文、数字、-,_,最多14个字符 |
实例组名称 | 必填 | 支持中文,英文,数字,-,下划线,最多20个字符 |
预期实例数 | 预计有多少实例 | 正整数 |
版本 | 实例组的版本号 | 支持英文、数字、-、_、最多20个字符,,默认值1.0 |
描述 | 对应用实例组的描述 | 不限制字符类型,最多200个字符 |
点击实例组名称,进入“实例组详情”界面。
# 应用实例上下线
在“实例组详情”界面中能看到实例数、实例地址、健康检查地址等数据。其中点击实例上下线可对实例进行下线控制,服务调用时不会将请求发往下线的实例。
可通过系统概要中注册地址(如图中的http://10.15.15.128:8761)进入注册中心页面验证实例是否下线: (opens new window)进入注册中心页面验证实例是否下线:/)
注意:注册中心必须关闭自我保护机制,否则实例无法正常上下线。
# 编辑应用实例组
在实例组列表中,单击指定实例组“编辑”按钮,进入“编辑应用实例组”页面,对实例组名称、预期实例数、版本、实例组描述进行编辑。
# 删除应用实例组
在实例组列表中,单击指定实例组“删除”按钮,对应用实例组进行删除。 注意:默认应用实例组不允许删除。
# 服务
本章节所描述的是应用部署后,如何在Governor中查看应用中API详情。
API:应用中提供的接口,可以被其他应用及前端调用。
适用场景:方便运维管理接口,以便前后端开发人员能够很好的做接口的对接及应用之间接口调用,同时也利于接口的后续维护开发。
# 查看应用实例组api
在“实例组详情”界面中,点击“服务”tab页。如图可查看应用下所有controller类名、每个controller的接口数量、接口路径、接口名。
# 应用实例组api上下线
如图单击 POST /org.gocom.components.coframe.org.organization.copyNode 接口的上下线的switch开关,则会在该应用的“配置”中生成一条配置,该接口不允许被调用:
# 查看应用实例组api详情
以POST /org.gocom.components.coframe.org.organization.copyNode 为例,点击/org.gocom.components.coframe.org.organization.copyNode链接,进入api详情页面,可查看api的协议、请求信息、入参、响应等api信息:
# 应用配置
本章节所描述的是应用在服务器部署后,如何在Governor中对实例组实现配置的热部署。
适用场景:1.在生产环境中,适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。2.在开发环境中,用于开发debug以避免重启应用,可以大大的提高开发效率。
前提:配置中心部署完成。其配置文件中eos.application.app-inst-grp-code表示在Governor中实例组编号,默认为default;是否使用Apollo配置客户端apollo.bootstrap.enabled配置值需设置为true,apollo.meta配置值应为Apollo配置中心的config-service的地址
在“实例组详情”界面中,点击“配置”tab页。
将应用中的sys-config,xml和user-config.xml 进行可视化管理,点击确认后,直接热更新
用户也可以在自定义配置中添加修改配置
# 日志查看
本章节所描述的是应用在服务器部署后,如何在Governor中查看应用系统日志。
# 查询应用系统日志
在“实例组详情”界面中,点击“日志”tab页。
点击“查询”按钮,可查询对应实例下系统,引擎,跟踪日志:
# 设置日志级别
点击“设置”可设置日志的生效级别:
# 治理
Governor中对应用的治理包括熔断、限流。
熔断:是由于某些原因使得某些服务出现了故障,为降低该故障服务对整个链路造成影响,从而采用的一种保护措施。很多时候刚开始可能只是系统出现了局部的、小规模的故障,然而由于种种原因,故障影响的范围越来越大,最终导致了全局性的后果。熔断器起的作用就是在特定的场景下关掉当前的通路,从而起到保护整个系统的效果。用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,则会进行降级处理,用户的请求不会被阻塞,至少可以看到一个执行结果(例如返回友好的提示信息),而不是无休止的等待或者看到系统崩溃。
限流:限制访问应用的请求以达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者排队处理等等。
本章节所描述的是应用部署后,如何在Governor中对应用(包括应用实例组)进行治理,包括应用熔断动态配置、限流配置。
注意:熔断、限流规则的动态配置是节合了配置中心进行动态管理的,因此如果是应用首次进入治理页面,会提示需要进行新增服务治理配置组,如下所示:
名称:配置组名称 编码:配置组编码,这个编码会对应应用内熔断限流的配置,如应用需要开启熔断限流功能,则需如下配置
参数 | 说明 |
---|---|
eos.application.sentinel.datasource.enabled | true:开启 false:关闭 |
eos.application.sentinel.datasource.data-id | 规则是:applicationName.app-inst-grp-code.上述服务治理配置组编码,例如:新增的配置组编码为:test,应用编码为:DEMO,实例组编码为default,则该配置为:DEMO.default.test |
# 配置限流
单击“治理”下“流控规则”tab页,进入“配置限流”页面,点击新“新增流控规则”按钮
参数 | 说明 |
---|---|
资源名 | 某个接口,默认请求路径或者@SentinelResource注解配置的值 |
针对来源 | 针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制) |
OPS | 每秒钟的请求数量,当调用该接口的QPS达到了阈值(某个数量)的时候,实现流控效果 |
并发线程数 | 当调用该接口的线程数达到阈值(某个数量)时,请求直接失败 |
单机阈值 | 规则阈值 |
是否集群 | 是否是集群还是单机配置 |
阈值模式 | 单机均摊:每个实例的阈值;总体阈值:整个集群总阈值 |
失败退化 | 失败后是否退化成单机限流 |
流控模式:直接 | 单机可用,就限制设置的资源 |
流控模式:关联 | 单机可用,设置一个关联的资源,关联的资源达到阈值时,就限制设置的资源 |
流控模式:链路 | 单机可用,规定一个入口,设置的资源的流量达到阈值,就限制入口的资源 |
流控效果:快速失败 | 设置为QPS时可配,直接请求失败 |
流控效果:Warm up | 设置为QPS时可配,单位秒,请求 QPS 从 阈值 / 3 开始,还会设置一个预热时长,在预热时间中逐渐升至设定的 QPS 阈值。也就是允许通过的请求数量由少逐渐变多,有一个缓冲的效果 |
流控效果:快速失败 | 设置为QPS时可配,单位毫秒,阈值为每秒通过数量,多余的请求会排队等待(挂起),还会设置一个超时时间,当请求超过超时间时间还未处理,请求就被丢弃了(已取消) |
# 编辑限流配置
单击“治理”下“流控规则”tab页,进入“配置限流”页面,单击“编辑”按钮进行编译:
# 删除限流配置
单击“治理”下“流控规则”tab页,进入“配置限流”页面,单击“删除”按钮进行删除:
# 配置熔断
单击“治理”下“熔断规则”tab页,进入“配置熔断”页面,点击新“新增熔断规则”按钮
其中参数配置如下:
参数 | 说明 |
---|---|
资源名 | 某个接口,默认请求路径或者@SentinelResource注解配置的值 |
熔断策略:慢调用比例 | 按照设置的慢调用参数进行慢调用比例计算,达到阈值进行熔断 |
最大RT | 请求最大响应时间,超过这个时间的请求为慢调用。RT是响应时间(reponse time)的意思,单位为毫秒 |
比例阈值 | 慢调用的比例,超过阈值触发熔断。取值范围0.0-1.0,代表 0% - 100% |
熔断时长 | 熔断开始后,在这个时间内发出的请求会快速失败。单位为秒 |
最小请求数 | 请求数小于该值时,即使异常比率超出阈值也不会熔断 |
统计时长 | 一个时间范围,可以是每1分钟、每3小时。根据这个时间内的请求,来统计总请求和数、计算慢调用比例 |
熔断策略:异常比例 | 按照设置的异常比例参数进行异常比例计算,达到阈值进行熔断 |
比例阈值 | 慢调用的比例,超过阈值触发熔断。取值范围0.0-1.0,代表 0% - 100% |
熔断时长 | 熔断开始后,在这个时间内发出的请求会快速失败。单位为秒 |
最小请求数 | 请求数小于该值时,即使异常比率超出阈值也不会熔断 |
统计时长 | 一个时间范围,可以是每1分钟、每3小时。根据这个时间内的请求,来统计总请求和数、计算慢调用比例 |
熔断策略:异常数 | 按照设置的参数进行异常数计算,达到阈值进行熔断 |
异常数 | 异常个数配置 |
熔断时长 | 熔断开始后,在这个时间内发出的请求会快速失败。单位为秒 |
最小请求数 | 请求数小于该值时,即使异常比率超出阈值也不会熔断 |
统计时长 | 一个时间范围,可以是每1分钟、每3小时。根据这个时间内的请求,来统计总请求和数、计算慢调用比例 |
# 编辑熔断配置
单击“治理”下“熔断规则”tab页,进入“配置熔断”页面,单击“编辑”按钮进行编译:
# 删除熔断配置
单击“治理”下“熔断规则”tab页,进入“配置熔断”页面,单击“删除”按钮进行删除:
# 许可证管理
Governor中对应用的许可证进行可视化管理。
点击“许可证管理”tab页
上传许可证
激活成功后,即可使用最新license(用户可上传多个许可证,但是只能激活一项),激活成功后,应用需要重新启动
点击详情,可看到license详情
点击删除,可删除多余license,当前激活状态下的无法删除
# 服务统计
Governor在服务统计功能中提供一整套的服务统计数据查询
点击“服务统计”tab页
数据库链接统计
EOS服务统计
逻辑流统计
SQL统计
SpringBean统计
# 系统快照
Governor可以在系统快照页面中,直接导出应用所有外置目录下的系统配置,方便运维人员实施跟踪配置相关信息
tab中点击“系统快照”
选择实例后生成系统快照
点击下载即可下载当前系统EOS外置目录配置信息
点击删除,删除无用的快照信息