-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
其它语言客户端接入指南
目前Apollo团队由于人力所限,只提供了Java和.Net(暂未开源)的客户端,对于其它语言的应用,可以通过本文的介绍来直接通过Http接口获取配置。
另外,如果有团队/个人有兴趣的话,也欢迎帮助我们来实现其它语言的客户端,具体细节可以联系@nobodyiam和@lepdou。
##1.1 应用接入Apollo 首先需要在Apollo中接入你的应用,具体步骤可以参考应用接入文档。
##1.2 通过Http接口从Apollo读取配置 ###1.2.1 Http接口说明 URL: {config_server_url}/configfiles/json/{appId}/{clusterName}/{namespaceName}?ip={clientIp}
Method: GET
参数说明:
参数名 | 是否必须 | 参数值 | 备注 |
---|---|---|---|
config_server_url | 是 | Apollo配置服务的地址 | |
appId | 是 | 应用的appId | |
clusterName | 是 | 集群名 | 一般情况下传入 default 即可。 如果希望配置按集群划分,可以参考集群独立配置说明做相关配置,然后在这里填入对应的集群名。 |
namespaceName | 是 | Namespace的名字 | 如果没有新建过Namespace的话,传入application即可。 如果创建了Namespace,并且需要使用该Namespace的配置,则传入对应的Namespace名字。 |
ip | 否 | 应用部署的机器ip | 这个参数是可选的,用来实现灰度发布。 如果不想传这个参数,请注意URL中从?号开始的query parameters整个都不要出现。 |
###1.2.2 Http接口返回格式 该Http接口返回的是JSON格式、UTF-8编码,包含了对应namespace中所有的配置项。
返回内容Sample如下:
{
"portal.elastic.document.type":"biz",
"portal.elastic.cluster.name":"hermes-es-fws"
}
###1.2.3 测试 由于是Http接口,所以在URL组装OK之后,直接通过浏览器、或者相关的http接口测试工具访问即可。
##1.3 应用感知配置更新 Apollo提供了基于Http long polling的配置更新推送通知,不过对第三方客户端可能稍显复杂。
所以对于第三方客户端,建议还是通过定时刷新来感知配置更新,刷新频率可以视应用自身情况来定,建议在30秒以上。
##1.4 错误码说明 正常情况下,接口返回的Http状态码是200,下面列举了Apollo会返回的非200错误码说明。
###1.4.1 400 - Bad Request 客户端传入参数的错误,如必选参数没有传入等,客户端需要根据提示信息检查对应的参数是否正确。
###1.4.2 404 - Not Found 接口要访问的资源不存在,一般是URL或URL的参数错误,或者是对应的namespace还没有发布过配置。
###1.4.3 405 - Method Not Allowed 接口访问的Method不正确,比如应该使用GET的接口使用了POST访问等,客户端需要检查接口访问方式是否正确。
###1.4.4 500 - Internal Server Error 其它类型的错误默认都会返回500,对这类错误如果应用无法根据提示信息找到原因的话,可以尝试查看服务端日志来排查问题。
-
设计文档
-
部署文档
-
开发文档
-
系统使用文档
-
FAQ
-
其它