控制台说明
金融分布式架构
运维管理
应用发布流程
应用创建
首先添加新应用 要添加到自己项目对应的文件夹下 不要乱放
要删除掉应用标签 之后提交即可
提交完后 创建完成 要记住自己的应用名称 后面要用
应用发布
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KOKirNS-1631495763588)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910163716234.png)]
应用服务名称 命名规则
环境前缀名-所属应用名称(所属应用名称及之前创建的应用名称)
pod节点模板配置
因为镜像仓库是私有的 所以必须使用保密字典拉取镜像 否则后面拉取镜像会失败
dev test环境默认采用1C2G配置 uat等环境可视情况调整配置
日志服务配置后 SLS会从容器内取出指定路径的日志并存储到指定的日志库当中去
部署单元 uat环境视情况选择 dev test环境选择一个即可
最小分组数 多副本多部署单元时 分组的数量
分组暂停 选择后需要手动发布每一个副本
beta分组 先发布一个测试副本 测试副本无异常后再继续发布其他的副本
查看配置信息无误后提交即可
立即发布
整体发布
查看应用服务运行状态 运行数与副本数匹配 则说明副本全部运行成功
点击应用服务名可以查看应用服务运行详情
一个pod对应一个副本 地址即为该副本的内网ip
点击pod名称可以查看节点详细信息
点击容器名称可以查询当前副本的日志
负载均衡配置
可配置应用服务的负载均衡
选择项目所在的命名空间
创建服务 选择创建自定义服务
按模板修改配置 之后提交即可
kind: Service
apiVersion: v1
metadata:
name: lb-reg-acci-sd-riskwarning #service 名字 同应用名称
namespace: dev-busplatform-regulatory #命名空间名称
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'true'
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: lb-bp1w2wb0qqhg5qrb3sxrc #slb 的 id
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: 'tcp:10009' #外部访问端口
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: 'on'
spec:
ports:
- name: tcp-reg-acci-sd-riskwarning-p1 #端口的名字 tcp-同应用名称-p1
protocol: TCP
port: 10009 #此处需要与前面 alibaba-cloud-loadbalancer-protocol-port 定义的一致
targetPort: 8341 #容器端口
selector:
app.kubernetes.io/instance: dev-reg-acci-sd-riskwarning #应用服务名称
app.kubernetes.io/name: reg-acci-sd-riskwarning #应用名称
type: LoadBalancer
sessionAffinity: None
externalTrafficPolicy: Local #Local 表示 slb 只挂载 pod 所在的节点
status:
loadBalancer: {}
查看负载均衡是否生效
VIP即为负载均衡ip 端口为配置文件内自定义的外部访问端口
点击服务名称即可查看详情
pod数不为零时说明负载均衡生效
点击Pods可以查看负载均衡的容器的信息
点击编辑 选择yaml编辑即可对当前负载均衡配置进行修改
服务快速更换镜像版本
定时任务配置流程
代码实现
代码可以参考acci-sd-riskwarningtask项目代码
简单任务配置教程
当点击
任务名称
时 会进入任务的详细内容界面客户端状态 表明有多少个客户端与当前定时任务绑定
是否启用 是否开始执行定时任务
操作 在此处点击触发 会立即手动触发一次定时任务
不启动分片时 则会按规则选择一个客户端进行手动触发
启动分片时 会按照分片数量选择N个客户端进行触发
点击新建任务 简单任务 就可以开始配置一个简单任务
任务名称 自定义即可
应用名称 对应客户端应用服务所配置的
srping.application.name
调度类型 即如何触发定时任务 选择cron表达式触发
Cron表达式 配置定时任务执行时间 官方文档内有语法说明
任务分组 选择自己所在的项目组
执行器名字 代码当中定时任务类里
getName()
方法返回的字符串 会通过匹配这个方法去执行定时任务是否分片 否 每次执行调用一个客户端 是 每次执行调用分片数的客户端
自定义参数 可以自定义一些参数在项目里获取使用
路由策略 每次执行时选择客户端的规则
通信方式 不需要返回时选择单向 需要返回时选择回调
优先级 仅作为标识 不会对定时任务的执行产生任何影响 默认为中等
描述 对当前定时任务的详细描述
填完之后选择提交即可
详细界面操作
集群任务配置教程
暂无 如有需要 可参考阿里云官方帮助文档及官方demo示例
消息队列使用
服务端使用
暂无 参考阿里云官方文档
客户端使用
创建group
使用客户端前首先需要创建自己的Group
填写自定义的Group ID及描述之后点击确定即可
发送测试消息
选择自己要监听的topic
客户端代码实现
可以参考acci-sd-riskwarningmq
项目代码
微服务平台使用
服务管控 可以查询注册中心所有服务的提供者与消费者信息等
应用依赖 可以查看注册中心所有应用的依赖关系图
动态配置的使用
代码实现
在 SOFABoot 工程的待创建动态配置类的模块中,添加下述依赖:
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>ddcs-enterprise-sofa-boot-starter</artifactId>
</dependency>
创建动态配置类
@Data
@DObject(region ="busplatform_reg", appName ="all-realname-baffle",id = "com.cic.businsurance.regulatory.baffle.domain.dto.ResDto")
public class ResDto {
//投保登记返回报文
@DAttribute
private String realNameInsure;
//理赔登记返回报文
@DAttribute
private String realNameClaims;
//退保登记返回报文
@DAttribute
private String realNameFallback;
//贷款登记返回报文
@DAttribute
private String realNameLoan;
//批改登记返回报文
@DAttribute
private String realNameModify;
//实名查验返回报文
@DAttribute
private String realNameAuthInfo;
//车辆信息查询接口返回报文
@DAttribute
private String vehQuery;
//车辆信息一致性接口返回报文
@DAttribute
private String uniformity;
public void init(){
DRMClient.getInstance().register(this);
}
}
代码说明
在配置类上加上 @DObject 注解,它的包名是 com.cic.businsurance.regulatory.baffle.domain.dto.ResDto。@DObject 需要提供 id、region、appName 属性
id:是全站唯一的字符串,一般用全类名来保证唯一,如不设值,则默认为全类名。
region:用于区分不同组织的域,如可为每个子公司设定独立域。
appName:是应用名
在资源属性上加上 @DAttribute 注解
进行xml配置
<bean id="dynamicConfig" class="com.cic.businsurance.regulatory.baffle.domain.dto.ResDto" init-method="init"/>
动态配置类的使用
@Autowired
private ResDto resDto;
配置云端动态配置
进入动态配置
在左侧导航栏,选择 中间件 > 微服务平台 >微服务 > 动态配置
新增配置类
单击 新增配置类,然后配置以下参数
域: 填写配置类的命名空间。
只能包含大小写字母、数字或者下划线(_)
所属应用:填写配置类所属的应用名。
只能以英文字母开头。
可以包含大小写字母、数字、下划线(_)、短划线)(-)。
类标识:代表配置类的一个字符串,跟应用代码中 @DObject 注解的 ID 字段一致,通常使用全类名
只能以英文字母开头。
可以包含大小写字母、数字、下划线(_)、短划线(-)、英文句号(.)
描述(选填):填写配置类的描述信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5bdrcXtl-1631496066347)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/dtpz2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pmiOUrTv-1631496075266)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/dtpz3.png)]
新增属性
单击刚创建的配置类后侧的 新增属性,然后填写 属性名 与 描述。属性为 key-value 的形式
属性名:配置类中子配置项的名称
描述(选填):填写配置属性的描述信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8DftJo3d-1631496084683)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/dtpz3.png)]
推送动态配置
配置 推送目标 和 推送值
单击目标动态配置左侧的加号(+) ,然后单击目标属性名称
配置 推送目标 和 推送值 后,单击需要的推送方式
直接推送
单击 推送配置,然后单击 确定。动态配置将立即将发布至所有订阅服务器。
灰度推送
单击 灰度推送。选中需要推送的 IP 后,单击 推送。
只有已经订阅该配置的服务器 IP 地址会显示在弹窗列表中。您可以使用右上角的搜索栏来快速筛选要查找的服务器 IP 地址。灰度推送时,您的配置仅推送到目标服务器进行测试验证,数据不保存到数据库
查看推送记录
单击属性基本信息页面的 查看推送记录 链接以查看推送记录列表。
每条推送记录包括以下信息:
推送时间
操作者
推送值:本次操作推送的属性值。
推送结果:成功或失败。
单击 复用 将关闭推送记录窗口并将当前推送记录的推送值填充到推送值文本框中,方便您重新进行推送
代码仓库的使用
第一次使用时 首先配置代码仓库的http密码 拉取代码时需要使用
需要注意 用户名是不可变的
自动迭代的使用
新建迭代
新建迭代 选择自己的项目组 如果自己的项目组不存在时 需要使用高权限账号去新建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zvXdx5iw-1631496115373)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910194911590.png)]
第一次创建迭代时需要先导入应用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XLYU8Xio-1631495763620)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910195104592.png)]
导入应用
导入应用 输入自己要建立迭代的应用名
应用中文名称 自定义应用中文名称
应用类型 SOFA Boot
应用等级 高
二级架构域 选择自己项目的架构域
绑定代码仓库 输入当前项目代码仓库的http地址
技术栈 SOFA Boot
新建迭代
迭代名称 自定义迭代名即可
关联应用 选择自己的应用名
关联项目 选择自己的项目名
迭代成员 非迭代成员无法见到当前迭代 应导入组内的所有开发成员
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikNJ1uxA-1631495763622)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910195718783.png)]
定制Pipeline
新建的迭代需要调整Pipeline的触发策略
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMyn7HVg-1631495763624)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910200015141.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iJ29kuKb-1631495763627)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910200115576.png)]
环境配置
选择自己的应用服务并导入
当图标变为
时说明导入成功
自动迭代操作流程
当有新的代码提交并希望重新发布时
首先将代码合并到dev分支
之后
提交MR
分支 选择变更的分支(dev分支或其他分支)
评审人 选择要参与此次代码变更的评审人员 可以是多个
之后按提示流程进行代码评审及代码合并操作
此流程报错时根据报错信息进行调整即可 可能会有代码规范或其他类型的错误
提交MR流程完成后即可触发Pipeline进行自动构建及dev环境的自动部署
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkTifFzc-1631495763632)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910201129978.png)]
之后若需要向其他环境部署该版本的镜像
需去容器镜像服务查询自动构建的镜像的tag 之后手动发布到其他环境
负载均衡
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nU4Y9jw7-1631495763632)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910152904028.png)]
容器镜像服务
初次使用容器镜像服务
需先配置个人的 访问凭证 (此凭证为后期docker内登录阿里云容器镜像所用密码 docker login)
如果忘记密码 再回此处重新设置密码即可
新建镜像仓库
点击 镜像仓库
选择 命名空间 (监管接入平台所有镜像仓库均在 命名空间 busplatform-namespace 内)
之后点击 创建镜像仓库
之后点击 下一步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9SZ40w3P-1631495763638)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910143035842.png)]
选择 本地仓库 点击 创建镜像仓库即可创建成功
镜像构建
在本地使用Docker打包镜像上传至阿里云的镜像仓库内
Docker安装及登录
安装好docker并启动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWYVHVsv-1631495763639)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/docker_install_5.png)]
对于第一次使用docker的机器 需要先进行登录操作
注意此命令后必须接含vpc的地址 否则会登录失败
docker login --username=likunyao@1414587873548331 cic-acr-1-registry-vpc.cn-hangzhou-finance.cr.aliyuncs.com
之后输入之前配置过的个人访问凭证即可登陆成功
本地镜像构建上传
首先使用maven打包项目(对于符合六边形架构的项目 仅需打包根pom root) 并上传到maven仓库
打包好后 命令行(cmd powershell等均可)进入dockerfile所在目录
执行镜像构建命令
docker build -t 专有网络地址:自定义镜像Tag -f DockerFile所在目录(相对或绝对路径) .
一定不要忘了最后的英文 . 当Dockerfile文件名为Dockerfile时 无需使用-f命令
镜像构建完成后 查看本地镜像是否构建成功
docker images
确认本地镜像构建成功后 上传镜像至阿里云的镜像仓库
docker push 专有网络地址:自定义镜像Tag
第一次构建镜像和上传镜像用的时间会比较久
上传完成后 去阿里云镜像仓库查看是否上传成功 如果在此页面可以查看到你刚刚上传的镜像 说明已经上传成功
使用迭代自动构建镜像到阿里云的镜像仓库内
日志服务SLS
查看各个环境日志
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CgSwXuu9-1631495763642)(https://raw.githubusercontent.com/CoderL98/cloudPicture/main/image-20210910153349540.png)]
找到自己项目所在的日志库 监管接入平台各环境日志库命名均包含regulatory
输入查询语句即可查询日志 可通过日志聚类添加固定查询语句生成的图表到仪表盘 可以 生成多种图表 非实时
实时日志监控在 金融分布式架构-运维管理-业务实时监控-自定义监控