当前位置: 首页 > news >正文

集群和分布式

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

单机模式

例如有一个在线商城系统,如果这个系统业务量很小,比如在校学生自己随便写的一个小项目,所有的代码都放在一个项目store-web中,然后把这个项目部署在一台服务器上。整个项目所有的服务都由这台服务器提供,这就是单机结构。

d50ff22c83a19c8a4d8546316d97a498df3.jpg

集群模式

如果业务量增大,一个服务器已经处理不了当前的数据量时,可以采用集群模式。集群模式简单来说,就是将同一份项目代码放在多个服务器上,这多个服务器中每个服务器就是一个节点,所有节点构成一个集群。也就是说每台服务器都跑着相同的项目代码(即store-web)。这样通过将大量请求分配给不同的节点来执行,可以提高系统的处理能力。理论来说有多少个节点系统的处理能力就能提升多少倍。

这里有一个问题就是如何将大量请求分配给集群中不同的节点来执行。这个就涉及到负载均衡技术。

负载均衡

负载均衡服务器起着调度者的作用,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台服务器去处理。负载均衡服务器如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。

负载均衡经典的有四种实现方式:

  • HTTP重定向实现负载均衡
  • DNS负载均衡
  • 反向代理负载均衡
  • 负载均衡组件

7aa2e0331033dc1896f6527e5de74b3e685.jpg

分布式架构

还是那个在线商城,如果采用分布式架构,就不能将所有业务塞进一个项目store-web了。需要按照功能模块将业务分解,每个业务构成一个可以单独运行的子系统,所有子系统通过RPC或者MQ等方式互相通信,子系统之间相互调用/依赖来完成在线商城系统的所有功能。比如可以将在线商城系统(store-web)分为:单点登录系统(storelogin-service)、订单系统(storeorder-service)、购物车系统(storecar-service)、搜索系统(storesearch-service)、信息管理系统(stroremng-service)等。

53f8cd8ba7f9fb7b907c3694198bd96812c.jpg

转载于:https://my.oschina.net/HuoQibin/blog/1929267

相关文章:

  • Android源码个个击破之MediaRecorder
  • Hexo+码云+git快速搭建免费的静态Blog
  • python 数据格式转换
  • 快递查询API接口集成,有需要的可以直接用
  • Eclipse jvm启动参数在哪设置
  • 微信二维码图片长按没有出现“识别图中的二维码”
  • MongoDB Ops Manager 部署指南
  • EXISTS
  • HTML5相对HTML优势
  • 专家汇 | 车联网这样上云,真的很酷!
  • 算法学习 - 基础排序算法
  • TensorFlow 生成 .ckpt 和 .pb
  • 分享一份非常强势的Android面试题
  • Linux中进行抓包
  • Cordova 笔记
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • css选择器
  • download使用浅析
  • JavaScript中的对象个人分享
  • PHP面试之三:MySQL数据库
  • Python3爬取英雄联盟英雄皮肤大图
  • Redis学习笔记 - pipline(流水线、管道)
  • springboot_database项目介绍
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vue组件定义
  • 闭包--闭包之tab栏切换(四)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 仿天猫超市收藏抛物线动画工具库
  • 服务器从安装到部署全过程(二)
  • 关于 Cirru Editor 存储格式
  • 基于axios的vue插件,让http请求更简单
  • 开发基于以太坊智能合约的DApp
  • 试着探索高并发下的系统架构面貌
  • 想写好前端,先练好内功
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 自制字幕遮挡器
  • 你对linux中grep命令知道多少?
  • ​Java并发新构件之Exchanger
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (AngularJS)Angular 控制器之间通信初探
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)正点原子I.MX6ULL u-boot移植
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计高校学生选课系统
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转载)Linux网络编程入门