项目示例 - 2.服务注册 - 4.Nacos
关联知识:
- 分布式微服务 - 2.服务注册 - 5.Nacos
内容提要:
- 基本实现、隔离管理
服务注册实现
基本实现
- 建Module:微服务起名为nacos-provider
- 改pom:引入以下依赖
<dependencies>
<!--Nacos服务注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 写yml:在resources目录下创建application.yml文件,并做以下配置
server:
port: 8001
spring:
application:
# 服务注册时使用的别名
name: nacos-provider
cloud:
nacos:
discovery:
# nacos的地址
server-addr: localhost:8848
- 主启动:在src下创建如下主启动类
package learn.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosProvider {
public static void main(String[] args) {
SpringApplication.run(NacosProvider.class, args);
}
}
- 业务构建:创建如下controller类
package learn.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;
@RestController
@RequestMapping("/nacos/provider/")
public class ProviderController {
@Value("${spring.application.name} ${server.port}")
private String serverInfo;
@GetMapping("test")
public String test() {
return serverInfo+"\t"+ UUID.randomUUID();
}
}
- 测试:
- 启动nacos,能正常打开nacos首页
- 启动本微服务,在浏览器中输入
localhost:8001/nacos/provider/test
访问接口,能正确返回接口信息 - 再次查看nacos首页中 服务管理/服务列表 的页面,有显示nacos-provider的微服务,表明微服务注册成功
隔离管理
- 建Module:微服务起名为nacos-provider1
- 改pom:引入以下依赖(与nacos-provider微服务相同)
<dependencies>
<!--Nacos服务注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 写yml:在resources目录下创建application.yml文件,并做以下配置
server:
port: 8002
spring:
application:
# 服务注册时使用的别名
name: nacos-provider
cloud:
nacos:
discovery:
# nacos的地址
server-addr: localhost:8848
# nacos上已经创建好的命名空间的id
namespace: test
# 可以是任意组别名,但一般用相互约定好的组别名
group: test
- 主启动:在src下创建如下主启动类(与nacos-provider微服务类似)
package demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosProvider1 {
public static void main(String[] args) {
SpringApplication.run(NacosProvider1.class, args);
}
}
- 业务构建:创建如下controller类(与nacos-provider微服务类似)
package demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;
@RestController
@RequestMapping("/nacos/provider1/")
public class ProviderController {
@Value("${spring.application.name} ${server.port}")
private String serverInfo;
@GetMapping("test")
public String test() {
return serverInfo+"\t"+ UUID.randomUUID();
}
}
- 测试:
- 启动nacos,能正常打开nacos首页,且创建一个id、名称、描述都是test的命名空间
- 启动本微服务,在浏览器中输入
localhost:8002/nacos/provider1/test
访问接口,能正确返回接口信息 - 再次查看nacos首页中 服务管理/服务列表 的页面,在test命名空间下有显示nacos-provider的微服务,且group是test,表明微服务注册成功