二、公共组件接入指南

2.1 公共组件和普通应用的区别

公共组件是指那些发布给其它应用使用的客户端代码,比如CAT客户端、Hermes Producer客户端等。

虽然这类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为是应用的一部分。

通常情况下,这类组件所用到的配置由原始开发团队维护,不过由于实际应用的运行时、环境各不一样,所以我们也允许应用在实际使用时能够覆盖公共组件的部分配置。

2.2 公共组件接入步骤

公共组件的接入步骤,和普通应用几乎一致,唯一的区别是公共组件需要创建自己唯一的Namespace。

所以,首先执行普通应用接入文档中的以下几个步骤,然后再按照本章节后面的步骤操作。

2.2.1 创建Namespace

创建Namespace需要项目管理员权限,如果发现没有添加Namespace按钮,可以找项目管理员授权。

  • 点击页面左侧的添加Namespace

    • create-namespace
  • 点击“创建新的Namespace”

    • create-namespace-select-type
  • 输入公共组件的Namespace名称,需要注意的是Namespace名称全局唯一

    • Apollo会默认把部门代号添加在最前面
    • create-namespace-detail
  • 点击提交后,页面会自动跳转到关联Namespace页面

    • 首先,选中所有需要有这个Namespace的环境和集群,一般建议全选
    • 其次,选中刚刚创建的namespace
    • 最后,点击提交
    • link-namespace-detail
  • 关联成功后,页面会自动跳转到Namespace权限管理页面

    • 分配修改权限
      • namespace-permission-edit
    • 分配发布权限
      • namespace-publish-permission
  • 点击“返回”回到项目页面

2.2.2 添加配置项

编辑配置需要拥有这个Namespace的编辑权限,如果发现没有新增配置按钮,可以找项目管理员授权。

2.2.2.1 通过表格模式添加配置

  • 点击新增配置public-namespace-edit-item-entry

  • 输入配置项public-namespace-edit-item

  • 点击提交public-namespace-item-created

2.2.2.3 通过文本模式编辑

这部分和普通应用一致,具体步骤请参见1.3.2 通过文本模式编辑

2.2.3 发布配置

配置只有在发布后才会真的被应用使用到,所以在编辑完配置后,需要发布配置。

发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。

  • 点击“发布按钮”public-namespace-publish-items-entry

  • 填写发布相关信息,点击发布public-namespace-publish-items

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按钮,可以找项目管理员授权)
    • link-public-namespace-entry
  • 找到hermes producer的namespace,并选择需要关联到哪些环境和集群link-public-namespace

  • 关联成功后,页面会自动跳转到Namespace权限管理页面

    • 分配修改权限namespace-permission-edit
    • 分配发布权限namespace-publish-permission
  • 点击“返回”回到项目页面

2.3.2 覆盖公用组件配置

  • 点击新增配置override-public-namespace-entry

  • 输入要覆盖的配置项override-public-namespace-item

  • 点击提交override-public-namespace-item-done

2.3.3 发布配置

配置只有在发布后才会真的被应用使用到,所以在编辑完配置后,需要发布配置。

发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。

  • 点击“发布按钮”override-public-namespace-item-publish-entry

  • 填写发布相关信息,点击发布override-public-namespace-item-publish

  • 配置发布成功后,hermes producer客户端在apollo-portal应用里面运行时读取到的sender.batchSize的值就是1000。