目录
1. SpringCloud集成Nacos注册中心
1.1 添加pom.xml依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 接口提供者不需要。接口调用者,还需要使用loadbalancer做客户端负载均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
2.2 修改application.yml配置
spring:
application:
name: orderment
cloud:
nacos:
discovery:
server-addr: 192.168.xxx.xxx:8848,192.168.xxx.xxx:8848,192.168.xxx.xxx:8848
username: nacos
password: nacos
2.3 修改主启动类
主启动类上添加注解@EnableDiscoveryClient
2.4 配置具有LoadBalanced的RestTemplate
说明:
- 只有接口调用者才需要配置RestTemplate
- 这里是RestTemplate的使用方式。不同web客户端使用方式不同,可以参考spring-cloud-loadbalancer官网集成模块
@Configuration
public class RestTemplateConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
2.5 controller业务
说明:
- 有一个接口提供者payment,在nacos注册的服务名为payment
- IOC容器的RestTemplate有客户端负载均衡功能
- 能直接通过
http://服务名的方式访问接口提供者的接口。使用@LoadBalanced才能用服务吗进行访问
@RestController
public class OrderController {
public static final String PaymentSrv_URL = "http://payment";
@Resource
private RestTemplate restTemplate;
@GetMapping(value = "/consumer/pay/get/{id}")
public ResultData getPayInfo(@PathVariable("id") Long id) {
return restTemplate.getForObject(PaymentSrv_URL + "/pay/get/" + id, ResultData.class);
}
}
425

被折叠的 条评论
为什么被折叠?



