Java for You 架构设计 04-07 | 复杂度来源

04-07 | 复杂度来源

复杂度来源:高性能

单机复杂度

程序执行控制台(输入计算和输出)–>批处理程序(执行指令清单,一次只执行一个)–>多进程并行运行–>进程间通信–>线程出现(线程是操作系统调度的最小单位,进程是操作系统分配资源的最小单位)–>多CPU达到多任务并行

​

集群复杂度

大量机器配合起来达到高性能的目的,是个复杂任务。

  1. 任务分配。
  1. 每台机器都可以处理完整的业务任务,不同的任务分配到不同的机器上执行。
  2. 架构的复杂度体现在:
  1. 增加任务分配器:可能是硬件网络设备(交换机)、可能是软件网络设备(LVS)、可能是负载均衡软件(Nginx)、可能是自己开发的系统。
  2. 任务分配器和真正的业务服务器之间的连接和交互。例如:连接建立、连接检测、连接中断后如何处理。
  3. 任务分配器需要增加分配算法。例如采用轮询算法,还是按权重分配。
  1. 随着流量增加,并不是业务机器线性增加即可,因为任务分配器可能成为瓶颈,增加了新的复杂度。
  1. 要将不同用户分配到不同的任务分配器上。
  2. 任务分配器和业务服务器的连接从一对多变为多对多的网状结构。
  3. 状态管理、故障处理等复杂度大大增加。

复杂度来源:高可用

复杂度来源:可扩展性

复杂度来源:低成本、安全、规模

本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/architecture/3594.html

作者: 蜗牛

03 | 架构设计的目的

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部