目录
前言
接着分布式项目搭建,根据这个项目来演示一遍配置nacos
复制服务
复制出来两个相同的项目,命名不同就是为了用这两个项目进行演示
复制出来的pom文件artifactId别忘记修改了,要不然服务左下角不会出现小蓝
父pom管理刚刚加上的两个项目
添加依赖
父pom文件引入alibaba微服务依赖的版本管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
当前服务的pom文件需要添加的依赖,没有写版本号,因为在父pom文件中版本管理了
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在右侧maven里面确定依赖加了进来
application.properties中配置
# 应用名称(nacos会将该名称作为服务名) spring: application: name: order-service cloud: nacos: discovery: server-addr: 127.0.0.1:8848 password: nacos username: nacos # 用了隔离各个服务,比如dev,test啥的 namespace: public
上面配置放到两个服务的配置文件中
更多配置:Nacos discovery · alibaba/spring-cloud-alibaba Wiki · GitHub
启动springboot应用,nacos管理端界面查看是否成功注册
测试
使用RestTemplate进行服务调用,可以使用微服务名称 (spring.application.name)
String url = "http://order-service/add";
注意:需要添加@LoadBalanced注解
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
通过负载均衡器解析服务名称变成地址,负载均衡器默认采用轮训机制