首页 > 手机 > 配件 > 漫谈分布式计算框架,分布式框架

漫谈分布式计算框架,分布式框架

来源:整理 时间:2022-04-08 09:00:30 编辑:华为40 手机版

如何实现一个分布式RPC框架?

如何实现一个分布式RPC框架

1.定义:明确下RPC是什么?PRC全称是Remote Procedure Call,是进程间的一种通信方式。2.解决的问题进程间调用就像本地调用函数一样简单,而业务层不需要去关心通信的细。3.组成在Nelson的论文Implementing Remote Procedurr Calls有论述,见图1User 调用方User-Stub 消息拼装,编解码RPCRuntime 发送,接受消息Service-Stub 消息拼装,编解码Server 服务方4.核心实现从图中可以看出我们需要实现Stub和RPCRuntime的功能。

Stub:主要功能是消息格式怎么定义和编解码。消息格式:一般需要设计消息头和消息体,当然越简洁越好,提高传输效率编解码:二进制最高效,可以使用Protocol Buffers,Thrift。当然也可以使用可读性比较好的JSON,XML。RPCRuntime主要负责通信,这里涉及到选择什么IO模型,BIO,NIO还是AIO,可以使用netty来实现NIO功能。

5.开源实现了解开源实现,更能促进自研的成熟稳定。当然看需求是否需要自研,一般开源就可以满足需求了。比较好的开源实现有Dubbo,brpc,grpc,Thrift,Hessian等6.小结虽然RPC说起来只是进程间的通信,但是RPC服务怎么注册,发现,路由这些都还是需要考虑的。再者毕竟是网络传输,就有可能出现延迟,丢包的情况,容错性也需要多考虑考虑。

这里再把RPC调用描述的全一点,见图2。图中的clinet,sever只和agent交互,agent就包含了Stub和RPCRuntime的功能,一般这里的agent实现为一个jar包,和应用程序部署在一起。现在Service Mesh也越来越成熟了,Service Mesh把agent独立为一个进程部署(必须和业务同一机器),这样降低了耦合性,同时业务和平台独立,开发迭代速度也更快。

多少互联网系统确实需要使用分布式架构?

有多少互联网系统确实需要使用分布式架构

莫说互联网实战开发,现在就连面试应届生的时候,分布式方面的问题都基本是必出的了。分布式架构简介以最简单的架构来说,分布式可以通过部署多个功能相近的服务器节点来实现。在实际应用中,只暴露出一个域名给用户,该域名地址通常对应的是一个Nginx,用于负载均衡。Nginx在收到请求后,会根据当前情况,将请求分配给不同的服务器节点来响应。

这套系统的架构图中,多个服务器节点的地位是相同。分布式架构的优点从当前来看,分布式的架构主要有高并发,高稳定的特点。高并发是指当单节点服务器的性能已经达到了瓶颈之后,可以通过引入Nginx,部署多个服务器节点的方式来扩容,增加系统的吞吐量。这就是 1*N =N的意义。高稳定是指如果由于不可预测的原因,发生了单个或部分节点宕机,不会影响系统整体的功能服务,即M-N

文章TAG:框架分布式计算漫谈分布式

最近更新