nacos服务注册与发现

浅浅的花香味﹌ 2023-01-08 15:24 348阅读 0赞

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版本

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70

下载好的nacos-server包解压后,到bin目录下面使用命令cmd startup.cmd -m standalone启动nacos注册中心服务,注意单机版的一定要添加 -m standalone表示为单机版,否则启动报错

单机版的nacos无法在bin目录双击startup.cmd启动,因为无法带进-m standalone启动参数,所以推荐在命令窗口执行启动

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70 1

启动后,可以在启动日志中看到,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注册中心完成。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70 2

nacos服务注册与发现

nacos-provider

pom文件完整的依赖关系

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>2.2.5.RELEASE</version>
  5. <relativePath/> <!-- lookup parent from repository -->
  6. </parent>
  7. <properties>
  8. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  9. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  10. <java.version>1.8</java.version>
  11. <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter</artifactId>
  17. </dependency>
  18. <!-- SpringMVC -->
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23. <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
  24. <dependency>
  25. <groupId>com.alibaba.cloud</groupId>
  26. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  27. <version>2.2.1.RELEASE</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>com.alibaba.cloud</groupId>
  31. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  32. <version>2.2.1.RELEASE</version>
  33. </dependency>
  34. </dependencies>
  35. <dependencyManagement>
  36. <dependencies>
  37. <dependency>
  38. <groupId>org.springframework.cloud</groupId>
  39. <artifactId>spring-cloud-dependencies</artifactId>
  40. <version>${spring-cloud.version}</version>
  41. <type>pom</type>
  42. <scope>import</scope>
  43. </dependency>
  44. </dependencies>
  45. </dependencyManagement>

application.properties 中添加注册中心配置

  1. server.port=8080
  2. spring.application.name=nacos-provider
  3. spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

springboot启动主类

  1. @EnableDiscoveryClient
  2. @SpringBootApplication
  3. public class NacosProviderApplication{
  4. public static void main(String[] args) {
  5. SpringApplication.run(NacosClientApplication.class, args);
  6. }
  7. }

提供一个供访问的Controller

  1. @RestController
  2. public class HelloController {
  3. @GetMapping(value = "/hello")
  4. public String hello(String name) {
  5. return "Hello: " + name + " , I am provider";
  6. }
  7. }

启动正常启动后,工程启动日志可以看到如下启动信息,删除了日志前面的时间信息

  1. nacos registry, DEFAULT_GROUP nacos-provider 192.168.187.1:8080 register finished
  2. Started NacosProviderApplication in 7.522 seconds (JVM running for 8.225)
  3. [fixed-localhost_8848] [subscribe] nacos-provider+DEFAULT_GROUP

表示nacos注册成功,本服务IP为192.168.187.1,端口8080,在nacos的分组为DEFAULT_GROUP分组

到nacos控制台可以看到

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70 3

点击操作栏的详情,可以看到服务的详情信息

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70 4

再通过反问的url测试一下 http://localhost:8080/hello?name=zhangqi

20210121112334437.JPG

至此,nacos-provider注册成功

nacos-client

nacos-client工程与nacos-provider工程类似

pom文件相同,这里不再列出

properties配置文件,设置工程名nacos-client,设置端口号8081

  1. server.port=8081
  2. spring.application.name=nacos-client
  3. spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

主启动类相同,不再列出

访问类

  1. @RestController
  2. public class ConsumerController {
  3. @Autowired
  4. RestTemplate restTemplate;
  5. @LoadBalanced
  6. @Bean
  7. public RestTemplate rest() {
  8. return new RestTemplate();
  9. }
  10. @RequestMapping("/hi")
  11. public String hello(String name) {
  12. return restTemplate.getForObject("http://nacos-provider/hello?name=" + name, String.class);
  13. }
  14. }

工程测试

启动nacos-client和nacos-provider工程,在注册中心可以看到两个服务均注册到nacos注册中心

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2kxMjAx_size_16_color_FFFFFF_t_70 5

在浏览器输入nacos-client的访问地址 http://localhost:8081/hi?name=zhangqi ,看是否可以请求到nacos-provider的信息

20210121112446502.JPG

至此,nacos服务注册和发现的小demo完成。

目录

nacos注册中心服务

nacos服务注册与发现

nacos-provider

nacos-client

工程测试


发表评论

表情:
评论列表 (有 0 条评论,348人围观)

还没有评论,来说两句吧...

相关阅读

    相关 nacos服务注册发现

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容