spring-cloud-alibaba-demo
四、搭建整合nacos
docker-compose.yaml安装nacos
java
version: '3'
services:
nacos:
# 注意 2.0 不需要额外安装数据库了,docker run --name nacos-standalone -e MODE=standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:2.0.3
image: 'nacos/nacos-server:2.0.3'
restart: always
container_name: nacos
environment:
# 启动模式 单机
MODE: 'standalone'
# nacos默认端口号
NACOS_SERVER_PORT: 8848
# # 是否开启权限系统
# NACOS_AUTH_ENABLE: 'true'
# volumes:
# - /usr/local/app/minio/data:/data
# - /usr/local/app/minio/config:/root/.minio
# command:
# server /data
ports:
- '8848:8848'
- '9848:9848'
- '9849:9849'
#在当前目录打开终端,使用命令 docker-compose up -d 即可运行;
#在当前目录打开终端,使用命令 docker-compose down 即可运行;
安装完成后 http://127.0.0.1:8848/nacos 默认用户名和密码都是 nacos 进入后台管理页面
五、 整合nacos 注册中心,新建cloud-system模块
cloud-system模块中pom.xml添加nacos依赖
java
<!--添加nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置文件中添加配置:
java
# nacos 地址
spring
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
# 应用
application:
# 应用名称
name: cloud-system-service
启动类上加上注解开启 @EnableDiscoveryClient 服务注册
发现服务已经注册上来了:
java
@RequiredArgsConstructor
@RequestMapping("/v1/nacos")
@RestController
public class NacosController {
private final DiscoveryClient discoveryClient;
@GetMapping("/get")
public R get(){
List<ServiceInstance> instances = discoveryClient.getInstances("cloud-system-service");
ServiceInstance serviceInstance = instances.get(0);
// 获取到nacos注册中心上的服务ip以及端口
String host = serviceInstance.getHost();
int port = serviceInstance.getPort();
return R.data(host+":"+port);
}
}
测试发送get请求获取信息:
json
{
"code": 200,
"success": true,
"data": "10.113.229.45:8000",
"msg": "操作成功"
}