微服务 之 nacos

下载 配置 启动nacos

1 . 下载地址 并解压

在这里插入图片描述
2. 直接启动会报错 (如图下)
在这里插入图片描述
解决方案

  1. bin/startup.cmd cluster集群模式 改为 standlone 单例模式
set MODE="standalone"
  1. conf/application.properties 配置 集群模式下的数据库
    在这里插入图片描述

启动

# 使用derby +jraft的内嵌数据库启动集群模式
./startup.cmd -p embedded

# 使用 -m standalone 启动单机模式(或者如上面 改cmd 里面为单例 二选一)
./startup.cmd -m standalone 

地址: http://localhost:8848/nacos/index.html
账户密码 默认为  nacos   nacos

在这里插入图片描述

nacos 整合进 spring cloud

1.导包
        implementation('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2.2.1.RELEASE')
        implementation('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE')
2.配置bootstrap.yaml
server:
  port: 7071
spring:
  profiles:
    active: dev
  application:
    name: config-client-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        shared-dataids: common.yml #公共配置文件

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

3.测试 配置中心是否有效

1 进入Nacos server网页端
在这里插入图片描述

在这里插入图片描述
编写 代码

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${demo.id}")
    private Integer id;

    @Value("${demo.name}")
    private String name;
    
    @RequestMapping("/id")
    public Integer id() {
        return id;
    }
    @RequestMapping("/name")
    public String name() {
        return name;
    }

查看效果 是否从配置中心读取配置成功
在这里插入图片描述

3.测试 注册中心是否有效

新建一个 提供远程服务的模块 nacos-api-service
在这里插入图片描述
此服务 只用注册到 注册中心 和提供一个接口 ,配置文件 和上面 bootstrap.yaml 一样即可 记得改一下端口

nacos-config-client同时 引 openfegin
        implementation('org.springframework.cloud:spring-cloud-starter-openfeign')

配置 远程接口


@FeignClient(value = "nacos-api-service")
public interface RemoteService {


    @GetMapping("/user/get")
    User getUser();
}

controller 层调用

    @Autowired
    RemoteService remoteService;

    @RequestMapping("/getUser")
    public User getUser() {
        return remoteService.getUser();
    }

方法2 ,如果不想用 fegin 调用可以 直接 用 RestTemplate

//注入 RestTemplate 
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

controller 层调用

    @Autowired
    RestTemplate restTemplate;
    
    @RequestMapping(value = "/getUser2", method = RequestMethod.GET)
    public User getUser2() {
        return restTemplate.getForObject("http://nacos-api-service/user/get", User.class);
    }

页面查看效果 以及 进nacos 管理页面查看 服务情况

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值