二、公共组件接入指南
2.1 公共组件和普通应用的区别
公共组件是指那些发布给其它应用使用的客户端代码,比如CAT客户端、Hermes Producer客户端等。
虽然这类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为是应用的一部分。
通常情况下,这类组件所用到的配置由原始开发团队维护,不过由于实际应用的运行时、环境各不一样,所以我们也允许应用在实际使用时能够覆盖公共组件的部分配置。
2.2 公共组件接入步骤
公共组件的接入步骤,和普通应用几乎一致,唯一的区别是公共组件需要创建自己唯一的Namespace。
所以,首先执行普通应用接入文档中的以下几个步骤,然后再按照本章节后面的步骤操作。
2.2.1 创建Namespace
创建Namespace需要项目管理员权限,如果发现没有添加Namespace按钮,可以找项目管理员授权。
点击页面左侧的添加Namespace
点击“创建新的Namespace”
输入公共组件的Namespace名称,需要注意的是Namespace名称全局唯一
- Apollo会默认把部门代号添加在最前面
点击提交后,页面会自动跳转到关联Namespace页面
- 首先,选中所有需要有这个Namespace的环境和集群,一般建议全选
- 其次,选中刚刚创建的namespace
- 最后,点击提交
关联成功后,页面会自动跳转到Namespace权限管理页面
- 分配修改权限
- 分配发布权限
- 分配修改权限
- 点击“返回”回到项目页面
2.2.2 添加配置项
编辑配置需要拥有这个Namespace的编辑权限,如果发现没有新增配置按钮,可以找项目管理员授权。
2.2.2.1 通过表格模式添加配置
点击新增配置
输入配置项
点击提交
2.2.2.3 通过文本模式编辑
这部分和普通应用一致,具体步骤请参见1.3.2 通过文本模式编辑。
2.2.3 发布配置
配置只有在发布后才会真的被应用使用到,所以在编辑完配置后,需要发布配置。
发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。
点击“发布按钮”
填写发布相关信息,点击发布
2.2.4 应用读取配置
配置发布成功后,应用就可以通过Apollo客户端读取到配置了。
Apollo目前提供Java客户端,具体信息请点击Java客户端使用文档:
如果应用使用了其它语言,也可以通过直接访问Http接口获取配置,具体可以参考其它语言客户端接入指南
对于公共组件的配置读取,可以参考上述文档中的“获取公共Namespace的配置”部分。
2.3 应用覆盖公用组件配置步骤
前面提到,通常情况下,公共组件所用到的配置由原始开发团队维护,不过由于实际应用的运行时、环境各不一样,所以我们也允许应用在实际使用时能够覆盖公共组件的部分配置。
这里就讲一下应用如何覆盖公用组件的配置,简单起见,假设apollo-portal应用使用了hermes producer客户端,并且希望调整hermes的批量发送大小。
2.3.1 关联公共组件Namespace
进入使用公共组件的应用项目首页,点击左侧的添加Namespace按钮
- 所以,在这个例子中,我们需要进入apollo-portal的首页。
- (添加Namespace需要项目管理员权限,如果发现没有添加Namespace按钮,可以找项目管理员授权)
找到hermes producer的namespace,并选择需要关联到哪些环境和集群
关联成功后,页面会自动跳转到Namespace权限管理页面
- 分配修改权限
- 分配发布权限
- 点击“返回”回到项目页面
2.3.2 覆盖公用组件配置
点击新增配置
输入要覆盖的配置项
点击提交
2.3.3 发布配置
配置只有在发布后才会真的被应用使用到,所以在编辑完配置后,需要发布配置。
发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。
点击“发布按钮”
填写发布相关信息,点击发布
配置发布成功后,hermes producer客户端在apollo-portal应用里面运行时读取到的sender.batchSize的值就是1000。