nacos服务注册与发现
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。这几句话是从nacos官网截取的,关于nacos的介绍,可以直接上官网去查看 nacos快速开始。话不多说,我们看一个nacos做服务注册发现的示例。
nacos注册中心服务
nacos的注册中心支持Linux/Unix/Mac/Windows操作系统,推荐Linux/Unix/Mac上使用。我们下载一个nacos服务在Windows上做示例用。
nacos的服务包可以在GitHub中下载 https://github.com/alibaba/nacos/releases ,当前有2.0.0版本和1.4.1版本,我们下载1.4.1版本
下载好的nacos-server包解压后,到bin目录下面使用命令cmd startup.cmd -m standalone
启动nacos注册中心服务,注意单机版的一定要添加 -m standalone表示为单机版,否则启动报错
单机版的nacos无法在bin目录双击startup.cmd启动,因为无法带进-m standalone启动参数,所以推荐在命令窗口执行启动
启动后,可以在启动日志中看到,Nacos 1.4.1版本,Running in stand alone mode单机版模式,端口Port: 8848,控制台Console: http://192.168.187.1:8848/nacos/index.html
在浏览器中输入http://192.168.187.1:8848/nacos/index.html ,输入默认的用户名/密码 nacos/nacos,即可登录到nacos控制台,至此,nacos注册中心完成。
nacos服务注册与发现
nacos-provider
pom文件完整的依赖关系
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
<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>
</dependencies>
</dependencyManagement>
application.properties 中添加注册中心配置
server.port=8080
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
springboot启动主类
@EnableDiscoveryClient
@SpringBootApplication
public class NacosProviderApplication{
public static void main(String[] args) {
SpringApplication.run(NacosClientApplication.class, args);
}
}
提供一个供访问的Controller
@RestController
public class HelloController {
@GetMapping(value = "/hello")
public String hello(String name) {
return "Hello: " + name + " , I am provider";
}
}
启动正常启动后,工程启动日志可以看到如下启动信息,删除了日志前面的时间信息
nacos registry, DEFAULT_GROUP nacos-provider 192.168.187.1:8080 register finished
Started NacosProviderApplication in 7.522 seconds (JVM running for 8.225)
[fixed-localhost_8848] [subscribe] nacos-provider+DEFAULT_GROUP
表示nacos注册成功,本服务IP为192.168.187.1,端口8080,在nacos的分组为DEFAULT_GROUP分组
到nacos控制台可以看到
点击操作栏的详情,可以看到服务的详情信息
再通过反问的url测试一下 http://localhost:8080/hello?name=zhangqi
至此,nacos-provider注册成功
nacos-client
nacos-client工程与nacos-provider工程类似
pom文件相同,这里不再列出
properties配置文件,设置工程名nacos-client,设置端口号8081
server.port=8081
spring.application.name=nacos-client
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
主启动类相同,不再列出
访问类
@RestController
public class ConsumerController {
@Autowired
RestTemplate restTemplate;
@LoadBalanced
@Bean
public RestTemplate rest() {
return new RestTemplate();
}
@RequestMapping("/hi")
public String hello(String name) {
return restTemplate.getForObject("http://nacos-provider/hello?name=" + name, String.class);
}
}
工程测试
启动nacos-client和nacos-provider工程,在注册中心可以看到两个服务均注册到nacos注册中心
在浏览器输入nacos-client的访问地址 http://localhost:8081/hi?name=zhangqi ,看是否可以请求到nacos-provider的信息
至此,nacos服务注册和发现的小demo完成。
目录
nacos注册中心服务
nacos服务注册与发现
nacos-provider
nacos-client
工程测试
还没有评论,来说两句吧...