开发者社区> 问答> 正文

配置推送怎么做?


配置推送在EDAS中分为全局配置推送和应用内部的配置推送,两者的区别在于权限的控制上。全局配置推送能操作该用户的所有配置信息,而应用内的配置推送只能操作该应用所属的配置信息。
本文档介绍应用内部的配置推送,全局配置推送,请参考 全局配置推送
[backcolor=transparent]配置 在 EDAS 中是由三元组(group、DataId、Content)组成的一个配置信息,配置信息中的三个要素 group、DataId、Content 的意义如下

  • group:分组名称,是命名空间,如 Java 中的 package,最大 128 个字符。
  • DataId:配置名称,如 Java 中的类名,最大 256 个字符。group+DataId 确定一个配置,对应一个值。对于特殊字符,group 和 DataId 命名中仅允许包含”.”、”:”、”-“、”_” 这 4 种特殊字符。
  • Content:配置中值的内容,最大 1024 个字符。

用户可以实时的增加、修改、删除配置,来动态的使得配置生效,无需更改代码、重新发布服务、重启服务。
说明:配置推送中的元素 [backcolor=transparent]分组 是在服务分组中创建。如果没有创建任何服务,进入配置页面,会有一条系统自动产生的配置,用户可以忽略这条系统配置。

配置推送


  1. 登录 EDAS 控制台

  2. 在左侧导航栏中,单击 [backcolor=transparent]应用管理。

  3. 在应用列表页面,单击具体的应用名称。

  4. 在应用详情页面左侧的导航栏中,单击 [backcolor=transparent]配置推送。

    在该页面中,可以在该应用内的进行配置推送的创建、查看、更新和删除等操作。操作步骤和全局配置推送中一致,具体步骤请参考全局配置推送的内容。


应用程序中监听配置


在 EDAS 控制台上创建、更新配置后,用户可在代码中对配置进行监听,随时接收配置的变化。
代码中引入以下依赖:
  1. [backcolor=transparent]<dependency>
  2. [backcolor=transparent]    [backcolor=transparent]<groupId>[backcolor=transparent]com.alibaba.edas.configcenter[backcolor=transparent]</groupId>
  3. [backcolor=transparent]    [backcolor=transparent]<artifactId>[backcolor=transparent]configcenter-client[backcolor=transparent]</artifactId>
  4. [backcolor=transparent]    [backcolor=transparent]<version>[backcolor=transparent]1.0.2[backcolor=transparent]</version>
  5. [backcolor=transparent]</dependency>

代码示例:
  1. [backcolor=transparent]import[backcolor=transparent] java[backcolor=transparent].[backcolor=transparent]io[backcolor=transparent].[backcolor=transparent]IOException[backcolor=transparent];
  2. [backcolor=transparent]import[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]edas[backcolor=transparent].[backcolor=transparent]configcenter[backcolor=transparent].[backcolor=transparent]config[backcolor=transparent].[backcolor=transparent]ConfigChangeListener[backcolor=transparent];
  3. [backcolor=transparent]import[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]edas[backcolor=transparent].[backcolor=transparent]configcenter[backcolor=transparent].[backcolor=transparent]config[backcolor=transparent].[backcolor=transparent]ConfigService[backcolor=transparent];
  4. [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]class[backcolor=transparent] [backcolor=transparent]ConfigCenter[backcolor=transparent] [backcolor=transparent]{
  5. [backcolor=transparent]    [backcolor=transparent]// 属性/开关
  6. [backcolor=transparent]    [backcolor=transparent]private[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] config [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]""[backcolor=transparent];
  7. [backcolor=transparent]    [backcolor=transparent]//初始化的时候,给配置添加监听
  8. [backcolor=transparent]    [backcolor=transparent]private[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] initConfig[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  9. [backcolor=transparent]        [backcolor=transparent]ConfigService[backcolor=transparent].[backcolor=transparent]addListener[backcolor=transparent]([backcolor=transparent]"YourDataId"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"YourGroup"[backcolor=transparent],
  10. [backcolor=transparent]                [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]ConfigChangeListener[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  11. [backcolor=transparent]                    [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] receiveConfigInfo[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent] configInfo[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  12. [backcolor=transparent]                        [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
  13. [backcolor=transparent]                            [backcolor=transparent]//当配置更新后,马上获取新的配置
  14. [backcolor=transparent]                            config [backcolor=transparent]=[backcolor=transparent] configInfo[backcolor=transparent];
  15. [backcolor=transparent]                            [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]out[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]configInfo[backcolor=transparent]);
  16. [backcolor=transparent]                        [backcolor=transparent]}[backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]Exception[backcolor=transparent] e[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  17. [backcolor=transparent]                            e[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
  18. [backcolor=transparent]                        [backcolor=transparent]}
  19. [backcolor=transparent]                    [backcolor=transparent]}
  20. [backcolor=transparent]                [backcolor=transparent]});
  21. [backcolor=transparent]    [backcolor=transparent]}
  22. [backcolor=transparent]    [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] main[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent][][backcolor=transparent] args[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]throws[backcolor=transparent] [backcolor=transparent]IOException[backcolor=transparent] [backcolor=transparent]{
  23. [backcolor=transparent]        [backcolor=transparent]// 如果使用spring,此类等同于init方法。
  24. [backcolor=transparent]        initConfig[backcolor=transparent]();
  25. [backcolor=transparent]        [backcolor=transparent]// 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。
  26. [backcolor=transparent]        [backcolor=transparent]while[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]true[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  27. [backcolor=transparent]            [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
  28. [backcolor=transparent]                [backcolor=transparent]Thread[backcolor=transparent].[backcolor=transparent]sleep[backcolor=transparent]([backcolor=transparent]1000[backcolor=transparent]);
  29. [backcolor=transparent]            [backcolor=transparent]}[backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]InterruptedException[backcolor=transparent] e[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  30. [backcolor=transparent]            [backcolor=transparent]}
  31. [backcolor=transparent]        [backcolor=transparent]}
  32. [backcolor=transparent]    [backcolor=transparent]}
  33. [backcolor=transparent]    [backcolor=transparent]// 通过get接口把配置值暴露出去使用
  34. [backcolor=transparent]    [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] getConfig[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  35. [backcolor=transparent]        [backcolor=transparent]return[backcolor=transparent] config[backcolor=transparent];
  36. [backcolor=transparent]    [backcolor=transparent]}
  37. [backcolor=transparent]}

展开
收起
猫饭先生 2017-10-26 10:27:00 1600 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载
网易 NEI 接口管理解决 方案 立即下载
如何实现应用的持续发布 立即下载