nacos和openfeign使用

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.新建一个配置
nacos和openfeign使用_第1张图片

Data ID格式为 {applicationName}-{profile}.yaml,配置内容为yaml格式 ,点击保存,使用配置内容要打上@RequestScope注解,如果需要修改配置,点击修改保存即可,不用重启服务。

也可以创建不同的namespace 和 Group 读取不同环境下的配置

你可能感兴趣的:(springcloud,java,spring,cloud,spring,boot)