1.概念
nacos=eureka(服务注册中心)+config-server(配置中心)+bus(消息总线)
2.docker安装nacos(简单方法)
docker pull nacos/nacos-server:1.3.1
docker run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:1.3.1
访问http:ip:8848/nacos
账号密码都是nacos
3.使用
1.创建product项目和order项目
2.application.yml文件
server:
port: 8082
spring:
application:
name: service-order #service-product
####### 数据源的相关配置
datasource:
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://127.0.0.1:3306/cloud_alibaba_starter?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
username: root
password: 123456
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
mybatis-plus:
mapper-locations: classpath*:/mapper/*.xml
type-aliases-package: com.levi.pojo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.启动类上打上***@EnableDiscoveryClient***注解
启动项目,nacos控制台的服务列表可以看到服务名称
4.product服务调用order服务
1.调用方启动类上打上 @EnableFeignClients({"包名"})
注解,启用feign客户端
2.被调用方接口打上@FeignClient(value = "当前服务名称")
定义feign客户端
3.feign添加日志
# 单独某个服务的feign配置
feign:
client:
config:
# 配置服务提供者的名称
service-order:
loggerLevel: FULL # 日志级别
connectTimeout: 1000 # 连接超时时间
readTimeout: 2000 # 读取超时时间
# 开启feign的日志
logging:
level:
com.levi.api.controller.order.OrderControllerApi: debug
# root: debug
4.在调用方上注入被调用方 食用即可
@RestController
@Slf4j
@RequestScope //自动刷新配置注解
public class ProductController implements ProductControllerApi {
@Value("${config.info}")
private String info;
@Value("${server.port}")
private String port;
@Autowired
private ProductService productService;
//注入被调用方
@Autowired
private OrderControllerApi orderControllerApi;
@Override
public Boolean save() {
Product product = new Product();
product.setId(1);
product.setName("apple");
product.setStock(100);
productService.save(product);
// log.info("保存商品成功");
System.out.println("保存商品成功");
return true;
}
}
5.nacos当配置中心
在项目中创建一个bootstrap.yml文件
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
##### 配置访问 MY_GROUP dev环境下的配置 文件
# namespace: f1388316-3878-4846-bb73-897cb1de8dec
# group: MY_GROUP
1.新建一个配置
Data ID格式为 {applicationName}-{profile}.yaml,配置内容为yaml格式 ,点击保存,使用配置内容要打上@RequestScope
注解,如果需要修改配置,点击修改保存即可,不用重启服务。
也可以创建不同的namespace 和 Group 读取不同环境下的配置