单机,集群和分布式概念

单机的局限性:

1.受限于硬件资源,单机所能承受的用户并发量太少;

2.一个系统有多个模块,任意模块的修改都会导致整个项目代码重新编译、部署;

3.系统中,有些模块是CPU密集型,有些模块是I/O密集型,造成各个模块对于硬件资源的需求是不一样的。

集群:

负载均衡

集群的优点?

性能提升了,用户的并发量提升了,因为水平扩充了硬件资源;

部署简单。
集群的缺点?

1、项目代码还是需要整体重新编译,而且需要进行多次部署。

2、系统中有些模块是属于CPU密集型(计算量大的),有些模块是属于I/O密集型的(接触输入输出,网络IO),造成各模块对硬件资源的需求是不一样。

并不是说机器多,并发量就上来,性能就高。像一些使用不多的模块,不需要高并发,所以也就不需要分别部署在三台机器上,不常用的模块只需要部署在一台机器上就好

分布式:

集群:每一台服务器独立运行一个工程的所有模块。

分布式:一个工程拆分了很多模块,每一个模块独立部署运行在一个服务器主机上,所有服务器协同工作共同提供服务,每一台服务器称作分布式的一个节点,根据节点的并发要求,对一个节点可以再做节点模块集群部署。

分布式优点:

1.对于并发量大的模块我们单独处理,单独加集群;

2.假如其中一个模块出问题了,我们只需要修改一个模块就可以了;

3.把CPU密集型的模块部署在CPU资源好的机器上。把内存小的模块部署在硬盘资源少的机器上。把IIO密集型的模块部署在CPU不是很好的机器上。

4、有的模块要求并发能力高,可以进行多机器集群部署。有的模块并发能力小,部署在一台机器就可以。

5、配置着高可用,容灾,主备服务器,不用担心就---套系统挂掉了怎么办。

分布式问题:

1、大系统的软件模块该怎么划分?

  • 各模块可能实现大量重复的代码!
  • 模块和模块之间的界线不清晰(有的模块里面的函数调动另一个模块的函数代码)。
  • 处理不好,造成大量重复代码。而且你改你的,我改我的,重复的公共代码就出问题了,变成不可控制了。
  1. 各个模块之间如何通信?

两个模块之间rpc通信协议,交互。

相关推荐
莳花微语33 分钟前
使用MyCAT实现分布式MySQL双主架构
分布式·mysql·架构
power-辰南4 小时前
高并发系统架构设计全链路指南
分布式·系统架构·高并发·springcloud
roman_日积跬步-终至千里10 小时前
【分布式理论16】分布式调度2:资源划分和调度策略
分布式
DC_BLOG14 小时前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式
点点滴滴的记录15 小时前
分布式之Raft算法
分布式
桃林春风一杯酒17 小时前
HADOOP_HOME and hadoop.home.dir are unset.
大数据·hadoop·分布式
逻各斯21 小时前
Redisson分布式锁java语法, 可重入性实现原理 ,(还有可重试性,超时不释放,主从一致性)
分布式
WeiLai11121 天前
面试基础--微服务架构:如何拆分微服务、数据一致性、服务调用
java·分布式·后端·微服务·中间件·面试·架构
奔跑吧邓邓子1 天前
【Python爬虫(44)】分布式爬虫:筑牢安全防线,守护数据之旅
开发语言·分布式·爬虫·python·安全
转身後 默落1 天前
11.Docker 之分布式仓库 Harbor
分布式·docker·容器