引入服务发现依赖
Nacos:微服务当中的功能:注册中心和服务发现,配置中心
服务注册:
引入依赖spring-cloud-starter-alibaba-nacos-discovery
填写好配置类server-addr之后,即可便携的将当前服务注册到注册中心

下载Nacos,开箱即用
快速启动命令:start-up.cmd -m standalone(单节点模式)
默认地址 localhost:8848/nacos

远程调用依赖
spring-cloud-starter-openfeign
rest template.getforobject(url)(刚入门先学基础的,后面会升级)
负载均衡
spring-cloud-starter-loadbalancer
在Resttemplate加上@Loadbalance注解即可
java
第一段:配置类(声明 RestTemplate Bean)
@Configuration
public class OrderServiceConfig {
@Bean
@LoadBalanced <----负载均衡注解
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
第二段:Controller(调用方)
@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/order")
public Order getOrder(@RequestParam Long productId) {
// 关键:直接用服务名,LoadBalancer 自动解析成 ip:port
String url = "http://service-product/product?id=" + productId;
Product product = restTemplate.getForObject(url, Product.class);
Order order = new Order();
order.setId(1);
order.setPrice(8888);
order.setProducts(Collections.singletonList(product));
return order;
}
}
第三段:被调用的服务接口(提供方)
@RestController
public class ProductController {
@GetMapping("/product")
public Product getProduct(@RequestParam String productId) {
Product product = new Product();
product.setId(productId);
product.setName("商品" + productId);
return product;
}
}
配置中心依赖
spring-cloud-starter-alibaba-nacos-config
Nacos配置中心
命名空间:最大的分类,区别当前是开发或者测试等环境

设置完命名空间后,服务列表也会对应的变化

在项目中选择命名空间选择想要引入的命名空间的配置
spring.cloud.nacos.config.namespace

也可以把项目启动动特定的命名空间
配置如下
spring.cloud.nacos.discovery.namespace=你的命名空间ID
配置管理功能
可以选择一个环境,进行配置管理

分组其实就是区分一些公共配置和数据库配置的,正常来说都写在一个配置文件里就行

在项目中引入配置
在Spring.config.import下填写好刚刚创建的配置,开头是配置的名字如service-order.properties,后面接上分组?group=common
配置动态刷新
有两种方法,分别是 @ConfigurationProperties(prefix="order") @Refreshscope
我们在项目写一个测试类

并且在配置类里面写好默认值

当我们在Nacos里面更新配置后,我们的项目配置也会进行更新

同时我们编写一个监听方法,来监听配置的变化,只需要加上监听注解就可以监听事件,当然还有 NacosConfigManager

( NacosConfigManager更加底层,作为了解
)
控制台输出了变换后的配置值

总体来说,当出现配置冲突时,比如同名称什么的:原则是远程配置大于本地,新的配置大于老的配置,即Nacos 配置 > 本地 application.properties