Nacos搭建流程
要使用nacos,我们首先得下载它的服务端,下载地址https://github.com/alibaba/nacos/releases
根据你的Spring Cloud Alibaba版本来下载需要使用的版本
我这里是tar.gz的,下载完成后,解压,进入bin目录
执行sh startup.sh -m standalone
通过docker安装nacos服务端
docker pull nacos/nacos-server:1.1.3
docker run -d --name nacos -p 8848:8848 --env MODE=standalone nacos/nacos-server:1.1.3
然后通过浏览器访问http://127.0.0.1:8848/nacos/
此时界面如图所示
输入账号nacos,密码nacos后,进入管理界面
搭建一个Spring Cloud Alibaba项目,在父项目中,Springboot版本2.1.7,SpringCloud版本Greenwich.SR2,SpringCloudAlibaba版本2.1.1.RELEASE
<spring-cloud.version>Greenwich.SR2</spring-cloud.version> <spring-cloud-alibaba.version>2.1.1.RELEASE</spring-cloud-alibaba.version>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <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> </dependencies> </dependencyManagement>
在具体的子项目中放入如下依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
添加配置
spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 application: name: user
启动项目,端口8080,在管理界面中可以看到
我们的项目已经被注册进来了。现在我们来建一个类似的项目,端口号8081,编写一个测试Controller,来查找之前的user项目。
@RestController public class TestController { /** * 无论使用哪种注册中心(Eureka,Zookeeper,Consul),该DiscoveryClient是通用的 * 它是一个接口 */ @Autowired private DiscoveryClient discoveryClient; @GetMapping("/test") public List<ServiceInstance> findUser() { return discoveryClient.getInstances("user"); } }
运行后,访问如下
如果user启动多个实例,这里也可以获取多个user的信息