泰宁新闻网

apollo?Apollo?

泰宁新闻网 http://www.tainingxinwen.cn 2021-02-23 22:10 出处:网络
这里写的apollo和apollo?Apollo?,小编为您理一理 介绍 ​Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、

这里写的apollo和apollo?Apollo?,小编为您理一理

介绍

​ Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

了解 apollo 可以去 github 上 ,地址 https://github.com/ctripcorp/apollo

Quick start

快速开始 : https://github.com/ctripcorp/apollo/wiki/Quick-Start

Prerequisite

  • 项目下载地址,貌似只能在linux上跑,没有bat脚本 https://github.com/nobodyiam/apollo-build-scripts 这个链接下载就行了

  • 直接 在 linux/mac上用 git clone git@github.com:nobodyiam/apollo-build-scripts.git ,如果你下载在windows上还打开修改 发布到linux上 注意 换行符的不同 , 建议使用 yum install dos2unix 下载这个工具

  • 下载安装mysql 版本 ,并且 导入sql脚本

  • 建议内网使用开发 , 不建议远程服务器开发 ,

  • 修改 demo.sh 脚本 中 两个数据库配置信息

  • 启动 脚本就ok了

  • Future

  • apollo集群的注册中心是eureka , 默认端口是8080

  • 数据库 : mysql

  • AppId 项目名称

  • namespace 就是 每一个 配置的空间名 ,默认是application

  • 不会因为配置中心宕机,而无法读取配置服务,会本地缓存一份 , 地址/opt/data/{*appId*}/config-cache ,也可以自定义缓存路径 apollo.cacheDir=/opt/data/some-cache-dir

  • 支持本地开发 只需要 将配置 env=Local

  • Java Development

    启动配置参数 : 优先级从高到低

  • 第一个 jvm启动参数 -Dapollo.meta=http://1.1.1.1:8080,http://2.2.2.2:8080

  • Spring Boot配置文件 application.yml 或 bootstrap.yml 指定 apollo.meta=http://config-service-url

  • 系统环境变量 : System Environment APOLLO_META

  • server.properties 配置文件 , linux地址 : opt/settings/server.properties ,win : C:\opt\settings\server.properties

  • app.properties 配置文件 , 地址 : classpath:/META-INF/app.properties

  • 其他参数 打通小异 :

    env=DEV app.id=test // placeholder在运行时自动更新功能 apollo.autoUpdateInjectedSpringProperties=false

    maven依赖

    <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.0</version> </dependency>

    api开发

    // 打开 config Config config = ConfigService.getConfig("springboot.application"); //Config config = ConfigService.getAppConfig(); //监听配置变化事件只在应用真的关心配置变化,需要在配置变化时得到通知时使用 config.addChangeListener(configChangeEvent -> { Set<String> strings = configChangeEvent.changedKeys(); }); String key = "key1"; String value = "someDefaultValueForTheKey"; // 获取值 String outvalue = config.getProperty(key, value); System.out.println(outvalue);

    spring 快速开始

    配置文件开发

    1. 默认只有 application 这个namespace # will inject 'application' namespace in bootstrap phase apollo.bootstrap.enabled = true 2. 有多个namespace (加载顺序按照 写的先后顺序) apollo.bootstrap.enabled = true # will inject 'application', 'springboot.application'namespaces in bootstrap phase apollo.bootstrap.namespaces = application,springboot.application # put apollo initialization before logging system initialization

    Spring Placeholder的使用

    如果需要关闭placeholder在运行时自动更新功能,可以通过以下方式关闭 apollo.autoUpdateInjectedSpringProperties=false

    // key 为 timeout ,默认值为100 @Value("${timeout:100}") private int timeout;

    @ConfigurationProperties使用

    例如 redis.cache.expireSeconds 这样的key 存在 apollo服务器中 , 下面例子会自动将 expireSeconds 注入进去 , 但是这样有个问题就是 , 不会自动刷新配置 ..........

    @ConfigurationProperties(prefix = "redis.cache") public class SampleRedisConfig { private int expireSeconds; private int commandTimeout; }

    自动刷新 需要手动设置

    @ApolloConfigChangeListener(value = { ConfigConsts.NAMESPACE_APPLICATION, "springboot.application"}, interestedKeyPrefixes = {"dev."}, interestedKeys = {"dev.test"}) public void onChange(ConfigChangeEvent changeEvent) { logger.info("before refresh {}", myConfig.toString()); if (changeEvent.isChanged("dev.test")) { ConfigChange change = changeEvent.getChange("dev.test"); String newValue = change.getNewValue(); myConfig.setTest(newValue); } logger.info("after refresh {}", myConfig.toString()); }

    annotation 使用

  • @ApolloConfig
    • 用来自动注入Config对象
  • @ApolloConfigChangeListener
    • 用来自动注册ConfigChangeListener
  • @ApolloJsonValue
    • 用来把配置的json字符串自动注入为对象
    @ApolloConfig("FX.apollo") private Config yetAnotherConfig; //inject config for namespace FX.apollo @ApolloConfig("application.yml") private Config ymlConfig; //inject config for namespace application.yml // 原数据 jsonBeanProperty=[{"someString":"hello","someInt":100},{"someString":"world!","someInt":200}] @ApolloJsonValue("${jsonBeanProperty:[]}") private List<JsonBean> anotherJsonBeans;

    已有配置迁移

    可以将 application.yml 或 bootstrap.yml 换成 properties文件

    image

    灰度发布

    image

    可以看出 有个灰度列表 , 可以作为测试 发布出去 , 也可以取消

    apollo?Apollo?的相关问答如下:

    提问:阿波罗钢琴(APOLLO)品质和性价比怎么样?

    回答:阿波罗钢琴,2113英文名APOLLO,起源于日本滨松市,也是日5261本现代乐器的发源地.4102在这片亚洲音乐的热土上,也诞1653生了YAMAHA、KAWAI等日本著名钢琴品牌,与APOLLO共同代表着日本先进的制琴工艺.区别于其他钢琴品牌,APOLLO尊崇工匠的钻研与创新精神,在1986年独家专利技术Slide Soft System问世,颠覆了传统立式钢琴的演奏模式,以优化了阻尼装置和脚踏板高低音可控装置为核心竞争力,从而在演奏效果上足以媲美三角钢琴.与精湛的技艺不同的是,APOLLO钢琴的价格却很有竞争力,是日本民间普及度较高的钢琴,满足入门、演奏、艺术培训等多种用琴需求,也是东京艺术大学等高等学府的御用钢琴品牌.

    提问: APOLLO是什么意思

    回答:1. APOLLO的意思:太阳神阿波罗是希腊奥林珀斯十二主神之一,是宙斯与仙女勒托(Leto)的儿子,阿耳忒弥斯的孪生兄弟.阿波罗又名福波斯(Phoebus),意思是“...

    提问: 请问APOLLO这个英文什么意思

    回答:是 阿波罗,我最讨厌的神阿波罗(希腊文 Απολλων;拉丁文 Apollo )阿波罗 :ā bō luó 希腊神话中的太阳神.主神宙斯之子.主管光明、青春、医药、畜牧、音乐等.曾与...

    提问: apollo是什么意思

    回答:apollo apollo的中文翻译 以下结果由译典通提供词典解释 名词 n. 1.太阳神;【诗】太阳 2.美男子 以下结果来自互联网网络释义 apollo 1.阿波罗号宇宙飞船 “嫦娥一号”相...

    提问: APOLLO阿波罗钢琴怎么样?

    回答:琴很好,性价比高.只是工厂不太会做宣传,所以很多人不知道.

    提问: 请问这个apollo什么意思?

    回答:Apollo是阿波罗,他是宙斯与黑暗女神勒托的儿子,是希腊奥林珀斯十二主神之一.阿波罗是太阳神,在阿波罗身上找不到黑暗,他从不说谎,光明磊落,所以也称真理之神.还有一种媒体播放器也叫Apollo,一种汽车的牌子也叫这个.

    apollo?Apollo?的相关热门搜索词:

    apollo是什么牌子,apollo自动驾驶汽车,apollo是什么意思啊,apollo's triumph,apollon,apollo 11,apollo钢琴价格,apollonius,apollo 配置中心,apollo twin x,

    本文标题:apollo?Apollo?
    http://www.tainingxinwen.cn/qitaxinxi/620218.html

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消