一、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
执行后的效果如图:
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管理页面,可以看到微服务信息:
三、服务发现
在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);