源码:https://gitee.com/qing11/learning-demo.git
创建一个父子工程,子工程为:订单服务、用户服务。
nacos服务端安装:Nacos的安装_程序搬砖员的博客-CSDN博客
一、Spring Boot整合Nacos客户端1、父工程引入pom.xml,对所有子工程进行版本管理
在
com.alibaba.cloud
spring-cloud-alibaba-dependencies
2.2.5.RELEASE
pom
import
2、子工程引入pom.xml
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
3、子工程的配置文件:application.properties
#服务名称 spring.application.name=orderservice #nacos的地址 spring.cloud.nacos.server-addr=127.0.0.1:8848
4、启动子项目,把订单服务、用户服务注册进入nacos服务端
二、Nacos的简单使用服务之间的调用使用 RestTemplate 进行调用。
这里是 订单服务 调用 用户服务。
1、订单服务的配置:
package com.example.orderservice.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
@Bean
@LoadBalanced // 开启负载均衡 Ribbon, 发送的请求都会被Ribbon拦截。必须使用应用名代替ip,否则报错
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
注意:@LoadBalanced 是 Ribbon 负载均衡的注解,必须要使用,Ribbon的包已经在Nacos中了,不需要再次单独引入了。
2、业务代码:
@Autowired private RestTemplate restTemplate; // 2.利用RestTemplate发起http请求,查询用户 // 2.1.url路径 String url = "http://userservice/user/" + order.getUserId(); // 2.2.发送http请求,实现远程调用 User user = restTemplate.getForObject(url, User.class);
注意:userservice 是用户服务的服务名称,这里使用 RestTemplate 进行调用服务,必须是要写服务名称的。



