apollo=1.6.2
相关链接:
配置多种加载方式:内部硬编码、配置文件、环境变量、启动参数、基于数据库;
配置需要治理:
Eureka:
MetaServer :
NginxLB
在配置中心中,一个重要的功能就是配置发布后实时推送到客户端。
apollo.refreshInterval
来覆盖,单位为分钟。管理员工具 ——> 系统参数 ——> 搜索 key—— organizations
,按照原有的 JSON 格式即可创建;
管理员工具 ——> 用户管理
<dependency>
<groupId>com.ctrip.framework.apollogroupId>
<artifactId>apollo-clientartifactId>
<version>1.6.2version>
dependency>
package top.simba1949;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
/**
* @author Anthony
* @date 2020/7/24 16:22
*/
public class Application {
/**
* 需要在环境参数配置或者配置文件配置
* 环境参数配置:
* 需要在 VM Options 指定app.id 、evn、dev_meta地址
* -Dapp.id=app-learn -Denv=DEV -Ddev_meta=http://192.168.8.12:8080
*
* 配置文件配置:
*
* @param args
*/
public static void main(String[] args) {
while (true){
try {
Thread.sleep(5000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
Config config = ConfigService.getAppConfig();
Boolean smsEnable = config.getBooleanProperty("sms.enable", null);
System.out.println("smsEnable is " + smsEnable);
}
}
}
集群不推荐使用配置文件,推荐使用 VM Options
<dependency>
<groupId>com.ctrip.framework.apollogroupId>
<artifactId>apollo-clientartifactId>
<version>1.6.2version>
dependency>
server.port=8082
# 指定 appid
app.id = apollo-integrated-spring-boot
# 集成 spring-boot 开启 apollo
apollo.bootstrap.enable = true
# 指定 namespace (多个使用英文逗号分隔)
apollo.boootstrap.namespaces = application
# 指定 mete-server
uat.meta = http://192.168.8.10:8080
fat.meta = http://192.168.8.11:8080
pro.meta = http://192.168.8.12:8080
package top.simba1949.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Anthony
* @date 2020/7/25 15:27
*/
@RestController
@RequestMapping("test")
public class TestController {
@Value("${sms.enable}")
private Boolean smsEnable;
@GetMapping("sms")
public Boolean getSmsEnableStr(){
return smsEnable;
}
@GetMapping("value")
public String getValueByKey(@Value("${test.key}")String value){
System.out.println("value is " + value);
return value;
}
}
package top.simba1949;
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @EnableApolloConfig : 开启 apollo
* @author Anthony
* @date 2020/7/25 15:10
*/
@EnableApolloConfig
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
-Denv=dev