一、rpc框架原理当客户端的应用想发起一个远程调用时,它实际是调用客户端的 Stub。它负责将调用的接口、方法和参数,通过约定的协议规范进行编码,并通过本地的 RPCRuntime 进行传输,将调用网络包发送到服务器。服务器端的 RPCRuntime 收到请求后,交给服务器端的 Stub 进行解码,然后调用服务端的方法,服务端执行方法,返回结果,服务器端的 Stub 将返回结果编码后,发送给客户端
转载
2024-07-04 06:54:45
320阅读
gRPC系列文章 RPC、http/2、 protocol buffersRPCPRC相关概念进程间通信运行时设施RPC的应用RPC漫谈数据传输协议Http/2.0HTTP/2 特性SPDYQUIC序列化协议目的影响序列化性能的关键因素常用方式Protocol buffersgRPC系列文章 RPCRPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程
转载
2024-06-11 21:22:42
200阅读
RabbitMQ/Redis/ZeroMQ/ActiveMQ/Jafka/KafkaRabbitMQ
Erlang编写,支持多种协议:AMQP,XMPP, SMTP, STOMP
重量级,实现经纪人框架(Broker);
消息在发送给客户端时先在中心队列排队;
对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。Redis
支持MQ功能,可作为轻量级的队列服
转载
2023-09-13 10:55:10
134阅读
gRPC是什么?可以用官网的一句话来概括:A high-performance, open-sourceuniversal RPC framework首先要知道RPC是什么?再来看gRPC!RPCRPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务。gRPCgRPC是Google发布的基于HTTP 2.0传输层协议承载的高性能
目录概括原文要点全文链接概括三者都实现了一套称为 用户态线程或协程(coroutine) 的线程模型(主要使用M:N的用户态线程模型),只不过他们的实现方式不一样: (1)grpc-go 基于 go语言原生的gmp模型 (2)grpc-java 基于 netty的线程模型
转载
2024-04-12 08:50:32
847阅读
作者:依乐祝 开始之前先看一下gRPC与带有j'son的HTTP APIs对比表格gRPC的优势性能gRPC消息使用一种有效的二进制消息格式protobuf进行序列化。Protobuf在服务器和客户机上的序列化非常快。Protobuf序列化后的消息体积很小,能够有效负载,在移动应用程序等有限带宽场景中显得很重要。gRPC是为HTTP/2而设计的,它是HTTP的一个主要版本,与HTTP 1.x
目录1.什么是MQ2.应用场景2.1 异步处理2.2 应用解耦2.3 流量削锋2.4 消息通讯3.redis(pub/sub)模式实现3.1 什么是pub/sub3.2 Redis pub/sub的实现3.3 在php中的实现 1.什么是MQ消息队列中间件(MQ)是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队
转载
2023-08-07 22:19:03
394阅读
一、ZeroMQ简介:是一个处理数据传输的库,重点在传输上,看起来它像是在socket上面封装了一层,让我们可以很容易的利用它来做N对M的数据传输,在分布式系统中很方便,在接收端它有round-robin负载均衡。 号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景。ZeroMQ是一个库,不是消息中间件;类似于java中的JMS或者MOM;与
转载
2024-01-03 11:05:25
427阅读
一、gRPC是什么?gRPC,其实就是RPC框架的一种,前面带了一个g,代表是RPC中的大哥,龙头老大的意思,另外g也有global的意思,意思是全球化比较fashion,是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。RPC框架是什么?RPC 框架说白了就是让你可以像调用本地方法一样调用远程服务提供的方法,而不需要关心底层的通信细节。简单地说就让远程服务调
转载
2024-08-30 14:28:35
360阅读
目录1 MQ面试1.1 问题引入1.2 面试题剖析1.2.1 为什么使用消息队列1.2.1.1 解耦1.2.1.2 异步1.2.1.3 削峰1.2.1.4 消息总线1.2.1.5 延时任务1.2.1.6 广播消费1.2.1.6.1 消息推送1.2.1.6.2 缓存同步1.2.1.7 分布式事务1.2.1.7.1 传统XA事务方案:性能不足1.2.1.7.2 基于普通消息方案:一致性保障困难1.2.
转载
2024-10-11 16:19:52
171阅读
gRPC 简介gRPC是由Google公司开源的高性能RPC框架。gRPC支持多语言gRPC原生使用C、Java、Go进行了三种实现,而C语言实现的版本进行封装后又支持C++、C#、Node、ObjC、 Python、Ruby、PHP等开发语言gRPC支持多平台支持的平台包括:Linux、Android、iOS、MacOS、WindowsgRPC的消息协议使用Google自家开源的Pro
转载
2024-06-21 21:53:28
60阅读
突发奇想,想写一篇综合性的,就算算是对到现在为止读过的框架这方面的一个总结吧,先来点客套话吧,嗯,为啥会有线程或者进程模型这种东西,因为计算机CPU主频已经很难再提高了,现在更倾向于设计多核系统,那么要发挥现在计算机的处理能力,就需要将系统设计成支持多处理器的,最简单的那肯定就是多线程(进程)程序了。。。尤其是在网络编程中,特别是对于每个事物都是独立的情况下,例如没有会话的HTTP请求啥的,这种方
转载
2024-07-01 09:45:29
74阅读
2021SC@SDUSC 目录引言源码分析介绍一元式 RPC客户端流式 RPC服务端流式 RPC双向流式 RPC 引言在 oj 项目中,服务端并不是一个不可分割的整体,而是可以根据职责划分为成多个子服务,比如能够处理前端请求的服务、能进行判题的服务等。那么这些服务之间要如何进行通信呢?这里我们选用 RPC。相比于 Restful,RPC 更加轻量级,也更加高效,适合系统内的服务通信。我们以 gRP
brpc介绍 更好的延迟和吞吐量虽然几乎所有的RPC实现都声称它们是“高性能”的,但数字可能只是数字。在不同场景中真正的高绩效是困难的。为了统一百度之内的通信,brpc在性能上比其他实现更深入。读取和解析来自不同客户端的请求完全并行化,用户不需要区分“IO线程”和“处理线程”。其他实现可能具有“IO线程”和“处理线程”以及散列文件描述符(fd)到IO线程中。当IO线程处理其中
安装相关库: sudo apt-get install libtool autoconf automake uuid-dev 编译zeromq 下载链接: #wget http://download.zeromq.org/zeromq-3.2.0-rc1.tar.gz 移除旧版本 sudo make uninstall wget http://download.ze...
转载
2012-09-27 15:43:00
320阅读
2评论
1 ZMQ是什么?ZeroMQ是一种基于消息队列的多线程网络库,它对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字,并且支持多种通讯环境(进程内、跨进程、跨主机)。ZMQ更多的是关注通讯双方的职责,传递的内容是一个个的消息,在使用的时候不用关心具体的细节,开发者不再需要 bind/listen/accept 来架设服务器。ZMQ在 Socket API 之上做了
转载
2023-09-08 09:15:11
91阅读
目录1.brpc请求其他server方式1.1 基于proto的rpc请求示例1.2 普通http请求示例:2.brpc写数据的机制 brpc作为一个rpc框架,除了支持作为server当然也需要对调用其他server有良好的支持,这篇将着重介绍一下brpc访问其他server的具体过程以及与之相关的往socket写response的机制。1.brpc请求其他server方式brpc里发送数据都
转载
2024-03-05 03:57:40
242阅读
目录1 基本介绍2 主要函数详解2.1 Create2.2 Address2.2 SetFailed2.3 Dereference 1 基本介绍Socket在计算机领域通常指套接字,这里说的brpc里面的socket指的是一种用于方便在多线程环境下使用包括套接字在内的fd等资源的通用结构,前面的文章介绍brpc服务器启动以及发送接收请求相关内容的时候就多次设计到了这个数据结构。下面先贴一段官方文
转载
2024-02-15 21:46:09
221阅读
参考文档:官网 http://zeromq.org/
原理解读zeromq只是一层针对socket的封装,介于传输层和应用层之间,并不是单独的服务或者程序,仅仅是一套组件。 zeromq使用c语言编写,相应速度非常快。主要有以下几个部分:- 主线程:负责相应用户的请求,比如创建zmq等
- IO线程:主要负责网络IO的调度,每个IO线程会对应一个异步poll(如se
转载
2023-06-20 15:12:10
102阅读
一、ZeroMQ模式七大模式ZeroMQ支持七种通信模式,这些模式分别是:REQ/REP模式:这是最简单的模式,客户端向服务端发送请求,服务端收到请求并发送响应。这个模式是同步的,客户端必须等待服务端的响应。PUB/SUB模式:这个模式用于广播消息。发布者将消息广播给所有订阅者,订阅者可以选择接收感兴趣的消息。PUSH/PULL模式:这个模式用于任务分发和负载均衡。任务由PUSH端发送到多个PUL
转载
2023-09-21 08:59:47
151阅读