部署Nacos
拉取nacos-server镜像
docker pull nacos/nacos-server:v2.1.0-slim
创建nacos数据库存储数据
我们基于Docker来部署Nacos的注册中心,首先我们要准备MySQL数据库表,用来存储Nacos的数据。由于是Docker部署,将SQL文件导入到Docker中的MySQL容器中:
部署nacos在docker容器中
在虚拟机/root
目录下创建一个nacos文件夹, 再创建一个custom.env文件,内容如下:
其中的nacos/custom.env文件中,有一个MYSQL_SERVICE_HOST也就是mysql地址,
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=8.134.57.218
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
然后,将nacos目录上传至虚拟机的/root目录。
进入root目录,然后执行下面的docker命令:
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0-slim
- docker run -d: 这部分启动一个后台(detached)容器,使容器在后台运行。
- –name nacos: 指定容器的名称为 “nacos”。
- –env-file ./nacos/custom.env: 从指定的环境变量文件 ./nacos/custom.env 中读取环境变量。这可以包含 Nacos 服务的配置信息。
- -p 8848:8848 -p 9848:9848 -p 9849:9849: 将容器内部的端口映射到主机上。这里将 Nacos 默认的三个端口 8848、9848、9849 映射到主机的对应端口。
- –restart=always: 在容器退出时,总是重新启动容器。这样可以确保 Nacos 服务在意外退出后自动重新启动。
- nacos/nacos-server:v2.1.0-slim: 指定要运行的 Docker 镜像的名称和版本。这里使用的是 Nacos 的官方镜像 nacos/nacos-server 的 v2.1.0-slim 版本。
启动完成后,访问下面地址:http://192.168.164.128:8848/nacos/,注意将192.168.164.128替换为你自己的虚拟机IP地址。首次访问会跳转到登录页,账号密码都是nacos
服务注册
- 引入依赖
- 配置Nacos地址
- 启动 !!!
引入依赖
<spring.boot.version>2.7.12</spring.boot.version>
<spring-cloud.version>2021.0.3</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
<!--spring cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--nacos 服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--负载均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!--OK http 的依赖 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>
修改配置文件
spring:
cloud:
nacos:
discovery:
server-addr: 8.134.57.218:8848
启动类加上注解
@EnableFeignClients
@EnableDiscoveryClient
:::danger
Nacos 启动!
:::