逃逸线LOF头像
关注

分布式系统、流式计算架构 & RPC

I. 定义

在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;

分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。

分布式系统(distributed system)是建立在网络之上的软件系统。

首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,为了解决这些问题又会引入更多的机制、协议,带来更多的问题。

单一应用架构:适用于小型网站,小型管理系统。性能扩展难。

垂直应用架构:当访问量逐步增大,单一应用增加机器带来的加速度越来越小,将应用拆分成互不相干的几个应用,以提升效率,此时用于加速前端页面开发的Web框架是关键。公共模块无法利用,开发性能浪费。

分布式:

把单体大项目拆成多个独立的服务,部署在多台服务器上,服务之间通过网络互相调用,共同完成整套业务。

注意:微服务是分布式的一种最佳实践;分布式 ≠ 一定是微服务。微服务是粒度更细的分布式。

流式计算架构:

流式计算:数据源源不断持续流入,来一条算一条,不需要等全部数据入库,实时处理 对比批计算:收集一批全部数据,一次性计算(离线,比如 Hive、Spark 离线)

批:攒齐再算;流:来了就算。

典型场景:实时大屏、实时风控、日志实时告警、订单实时统计、实时推荐。

缺点:架构复杂、状态管理难、乱序与背压难以调优,资源持续占用,实时指标和离线数据对账成本高,运维门槛远高于普通微服务。

Flink 核心卖点:同一套代码,既可以跑实时流式,也可以跑离线批任务

RPC

RPC:Remote Produce Call 远程过程调用,像调用本地方法一样,调用另一台机器上的函数,屏蔽网络底层细节。 你代码里直接调用方法,不用手动写 Socket、编解码、HTTP 请求。

注意:RPC是一种技术思想,并非是一种规范,它允许程序调用另一个地址空间(通常是共享网络的另外一台机器)的过程或者函数,而不用程序员显示编码这个远程调用的细节,即程序员无论是调用本地还是远程的函数,本质编写的调用代码基本相同。

RPC的两个核心:序列化、通讯

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/m0_57532232/article/details/166248855

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--