一、集成 OpenFegin
1、添加依赖
<!-- openFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、开启 OpenFegin
@EnableFeignClients
@SpringBootApplication
@MapperScan(basePackages = "org.qiu.mapper")
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
3、编写 Client
/**
* @Description:
* @Author: QiuXuan
* @Email: qiu_2022@aliyun.com
* @Project: creativityHub
* @Date: 2024/5/19 11:17
* @Version 1.0
* @Since 1.0
**/
@FeignClient("snowflake-id-generate")
public interface IdClient {
@GetMapping("/generateId")
Long generateId();
}
4、使用远程服务
/**
* @Description:
* @Author: QiuXuan
* @Email: qiu_2022@aliyun.com
* @Project: creativityHub
* @Date: 2024/5/19 10:31
* @Version 1.0
* @Since 1.0
**/
@RestController
public class UserController {
@Resource
private IdClient idClient;
@GetMapping("/id")
public String getId() {
Long id = idClient.generateId();
return "User ID: " + id;
}
}
5、测试
二、报错解决方案
1、报错信息
2、报错解决
修改依赖【在 nacos 中排除 ribbon 依赖,加入 spring-cloud-loadbalancer 依赖,不然 loadbalancer 无效】:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<!-- nacos客户端依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2023.0.0.0-RC1</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
一 叶 知 秋,奥 妙 玄 心