网站首页 > 博客文章 正文
前言:
当我们的应用做了拆分,做成了一个个的微服务之后,就需要跨进程调用了,不像单体项目,可以进程内直接调用。
那么,微服务之间的跨进程调用都有哪些方式呢?
HTTP调用
首先最常见的我就是 HTTP 调用了,使用HTTP协议进行通信,通过HTTP请求和响应进行数据交换。常见的方式有以下几种:
RESTfuI API:
RESTfuI API是基于HTTP协议的一种设计风格,微服务可以通过直接发送HTTP请求和接收HTTP响应来进行通信。
框架/工具:可以使用Spring MVC等框架来实现RESTful风格的API,并通过HTTP客户端(如RestTemplate、Apache HttpClient、OkHttp)来发起请求。
Feign&OpenFeign:
OpenFeign是Spring Cloud中的一个组件,基于Feign进行了扩展和优化,可以通过定义接口和注解的方式来简化微服务之间的REST API调用。
OpenFeign支持集成服务发现、负载均衡(与Ribbon集成)、断路器(与Hystrix集成)等功能。
但是从Spring Cloud 2020版本开始,官方宣布Feign将不再维护和支持,推荐使用OpenFeign作为替代方案。再但是,随着SpringCloud 2022的发布,官方宣布OpenFeign将被视为功能完整。这意味着Spring Cloud团队将不再向模块添加新特性。只会修复bug和安全问题。
@HttpExchange:
在Spring 6.0 发布之后,Spring内置了一个HTTP客户端--@HttpExchange ,可以用它来代替 Feign和 OpenFeign。
Spring Cloud REST Client:
Spring Cloud提供了一些支持微服务之间HTTP调用的组件和库,如Spring CloudLoadBalancer、Spring Cloud Circuit Breaker等,可以与RestTemplate或WebClient等HTTP客户端结合使用。
RPC调用
除了 HTTP 外,用的比较多的还有 RPC 的方式。
Dubbo:
Dubbo是阿里巴巴开源的高性能RPC框架,主要用于Java开发。
提供了服务注册与发现、负载均衡、远程调用、容错等功能,支持大规模分布式应用的RPC调用。
gRPC:
gRPC是一个高性能、开源和通用的RPC框架,基于HTTP/2协议gRPC支持多种编程语言,并且提供了客户端和服务端的自动生成代码,支持双向流和多种认证方式。
同时也有Spring Cloud gRPC,用于在基于Spring的微服务架构中集成gRPC。
消息队列
多进程之间的通信,除了 HTTP、RPC 等直接调用以外,还经常用消息来做通信。
Kafka.RabbitMQ 以及 ActiveMQ 等,有很多这样的消息中间件可供选择。
服务网格
还有一种是新技术(其实也好多年了)--Service Mesh(服务网格),技术如lstio、Linkerd等提供了对微服务之间通信的控制和管理能力,包括负载均衡、故障处理、安全策略等,通过Sidecar代理实现微服务的通信和控制。
总结
以上是我们项目中经常使用的,在各个微服务之间的调用。
猜你喜欢
- 2025-04-01 Ribbon(ribbon可数吗)
- 2025-04-01 记一次Java语言Spring框架对接飞书原生审批流方案
- 2025-04-01 2025年SpringBoot调用第三方接口深度解析:程序员实战案例与避坑
- 2025-04-01 Spring Cloud实战 | 第五篇:Spring Cloud整合OpenFeign
- 2025-04-01 深度解析Spring Cloud Ribbon的实现源码及原理
- 2025-04-01 SpringBoot使用ElasticSearch做文档对象的持久化存储?
- 2025-04-01 详细介绍一下Spring Boot中如何使用Spring Cloud LoadBalancer?
- 2025-04-01 SpringBoot2调用第三方接口时,考虑异常处理、安全性和超时重试
- 2025-04-01 Spring Cloud Kubernetes集成K8S,让你更快速的结合云原生
- 2025-04-01 速看!DeepSeek携手Kimi,解锁图文报表智能生成黑科技
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)