首页 > 其他分享 >SpringCloud为啥要采用HTTP,不采用RPC

SpringCloud为啥要采用HTTP,不采用RPC

时间:2023-09-12 10:15:03浏览次数:34  
标签:调用 HTTP SpringCloud 传输 RPC 序列化 采用

1、首先SpringCloud开启WEB服务依赖于Tomcat,Tomcat内部采用HTTP协议,开发者编写JSON作为资源传输和响应,可以更加能灵活处理业务数据。

2、RPC基于TCP协议,客户端和服务端需要三次握手,四次挥手进行数据传输。TCP是数据传输层,传输协议统一由服务端进行编写,进行二进制传输,依赖序列化和反序列化规则,
对于大部分需要灵活变动的数据则不适用,对于RPC常用于Socket连接(正经人谁用Socket),或一些基本不变动的传输格式数据,减少数据变动的开发成本。

建立Socke连接至少需要一对套接字,ClientSocket和ServiceSocket,连接步骤分三步:服务器监听,客户端请求,连接确认。

一个简单的HTTP请求

3、RPC:远程过程调用,是一种进程通信方式,是一种技术思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,

而不是程序员显示编码这个远程调用的细节。及程序员无论是调用本地还是远程函数,本质上编写的调用代码基本一样。


RPC两个核心模块:通讯,序列化。
无论是任何类型的数据,最终都需要序列化转成二进制流在网络上进行传输

4、Restful(HTTP)

Restful指的是一组框架约束条件和原则,符合这一规则的架构,就称之为Restful架构,背后的理念,不过是为了更好的使用现有的WEB准则和约束。

5、RPC和HTTP的区别

首先,二者相识,有请求有响应
不同:
RPC需要满足调用本地服务一样调用远程服务,也就是API的封装
Http协议没有这样的要求,因此请求、响应等细节需要我们自己去实现。
优点:
RPC更加透明,对用户方便
HTTP方式更加灵活,没有规定API和语言,跨平台,跨语言
选择:
速度方面:RPC速度比较快,底层都是TCP,HTTP消息往往比较臃肿,但是可以采用gzip压缩。
难度方面:RPC实现更为复杂,HTTP相对简单
灵活方面:HTTP更灵活,不需要关系实现的细节,可以跨平台,跨语言。
微服务强调,独立,自主,灵活,RPC限制太多,不适合微服务框架。一般采用HTTP(REST)风格服务。

标签:调用,HTTP,SpringCloud,传输,RPC,序列化,采用
From: https://www.cnblogs.com/15078480385zyc/p/17695235.html

相关文章

  • springcloud中网关起什么作用
    (目录)springcloud中网关起什么作用在SpringCloud中,网关起到了路由和过滤的作用。路由:网关通过配置路由规则,将请求转发到不同的服务实例上。它可以根据请求的URL、请求的HTTP方法、请求的Header等信息,将请求路由到相应的服务实例上。通过网关,可以实现请求的负载均衡和动态路......
  • 开源工具推荐:BurpSuite和HTTPSProxy
    在网络安全领域,安全测试是一项重要的任务,旨在评估系统和应用程序的弱点以及潜在漏洞。而中间人(Man-in-the-Middle,MITM)是其中常见且有效的技术之一。本文将介绍如何使用BurpSuite这个优秀的开源工具,在安全测试过程中实施MITM攻击,并借助其强大功能对HTTP/HTTPS流量进行拦截与分析。1......
  • springcloud日常学习
    一、 Ribbon客户端负载均衡1. 负载均衡介绍  ① LB,即负载均衡(LoadBalance),负载均衡是微服务架构中经常使用的一种技术。负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务上,从而实现系统的高可用性集群。......
  • HTTP接口测试
    @Author:BasilGuo@Date:Feb.20,2021@Description:HTTP接口测试@Keyword:test,httpinterface@Type:tutorial学习方式:先方法,后工具(接口测试常用工具有SoupUI、JMeter)学习建议:了解接口是做什么的。理解接口的业务处理逻辑。熟悉接口核心的三组件:地址、入参、返......
  • 【7.0】基于RabbitMQ实现RPC
    【一】RPC介绍【1】介绍RPC(RemoteProcedureCall)是一种远程过程调用的协议,它允许一个计算机程序通过网络请求调用远程服务器上的一个子程序或函数。基于RabbitMQ实现的RPC可以更加可靠地实现远程过程调用。【2】分布式的系统中使用微服务之间的调用resful的接口rpc调......
  • 封装http请求工具
          ......
  • 3.SpringCloud理解
    SpringCloud是一个用于构建分布式系统的开发工具集合,它基于SpringBoot提供了一套简化的微服务架构开发组件。SpringCloud提供了多个模块,包括服务注册与发现、配置管理、负载均衡、断路器、网关等,这些模块可以帮助开发者快速构建和部署分布式系统。服务注册与发现:通过使......
  • springcloud学习笔记
    一、 微服务注册中心Eureka1. Eureka介绍  SpringCloud Eureka是微服务的注册中心,可以管理数据提供者和消费者  说明:    ① Eureka Server是服务端,负责管理各个微服务的注册和发现    ② 需要在Eureka Client中添加响应Eureka配置或代码,微服务启动时就会找到......
  • springcloud学习笔记
    一、 微服务注册中心Eureka1. Eureka介绍  SpringCloud Eureka是微服务的注册中心,可以管理数据提供者和消费者  说明:    ① Eureka Server是服务端,负责管理各个微服务的注册和发现    ② 需要在Eureka Client中添加响应Eureka配置或代码,微服务启动时就会找到......
  • SpringCloud - gateway
    gateway入门为什么需要gateway?快速入门:1.新建gateway模块(springboot项目,需要些启动类),引入依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><depende......