一、Nacos安装

1.下载

在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:

GitHub主页:https://github.com/alibaba/nacos

GitHub的Release下载页:https://github.com/alibaba/nacos/releases

windows版本使用nacos-server-1.4.1.zip包即可。

2.目录说明:

  • bin:启动脚本
  • conf:配置文件

3.端口配置

Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。

如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口

4.启动

启动非常简单,进入bin目录

然后执行命令即可:

  • windows命令:

startup.cmd -m standalone

  执行后的效果如图:

Nacos安装、服务注册和服务发现_spring

 

5.登录nacos

浏览器访问:http://localhost:8848/nacos/index.html进入登录页面

账号密码均为:nacos

 

 二、服务注册到nacos

Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。

主要差异在于:

  • 依赖不同
  • 服务地址不同

1.引入依赖

在父工程的pom文件中的<dependencyManagement>中引入SpringCloudAlibaba的依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.6.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

然后在user-service和order-service中的pom文件中引入nacos-discovery依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.配置nacos地址

在user-service和order-service的application.yml中添加nacos地址:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

3.重启

重启微服务后,登录nacos管理页面,可以看到微服务信息:

 Nacos安装、服务注册和服务发现_微服务_02

 

 三、服务发现

 

在order-service的OrderApplication中,给RestTemplate这个Bean添加一个@LoadBalanced注解:

@Bean
   @LoadBalanced
   public RestTemplate restTemplate(){
       return new RestTemplate();
   }

  

 

修改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法。修改访问的url路径,用服务名代替ip、端口:

String url="http://userservice/user/"+ order.getUserId();
        User user = restTemplate.getForObject(url, User.class);