目录
为什么使用配置中心?
有哪些组件可以作为配置中心来使用?
nacos作为配置中心。
nacos配置中心的客户端使用。---微服务。
在微服务中使用配置中心的配置文件。
多环境下的配置
不同的微服务会使用相同的配置。
apollo也是配置中心
搭建apollo服务端
客户端使用apollo
(1) nacos 它是阿里的产品,可以作为配置中心。
(2) apollo 携程的产品。
(3) springcloud config 这是springcloud自带的配置
(1) nacos服务端只需要下载nacos的压缩文件。(2)解压并启动nacos服务器。
必须使用bootstrap.properties[yml] 这个配置文件的加载顺序,高于application.properties
# 必须微服务的名称 因为他会根据该名称在配置中心找到与之对应的配置。
spring.application.name=shop-product
# 配置 配置中心的地址
spring.cloud.nacos.config.server-addr=localhost:8848
在微服务中必须引入nacos配置中心的依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos- config
读取配置文件的内容
@RestController
@RequestMapping("product")
@RefreshScope //解决实时刷新。
public class ProductController {
@Autowired
private ProductService productService;
@Value("${teacher.name}") //必须OSS:---bucket key secret 放入配置文件中。
public String name;
@GetMapping("hello")
public String hello(){
return name;
}
@GetMapping("findById")
public Product findById(@RequestParam Integer pid){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return productService.findById(pid);
}
}
由于以后开发的环境有很多,比如开发环境,测试环境,线上环境。 这些环境使用的配置不尽相同,如 果我们频繁的修改配置内容,不实际。 所以我们会为不同的环境创建不同的配置文件,配置为了区分不 同的环境中的配置。namespace.
微服务客户端使用命名空间。
#指定命名空间
spring.cloud.nacos.config.namespace=71aa1662-3935-4c03-9300-673f1583e1dd
如果数据源的地址发生改变,那么必须把所有微服务的数据源的地址都要修改一遍。
#引入额外的配置内容
spring.cloud.nacos.config.extension-configs[0].data-id=datasource
# 是否配置实时刷新
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=nacos-discovery
(1)环境准备 jdk1.8以上 mysql必须5.6以上
(2)下载apollo服务端软件。
https://github.com/nobodyiam/apollo-build-scripts
(3)解压 创建两个数据库
(4)把相应的sql语句导入到不同的数据库中
(5)修改demo.sh中连接数据库的信息
(6)启动apollo服务端 git
(1)在apollo服务端创建项目
(2)发布项目的配置内容
com.ctrip.framework.apollo
apollo-client
1.1.0
app:
id: my-apollo
apollo:
meta: http://localhost:8080
bootstrap:
enabled: true