关于openfeign的http和rpc

这篇具有很好参考价值的文章主要介绍了关于openfeign的http和rpc。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在这里再次重申一遍什么叫http什么叫rpc

HTTP是基于tcp/ip的通信方式

Socket也是基于tcp/ip的通信方式

RPC也是基于tcp/ip的通信方式

openfeign所谓的rpc调用,只不是过一种设计思想,他并没有实现rpc调用,所以他还是http调用。

当说某个技术类似于RPC调用时,通常意思是该技术在使用方式或实现原理上与RPC调用具有相似之处。这种类似可能包括以下几个方面:

  1. 声明式接口定义:类似RPC调用,该技术也支持通过接口定义来描述远程服务的方法和参数。

  2. 透明远程调用:类似RPC调用,该技术能够将远程服务的调用过程对调用方透明化,使得调用方可以像调用本地方法一样调用远程服务。

  3. 序列化和反序列化:类似RPC调用,该技术也需要将方法调用的参数和返回值进行序列化和反序列化,以在网络上进行传输。

  4. 服务发现和负载均衡:类似RPC调用,该技术也支持服务注册、发现和动态负载均衡的机制,以便调用方能够找到合适的服务实例进行调用。

尽管某个技术可能在上述方面与RPC调用类似,但仍然需要注意它们之间的差异。每种技术都有自己的特点和适用场景,并不是所有类似于RPC调用的技术都能满足RPC在可移植性、效率和语言无关性等方面的要求。因此,在选择和使用技术时,需要根据具体的需求和情况进行评估和选择。

OpenFeign是一个声明式的HTTP客户端,主要用于简化服务之间的HTTP通信。它使用了HTTP协议来进行远程调用,而不是RPC(远程过程调用)协议。

RPC是一种远程调用技术,它允许在不同的计算机或进程之间传递消息和调用方法,使得它们能够像本地方法一样相互通信。

而OpenFeign使用的是HTTP协议,它通过HTTP请求和响应进行通信,类似于你在浏览器中发送HTTP请求来获取数据的方式。它更适合用于面向HTTP的微服务架构中,它可以通过注解和接口定义来简化远程服务的调用。

相比之下,Dubbo是一个基于RPC的服务框架,它提供了更底层的通信协议和更高效的序列化方式,用于构建分布式的异构系统。Dubbo主要用于Java语言的服务调用,它提供了服务注册,发现,负载均衡等功能,使得分布式系统的开发更加方便。

总结起来,OpenFeign和RPC都是用于服务之间进行远程调用的技术,但它们使用的通信协议和实现方式有所不同。OpenFeign使用HTTP协议,而RPC使用自己的协议。

 所以同学们不要在feign中插入rpc的思想了,它和rpc没有半毛钱关系

我问:

RPC调用的核心思想,他调用远程服务,就像是在调用本地服务一样。它的效率更高,减少了一些http通信。那是为什么呢?因为他将服务提供方的业务注册进了自己的本地服务中,例如我有一个service上面打上了@dubboService注解,那么其他服务调用做个service的时候,就是把这个对象的实例加载进了调用方的本地服务中,通过序列化和反序列化。

    当服务提供方挂掉,它不需要关注负载均衡,而是将其他存活着的提供方的服务重新序列化到调用者的本地服务中

GPT答:

RPC(远程过程调用)是一种用于实现分布式系统的通信机制,它的核心思想是使调用远程服务的过程就像调用本地服务一样,从而提高效率并减少通信开销。下面解释一下为什么它能实现这样的效果:

  1. 注册远程服务:RPC框架会将服务提供方的业务注册到本地服务中,这样调用方就可以像调用本地服务一样的方式来调用远程服务。

  2. 代码加载和序列化:当调用方需要调用远程服务时,RPC框架会将服务提供方的代码加载到本地,并将调用参数进行序列化,形成一个对象实例。这样就避免了每次调用都需要通过网络传输代码和数据的开销。

  3. 服务提供方挂掉:当服务提供方出现故障或挂掉时,RPC框架可以实现负载均衡的功能。它可以重新实例化其他可用节点中能提供相同服务的代码到本地,从而保证服务的可用性。

总之,RPC通过将远程服务的代码加载到本地,并进行序列化处理,使得调用远程服务的过程更加高效,并在服务提供方故障时能够自动切换到其他可用节点,提高系统的可靠性和性能。

我问:

以上是我自己的理解,我想问rpc就不需要关注服务提供方的负载均衡对吗,所谓的负载均衡,其实就是为了保证服务的可用性而已

GPT答:

是的,您的理解基本是正确的。

在使用RPC的情况下,调用方不需要直接关注服务提供方的负载均衡,RPC框架会自动处理这个问题。当服务提供方有多个节点时,RPC框架可以通过负载均衡算法将请求分发到不同的节点上,从而实现负载均衡的效果。

负载均衡的目的就是确保服务的可用性和性能。通过将请求均匀地分发到多个节点上,可以避免单一节点成为瓶颈或单点故障,从而提高系统的可靠性和性能。

因此,当使用RPC调用服务时,调用方无需手动实现负载均衡策略,这部分工作由RPC框架来完成。调用方只需要关注调用远程服务的逻辑,而不需要担心服务提供方的具体负载均衡机制。

 所以同学们,别再把feign和rpc混为一谈了好吗文章来源地址https://www.toymoban.com/news/detail-729902.html

到了这里,关于关于openfeign的http和rpc的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生OpenFeign相较于传统HTTP工具的优化和原理

    本篇介绍的是springcloud-openfeign的底层框架io.github.openfeign,重点不是框架如何使用,而是介绍Feign如何基于传统HTTP工具使用方式进行抽象改进,提升其灵活性,并简单介绍一下其抽象组件及主要组件的使用时机 以常用的OkHttp3工具框架为例,其一个大致的流程如下: 其流程从下

    2024年02月07日
    浏览(40)
  • [RPC]关于RPC的一点理解

    以下内容仅为个人理解,不作正确性保证,感谢批评指正 在分布式计算中,远程过程调用 (RPC) 是指计算机程序导致过程(子例程)在不同的地址空间(通常在共享网络上的另一台计算机上)中执行, 它的编码就好像是普通(本地)过程调用一样,程序员没有 显式 编码远程

    2024年02月10日
    浏览(41)
  • OpenFeign调用微服务使用RequestInterceptor或@RequestHeader传递http请求头信息

    记录 :391 场景 :基于Spring Cloud OpenFeign调用微服务Restful接口时,请求头从A服务传递到B服务,可以使用RequestInterceptor接口或者@RequestHeader注解传递请求头信息。 版本 :JDK 1.8,SpringBoot 2.6.3,springCloud 2021.0.1 1.使用RequestInterceptor传递请求头信息 1.1关于RequestInterceptor RequestIntercepto

    2024年02月14日
    浏览(41)
  • SpringCloud Alibaba - HTTP 客户端 OpenFeign 、自定义配置、优化、最佳实践

    目录 一、OpenFeign 是什么,有什么用呢? 二、OpenFeign 客户端的使用 2.1、远程调用 1.引入依赖 2.在order-service(发起远程调用的微服务)的启动类添加注解开启Feign的功能 3.编写 OpenFeign 客户端 4.通过 OpenFeign 客户端发起远程调用 2.2、自定义 OpenFeign 配置 1.配置文件方式 2.j

    2024年02月08日
    浏览(51)
  • RPC和HTTP协议

            RPC 全称(Remote Procedure Call),它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。         它的核心目标是,让开发人员在进行远程方法调用的时候,就像调用本地方法一样,不需要额外为了完成这个交互做过的编码。         为了达到

    2024年02月11日
    浏览(41)
  • 【原理】RPC与HTTP

    RPC服务基本架构包含了四个核心的组件,分别是Client,Server,Clent Stub以及Server Stub。 RPC 让远程调用就像本地调用一样,其调用过程可拆解为以下步骤。 ① 服务调用方(client)以本地调用方式调用服务; ② client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消

    2024年04月14日
    浏览(43)
  • RPC与HTTP的关系

    RPC与HTTP是两个不同维度的东西 HTTP 协议( H yper T ext T ransfer P rotocol),又叫做 超文本传输协议 ,是一种传输协议,平时通过浏览器浏览网页网页,用到的就是 HTTP 协议。 而 RPC ( R emote P rocedure C all),又叫做 远程过程调用 。它本身并不是一个具体的协议,而是一种 调用方

    2024年02月07日
    浏览(39)
  • HTTP与RPC的取舍

    HTTP与RPC的取舍 HTTP和RPC都是常用的网络通信协议,它们各有优劣。选择何种协议,主要取决于应用的需求和场景。 HTTP和RPC都有各自的优点和缺点,首先我们对两种协议进行一个总结。 HTTP协议图 HTTP的优点: 广泛的支持:由于HTTP是Web应用程序的核心协议,几乎所有现代操作

    2024年02月11日
    浏览(37)
  • RPC和HTTP区别是什么?

      🏆今日学习目标: 🍀RPC和HTTP区别是什么? ✅ 创作者 :林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页  🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区 目录         1 什么是RPC协议 1.1 简介 2 什么是HTTP协议 2.1 简介 2.2

    2024年02月16日
    浏览(40)
  • RPC和HTTP调用的区别

    RPC(Remote Procedure Call)和HTTP调用都是用于实现远程通信的方法,但它们有一些重要的区别: 通信协议 : RPC:RPC通常使用自定义的二进制协议或者序列化协议(如Protobuf、Thrift)来进行通信。这些协议更加高效,因为它们可以将数据以二进制形式传输,减少了序列化和反序列化

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包