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

单机、集群、分布式服务器比较:

1. 单机服务器的瓶颈:

单机服务器:一台服务器独立运行一个工程所需的全部的业务模块

  • 受限于服务器硬件资源,所承受用户并发量受限,32位linux操作系统最大并发量为两万
  • 任一模块的变动和修改,都会导致整个项目代码重新编译、部署,浪费大量时间成本
  • 系统模块对硬件资源的需求不一样,CPU密集型(3D展示,大量计算)、I/O密集型(服务器信息收发),部署在一台服务器则对服务器的整体硬件资源提出更高的要求,增加了成本

2. 集群服务器:

分布式集群服务器:每一个服务器都运行一个工程的所有模块。

优点:

  1. 解决了单机服务器的并发量限制,但是服务器机数和并发量并不成正比关系
  2. 配置简单,只需要在服务器部署所有模块并增加Nginx反向代理的服务器配置即可

缺点:

  1. 项目代码的修改需要所有服务器重新编译,单机只进行一次部署而现在要进行多次部署!
  2. 部分使用量少,不需要大量并发的模块仍然部署在所有服务器一定程度上浪费了资源
  3. 并未解决功能模块对服务器的多硬件资源需求问题(CPU密集型、I/O密集型)

3. 分布式服务器:

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

优点:

  • 可以将工程模块分别部署在不同的服务器,根据模块对硬件资源的需求:
    • 分别将CPU密集型的模块部署在CPU资源较好的服务器;
    • 将I/O密集型的模块部署在CPU资源较差的服务器,解决了单机、集群均无法解决的问题;
    • 将并发要求高的模块结点进行集群部署,扩充并发。
  • 当单独模块的代码需要修改时,仅编译当前的模块代码并在当前服务器编译部署,并不影响其他的模块正常运行
  • 可以根据服务器的资源条件,进行最匹配的功能模块,最大化的利用资源,避免资源浪费,并部署高可用,容灾的主备服务器功能保障服务器可靠性

引发的问题:

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

  1. 模块和模块之间的界线不清晰(有的模块里面的函数调动另一个模块的函数代码)
  2. 各模块可能实现大量重复的代码!如果在不同模块重复的公共代码修改成过程中逐渐分离,变成不可控制了。

2、各模块之间该怎么访问?

因为现在各模块可能运行不在一个机器上,或者不在一个进程上。

单机或者集群中,这些模块是运行在一个服务器进程当中,相当于自己调用自己。但是在分布式中,用户管理和好友管理部署在不同的进程中,用户管理进程如何调用另一个模块上的业务呢?

机器1上的模块怎么调用机器2上的模块的一个业务方法呢?(软件设计师通过经验来解决)

机器1上的一个模块进程1怎么调用机器1上的模块进程2里面的一个业务方法呢?

调用过程涉及网络传输,携带区分函数的标识(函数的参数,函数命名等)发送给另一台机器调用方法,将传递过来的参数代入执行,执行之后将返回值通过网络返回

相关文章:

单机、集群、分布式服务器比较:

1. 单机服务器的瓶颈: 单机服务器:一台服务器独立运行一个工程所需的全部的业务模块 受限于服务器硬件资源,所承受用户并发量受限,32位linux操作系统最大并发量为两万任一模块的变动和修改,都会导致整个项目代码重新编…...

NoSql选择题解

1. (单选题)以下不属于ACID原则的是( )。 A. 相对性 B. 原子性 C. 隔离性 D. 持久性 正确答案: A :相对性; 2. (单选题)以下NoSQL数据库中,哪个是内存数据库()。 A. Bigtable B. Redis C. Hbase D. MongoDB 正确答案: B :Redis; …...

国内新能源汽车芯片自给,承认差距,任重道远

【科技明说 | 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示,中国拥有最大的新能源车产能,芯片用量也是越来越多。但是芯片的自给率目前不到10%,是结构性的短缺。 中国拥有最大新能源车产能&#…...

反爬虫策略中的IP地址轮换如何实现?挑战与对策

当今互联网时代,各类网站、网络平台背后隐藏着大量数据,广告数据收集、市场数据收集都需要依托爬虫技术,但很多网站通过反爬虫技术限制或屏蔽爬虫的访问,这给数据收集带来不小的挑战。 为了规避这些反爬虫策略,开发人…...

AUTOSAR CAN网络Bus Load Reduction Mechanism

1. Bus Load Reduction Mechanism有什么用 根据AUTOSAR CanNM规范,NM PDU的发送周期由参数CanNmMsgCycleTime决定,并且属于同一个网络簇的所有NM节点该参数必须相同。如果不采取任何行动,这将导致总线负载问题,这取决于网络管理集群成员的数量。即使通过节点特定的定时参数…...

【LeetCode力扣】007. 整数反转(Python)

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入…...

大数据之写入Doris数据问题

1. 解决Key columns should be a ordered prefix of the schema. KeyColumns[1] (starts from zero) is xxx, but 背景 create table if not exists XXX ( fathercorp varchar(50), id decimalv3(38,0) ) ENGINEOLAP UNIQUE KEY(id) COMMENT xxxx DISTRIBUTED BY HASH(id) BUC…...

HTML+echarts.js实现的炫酷金色风格可视化组件

模板下载地址: 炫酷金色风格可视化组件 (bootstrapmb.com)https://www.bootstrapmb.com/item/14888 一款炫酷金色风格可视化组件,统计图表使用Echarts.js,整体风格采用金黄色看起来很大气,设计是通用型的,可以用作任…...

【BUG】已解决: KeyboardInterrupt

已解决: KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人 擅长.net、C…...

iOS——MRC与ARC以及自动释放池深入底层学习

MRC与ARC再回顾 在前面,我们简单学了MRC与ARC。MRC指手动内存管理,需要开发者使用retain、release等手动管理对象的引用计数,确保对象在必要时被释放。ARC指自动内存管理,由编译器自动管理对象的引用计数,开发者不需要…...

OpenCV教程:cv2如何把两张图片的大小,设置成相同的宽高

-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…...

web前端 Vue 框架面试120题(五)

面试题 81 . 请简述Vue更新数组时触发视图更新的方法? 参考回答: push();pop();shift();unshift();splice();sort();reverse()面试题 82 . 简述如何使用Vue-router实现懒加载的方式…...

CV12_ONNX转RKNN模型(谛听盒子)

暂时简单整理一下: 1.在边缘设备上配置相关环境。 2.配置完成后,获取模型中间的输入输出结果,保存为npy格式。 3.将onnx格式的模型,以及中间输入输出文件传送到边缘设备上。 4.编写一个python文件用于转换模型格式&#xff0c…...

k8s集群创建devops项目一直等待状态,没有发现host

问题分析: kubesphere在帮我们自动化创建一些智能自动化的额时候难免会发生一些小错误,devops-jenkins是一个部署也会生成一个容器组即pod,容器组的容器服务端口是 targetPort,容器组对外暴露的端口是port,拿devops-c…...

chatglm2-6b-prompt尝试

参考https://cloud.tencent.com/developer/article/2426296 chatglm2-6b,通过prompt来实现zero-shot/fewshot的自然语言处理任务 import json import re import os from modelscope.utils.constant import Tasks from modelscope import Model from modelscope.pi…...

vite+vue3项目初始化搭建

vitevue3项目初始化搭建 "nodejs": v18.19.0 "pnpm": 8.15.0 "vue": v3.4.21 "vite": v5.2.01.创建项目 Vite中文官网 pnpm create vitelatest项目名字:gd_web 选择框架:Vue3 选择语言:JavaScrip…...

使用 Vue3、Node.js、MySQL、Electron 和 Express 实现用户登录、文章管理和截屏功能

在现代 Web 开发中,前后端分离的架构已经成为主流。本文将详细介绍如何使用 Vue3、Node.js、MySQL、Electron 和 Express 实现一个完整的用户登录、文章管理和截屏功能的应用。我们将从项目的初始化开始,逐步实现各个功能模块,并提供详细的代…...

django中日志模块logging的配置和使用

一、文件的配置 settings.py文件中添加LOGGING块的配置,配置如下 # 日志记录 LOGGING {"version": 1,"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器# 格式器"formatters": {"v…...

pyqt/pyside QTableWidget失去焦点后,选中的行仍高亮的显示

正常情况下pyqt/pyside的QTableWidget,点击input或者按钮失去焦点后 行的颜色消失了 如何在失去焦点时保持行的选中颜色,增加下面的代码: # 获取当前表格部件的调色板 p tableWidget.palette()# 获取活跃状态下的高亮颜色和高亮文本颜色&a…...

函数定义、合约与面向对象(以太坊solidity合约)

函数定义、合约与面向对象(以太坊solidity合约) 1-函数定义、构造与多态2-事件日志3-面向对象特征 1-函数定义、构造与多态 创建合约就是创建类,部署合约就是实例化 合约的方法还支持多态 还能使用第三方的库进行开发 整个合约部署后&…...

从零部署noVNC:一次完整的远程桌面服务搭建与排错实录

1. 为什么选择noVNC? 最近在帮朋友部署远程桌面服务时,发现很多传统VNC方案都需要安装客户端,操作复杂不说,兼容性还差。直到发现了noVNC这个神器,它直接用浏览器就能访问远程桌面,彻底解决了跨平台访问的痛…...

NotebookLM播客化功能上线即爆火(2024Q2内部灰度测试TOP3功能首次公开)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM文档播客化功能详解 NotebookLM 的文档播客化(Doc-to-Podcast)功能将静态文本内容智能转化为自然流畅的语音叙述,支持多角色配音、语速调节与上下文感知停…...

从零部署OpenClaw AI助手:多平台集成与私有化部署实战

1. 项目概述:从零部署你的专属AI助手 最近在折腾AI Agent,发现了一个挺有意思的开源项目叫OpenClaw。简单来说,它就像一个“万能接线员”,能把你的AI大模型(比如GPT、Claude、GLM这些)的能力,接…...

Apple Mail自动化增强:JXA脚本与快捷指令提升邮件处理效率

1. 项目概述:一个为Apple Mail打造的现代化邮件客户端如果你和我一样,日常工作高度依赖邮件,并且是macOS生态的深度用户,那么Apple Mail(邮件.app)大概率是你的主力工具。它简洁、与系统深度集成、iCloud同…...

AI应用开发面试题总结(非八股文)

前端请求超过 3 秒,怎么分析原因? 1.看前端和网络 F12开发者模式去查看network,首先判断是前端问题还是后端问题 通过查看接口 Waiting 时间进行判断是后端响应时间太长还是说前端渲染问题 2.给后端接口添加日志进一步定位后端问题 3.如果…...

基于VLLM与VoxCPM2的高并发TTS服务器部署与调优指南

1. 项目概述:uttera-tts-vllm,一个为高并发而生的TTS服务器如果你正在寻找一个能扛住高并发请求、支持实时语音克隆、并且完全自托管的文本转语音解决方案,那么uttera-tts-vllm绝对值得你花时间研究一下。这个项目本质上是一个基于 FastAPI 构…...

告别手动拷贝!用Qt Creator远程调试嵌入式Linux应用(保姆级配置流程)

告别手动拷贝!用Qt Creator远程调试嵌入式Linux应用(保姆级配置流程) 嵌入式开发中,最令人头疼的莫过于反复的"编译-拷贝-运行/调试"循环。每次修改代码后,都需要手动将可执行文件拷贝到开发板,再…...

AI编程助手集成飞书MCP:零依赖单文件实现工作流自动化

1. 项目概述:连接AI编程助手与飞书工作流 如果你和我一样,每天的工作流都离不开飞书(Lark)——写文档、拉群沟通、排会议日程、更新多维表格,然后在IDE和浏览器之间来回切换,那么你一定会对这个项目感兴趣…...

Ziatype印相私藏工作流曝光(含自研LUT预设包+EXIF元数据注入模板,仅限本期开放下载)

更多请点击: https://intelliparadigm.com 第一章:Ziatype印相的技术起源与美学哲学 Ziatype(锌盐印相法)并非数字时代的产物,而是19世纪末摄影化学工艺的深度演化——它脱胎于铂金印相(Platinotype&#…...

小米Agent岗二面:你们 RAG 知识库上线之后,文档更新了怎么办?

👔面试官:你们 RAG 知识库上线之后,文档更新了怎么办?总不能每次改个文档就把整个知识库重建一遍吧。 🙋‍♂️我:可以直接找到变了的那个 chunk,更新它的向量就行了。 👔面试官&a…...