微服务搭建-配置中心Nacos

2022-02-18 20:57:26 浏览数 (1)

前言

目前测试成功的是SpringBoot 2.3.12.RELEASE 版本,更高的版本还不行。

现在IDEA创建项目默认的是2.6.3版本,还未找到对应的Nacos版本

服务器

下载地址:https://github.com/alibaba/nacos/releases/tag/1.4.0

服务端是使用Java开发的,同时支持Linux和Windows

环境要求

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8 。

注意

  1. 必须配置JAVA_HOME
  2. 路径中不能包含中文和数字,否则会报错此时不应有 nacos"logsjava_heapdump.hprof -XX:-UseLargePages"

安装

使用本地数据库不用配置 直接运行即可,使用MySQL就要修改一下配置文件,推荐使用MySQL方式。

使用本地数据库

Linux/Unix/Mac

启动命令(standalone代表着单机模式运行,非集群模式):

代码语言:javascript复制
sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

代码语言:javascript复制
bash startup.sh -m standalone

Windows

启动命令(standalone代表着单机模式运行,非集群模式):

代码语言:javascript复制
startup.cmd -m standalone

使用MySQL

新建一个实例名为nacos的数据库,并执行nacos/conf下的nacos-mysql.sql文件创建表

修改数据库配置

打开conf下的application.properties文件,修改以下配置

代码语言:javascript复制
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://dbtest.xhkjedu.com:13306/wn_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=_xhkjedu!@#07

修改为单机模式

如果不是部署nacos集群,则将模式修改为单机模式

打开bin/startup.cmd 文件,将MODEcluster改为standalone

修改完后双击bin/startup.cmd文件,启动成功,推荐在CMD中运行startup.cmd文件,这样如果报错能看到错误信息。

访问

打开浏览器访问:

http://localhost:8848/nacos/index.html

输入用户名/密码访问 nacos/nacos 登录nacos

添加配置

启动好Nacos之后,在Nacos添加如下的配置:

Data ID:nacos-config.properties Group:DEFAULT_GROUP 配置格式:Properties 配置内容:

代码语言:javascript复制
user.name=小明
user.age=18

客户端

依赖

注意Spring Boot和Nacos版本必须匹配

代码语言:javascript复制
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.3.12.RELEASE</version>
  <relativePath/>
</parent>

<dependencies>
  <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.5.RELEASE</version>
  </dependency>
</dependencies>

项目下添加配置文件bootstrap.properties

代码语言:javascript复制
spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

这样Application中就能取到值了

代码语言:javascript复制
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class SConfigApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(SConfigApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("user.name");
        String userAge = applicationContext.getEnvironment().getProperty("user.age");
        System.err.println("user name :" userName "; age: " userAge);
    }
}

运行就会打印

user name :小明; age: 18

0 人点赞