服务调用—高并发场景微服务实战(十一)
Hello,牛油们好,我是程序员Alan.
在前两篇文章中,我们引入Nacos完成了服务注册与发现和分布式配置中心,可以将所有的服务统一的管理起来,方便服务建调用。本篇我们将使用Feign实现服务间调用。
几种服务调用方式
服务间的调用有两种常见方式:RPC与HTTP,RPC(Remote Produce Call ,远程过程调用),速度快,效率高。热门的Dubbo,、gRPC 等,都是RPC的典型代表。HTTP协议( HyperText Transfer Protocol,超文本传输协议 ),是应用最广泛的一种网络传输协议。目前热门的RESTful形式的开发方式,就是通过HTTP协议来实现的,RestTemplate、Feign等都是HTTP的典型代表。
Feign的应用
1.添加依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--nacos 2021 版本已经没有自带ribbon的整合,所以需要引入另一个支持的jar包 loadbalancer--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency>
2.启动类添加注解 @EnableFeignClients
@Slf4j @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class TicketCenterApplication { public static void main(String[] args) { ConfigurableApplicationContext run = SpringApplication.run(TicketCenterApplication.class, args); log.info("========port:{}========",run.getEnvironment().getProperty("server.port")); log.info("========服务器启动完毕========"); } }
3.Feign接口编写
@FeignClient(name = "air-xiamen") public interface AirXiaMenService { @PostMapping(value = "ticket/query",headers = {"Accept=application/json", "Content-Type=application/json"}) String QueryTicketInfo(String request); }
4. 使用Feign接口
直接 @Autowired/@Resource像采用本地接口一样使用即可。
站在巨人的肩膀上
- SpringCloud微服务实战—码闻强
说到高并发和微服务,你是不是和我一样有很多的困惑? -知道高并发系统开发知识,是获取大厂Offer的利器,可是工作中遇不到高并发的需求场景。 -了解过微服务开发、高并发系统开发理论,苦于没实战经验。 为了帮助其他有这些困惑的朋友,我决定以一个虚拟的高并发场景的微服务系统为主线,一步步将技术点串联起来,系统性从 0 到 1 的创造一个高并发场景的微服务系统。