记录分布式服务器集群架构变化简单思路

分布式集群架构场景方案 文章内容输出来源:拉勾教育Java高薪训练营。 本篇文章是 分布式集群架构场景方案 学习课程中的一部分笔记 分布式与集群 分布式 把一个系统拆分为多个子系统,每个子系统负责各自的那部分功能,独立部署,各司其职 集群 多个实例共同工作,最简单/最常见的集群是把一个应用复制多份部署 一致性Hash算法 Hash算法在分布式集群中应用场景 Hash算法,⽐如说在安全加密领域MD5、SHA等加密算法,在数据存储和查找⽅⾯有Hash表等, 以上都应⽤到了Hash算法。 普通Hash算法存在的问题(Hash冲突 阅读详情

记录分布式服务器集群架构变化简单思路

  91人阅读  评论(0)  收藏  举报
  分类:

目录(?)[+]

01.大型网站演化(APP)

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),科学计算集群(High Performance Computing Cluster)。

分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

之前在网上看到一篇关于大型网站演化的博客。http://www.cnblogs.com/leefreeman/p/3993449.html

每个大型网站都会有不同的架构模式,而架构内容也就是在处理均衡负载,缓存,数据库,文件系统等,只是在不同的环境下,不同的条件下,架构的模型不一样,目的旨在提高网站的性能。

最初的架构只有应用程序,数据库,文件服务。


到后来,分布式服务、集群架设。




02.关于均衡负载方案

在上一篇,《Nginx反向代理实现均衡负载》讨论过过的nginx现实均衡负载方案,这里选择另一种HAProxy+Keepalived双机高可用均衡负载方案。

HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。

不论是Haproxy还是Keepalived甚至是上游服务器均提高生产力并增强可用性,也就是如下架构中Haproxy,Keepalived,Httpd服务器任意宕机一台服务还是可以正常运行的。

HAProxy的优点:

1、HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段);

2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;

3、支持url检测后端的服务器;

4、本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的;

5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡;




03.关于Redis缓存方案

缓存分为服务器缓存和应用程序缓存。

关于应用程序内缓存,已经在Jue后台框架里面做了模块处理了。

关于服务器缓存,主要缓存服务器文件,减少服务器和php交互,减少均衡负载服务器和应用程序服务器交互。

缓存里面有一种典型的memcached,现在用的多的是redis轻量级缓存方案。

关于memcached与redis,看这篇 《Memcached vs Redis?》

Redis主要将数据存储在各种格式:列表,数组,集合和排序集,一次能接受多个命令,阻塞读写,等待直到另一个进程将数据写入高速缓存。


一篇关于Reids缓存方案。《高可用、开源的Redis缓存集群方案》




04.关于搜索引擎Sphinx方案

(第一期不做,后期需求时候考虑)

Sphinx是俄罗斯人开发的,号称是很吊啦,千万级数据检索,每秒10MB/s,搭过环境。

Sphinx和MySQL是基于数据库的全文引擎,创建索引是B+树和hash key-value的方式。

原理类似于用底层C检索MySQL,然后弄出一个sphinx.conf配置文件,索引与搜索均以这个文件为依据进行,要进行全文检索,首先就要配置好sphinx.conf,告诉sphinx哪些字段需要进行索引,哪些字段需要在where,orderby,groupby中用到。

Sphinx中文




05.关于NoSQL快速存储方案

NoSQL在这里的使用价值是处理一些琐事,比如用户个人网站的一些css值,height,width,color等等的小而繁多的数据,采用NoSQL旨在提升数据库速度,减少对MySQL的SELECT请求。

关于NoSQL的方案很多了,选一个简单的MongDB好了。




06.关于分布式MySQL方案

(做分布式MySQL还没尝试过,初期也不清楚mysql所需要的压力,所以第一期不打算做分布式MySQL)

《标准MySQL数据库外的5个开源兼容方案》




07.分布式集群方案

综合起来,大致就是如下模型,初探分布式架构,很多模块将就形势做调整,时时更新中,待续。。。

参考:http://homeway.me/2014/12/10/think-about-distributed-clusters/
C++集群聊天服务器:从Reactor模型到分布式消息路由实战 在现代高并发服务端开发中,Reactor模型和分布式系统设计是构建高性能、可扩展应用的核心技术。Reactor模式通过非阻塞I/O与事件驱动机制,高效管理海量网络连接,是应对C10K甚至C100K问题的经典方案。其技术价值在于将有限的系统资源集中于处理活跃事件,极大提升了单机吞吐能力。而在分布式场景下,系统状态的外置与一致性维护成为关键,这自然引入了对Redis、MySQL等外部存储组件的依赖,以实现服务的无状态化和高可用。这些基础技术共同支撑了诸如即时通讯、在线游戏、实时协作等需要低延迟、高可靠消息传递的 阅读详情

相关推荐

服务器集群技术全解析:从高可用到K8s的架构选型指南

服务器集群技术是现代IT基础设施的核心,它通过将多台服务器整合为单一逻辑系统,解决单点故障、性能瓶颈和扩展性难题。其核心原理在于利用冗余和分布式架构,通过负载均衡、故障转移和并行计算等机制,实现系统的高可用与弹性伸缩。在技术价值层面,集群不仅保障了关键业务的连续性,还大幅提升了资源利用率和处理能力,成为支撑电商、金融、大数据及科学计算等高性能场景的基石。具体到应用场景,高可用集群通过主备切换确保服务不间断,负载均衡集群智能分发流量以应对高并发,而Kubernetes等容器编排集群则实现了云原生应用的自动化部

weixin_30756499的博客 489

一个分布式服务器集群架构方案

> [http://homeway.me/](http://homeway.me/) ![nginx-reverse-proxy-conf](http://homeway.me/image/logo-big-data-cloud.jpg) # 0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通

夏日小草 1230

C#游戏服务器高可用架构实战:从单点到分布式集群

高可用性是分布式系统设计的核心概念,旨在通过冗余与容错机制最大化服务在线时间。其基本原理在于消除单点故障,通过负载均衡、服务发现与数据复制等技术,构建具备自动故障转移能力的弹性架构。这一技术价值在于保障关键业务连续性,尤其在游戏、电商等实时交互场景中,直接关系到用户体验与商业收益。本文聚焦于C#与.NET技术栈,结合Docker容器化与Redis缓存等热词,深入探讨如何从零构建一套具备高可用能力的游戏服务器集群,涵盖服务部署、数据持久化、监控告警等全链路工程实践。

weixin_30697239的博客 336

五大分布式集群架构问题解决方案

文章内容输出来源:拉勾教育Java高薪训练营。 前言 1 ⼀致性Hash算法 2 集群时钟同步问题 3 分布式ID解决⽅案 4 分布式调度问题 5 Session共享问题 Session共享及Session保持或者叫做Session⼀致性。

u014379055的博客 2007

C++分布式棋牌游戏服务器架构:从网关设计到状态同步实战

分布式系统架构是应对高并发、高可用性需求的核心技术方案,其核心原理在于通过服务拆分与协同,将单体应用解耦为多个可独立扩展的组件。在游戏服务器开发领域,这一技术价值尤为突出,它能有效支撑海量用户同时在线的实时交互场景。本文聚焦于棋牌类游戏的分布式服务端实践,深入剖析了网关层与逻辑层分离的经典架构模式。针对游戏场景中的强状态同步与低延迟要求,文章详细解读了基于自定义二进制协议与Protobuf的通信方案,并探讨了利用Redis实现分布式会话管理与状态同步的关键机制。通过结合网络编程、序列化协议与缓存中间件,为构

weixin_30873847的博客 335

Python+OpenCV实战:5分钟搞定机械臂手眼标定(眼在手上模式)

本文详细介绍了使用Python和OpenCV在5分钟内完成机械臂手眼标定(眼在手上模式)的实战教程。通过解析相机坐标系与机械臂基坐标系的转换关系,提供从数据采集到标定矩阵计算的全流程代码实现,帮助开发者快速解决AX=XB问题,提升机械臂视觉引导精度。

weixin_33670786的博客 495

分布式集群架构场景化解决方案相关

文章目录前言一、一致性Hash算法1.1 Hash算法应用场景1.2 普通Hash算法存在的问题1.3 一致性Hash算法二、集群时钟同步问题2.1 时钟不同步导致的问题2.2 集群时钟同步配置2.2.1 场景一:分布式集群中各个服务器节点都能访问互联网2.2.2 场景二:分布式集群中某一个服务器节点可以访问互联网或者所有节点都不能够访问互联网三、分布式ID解决方案3.1 UUID3.2 独立数据库的自增ID(基本不用)3.3 SnowFlake 雪花算法3.4 借助Redis的Incr命令获取全局唯一ID

刘鑫的博客 695

STM32与K210串口通信

这篇文章是为了填上一篇埋下的坑,k210和STM32通过串口通信,我是采用数据包的形式发送数据的,因为K210发送的数据有几种,采用数据包的形式发送比较安全。本文代码运行的平台是STM32F103C8T6和K210 Dock,只涉及到K210发送数据给STM32,stm32将接受到的数据显示到0.96寸OLED屏上。

qq_70715693的博客 3万+

分布式 - 分布式体系架构:集群和分布式

集群是指由多台计算机组成的一个计算资源池,这些计算机通过网络互相连接,共同完成某个任务。集群可以提高系统的可靠性、可扩展性和性能,因为它可以将任务分配给多台计算机同时处理,从而提高计算速度和处理能力。集群通常由一个主节点和多个从节点组成,主节点负责协调和管理整个集群的工作,而从节点则负责执行具体的计算任务。分布式计算是一种计算模型,它利用多台计算机或处理器来协同工作,完成一个任务或解决一个问题。

你今天真好看呀 3400

萤石摄像头批量下载视频后FFmepg拼接

本文描述萤石摄像头,如何批量下载视频,然后把视频片段拼接为一个完整的视频,亲测有效。有问题,可以下面留言

烤鱼哥哥的博客 1202

Linux-RGMII PHY 88E1512 驱动调试记录

1. 简介 1)开发板平台:创龙 AM5728 (tl5728-easy-evm) 2)PHY芯片:Marvell 88E1512 88E1512和88E1510都是一个系列的phy,采用marvell的通用phy驱动,驱动源码路径如下:drivers/net/phy/marvell.c 2. 应用场景 1)系统框图 AM5728连接两个PHY,PHY0的工作模式是 RGMII to Copper (RGMII到电口),PHY1的工作模式是 RGMII to SGMII。 两个PHY与处理器的连接方式都是

weixin_40407893的博客 2万+

微服务---分布式多级缓存集群实现方案(Caffeine+redis+nginx本地缓存+Canal数据同步)

多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能: - 浏览器访问静态资源时,优先读取浏览器本地缓存 - 访问非静态资源(ajax查询数据)时,访问服务端 - 请求到达Nginx后,优先读取Nginx本地缓存 - 如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat) - 如果Redis查询未命中,则查询Tomcat - 请求进入Tomcat后,优先查询JVM进程缓存 - 如果JVM进程缓存未命中,则查询数据库

爪蛙毁一生的博客 3402

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 6万+

高性能服务器架构思路「不仅是思路」

在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而,服务器端程序在性能问题上应该有何种基本思路,这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问题的基本策略和经典实践,并分为几个部分来说明: 1.缓存策略的概念和实例 2.缓存策略的难点:不同特点的缓存数据的清理机制 3.分布策略的概念和实例 4.分布策略的难...

勇往直前的专栏 418

化工设计软件:AutoCAD Plant 3D二次开发_(1).AutoCADPlant3D概述

AutoCAD Plant 3D 是一款专为化工行业设计的三维工厂设计和建模软件。它基于AutoCAD平台,提供了强大的三维建模功能和专业的化工设计工具,帮助工程师和设计师在工厂设计过程中提高效率和准确性。AutoCAD Plant 3D不仅能够创建详细的三维模型,还可以进行管道设计、设备布置、支架设计等复杂任务。通过上述案例,我们可以看出 AutoCAD Plant 3D 在化工厂设计中的强大功能和优势。该软件不仅提供了丰富的建模工具和专业的设计功能,还支持二次开发,使用户能够根据具体需求进行定制化操作。

kkchenjj的博客 1100

云计算 | 期末梳理(上)

2024云计算回忆版 && 复盘向梳理

知识库搭建ing 2231

集群、分布式与微服务:从基础概念到架构演进实战解析

在构建高可用、可扩展的现代软件系统时,集群、分布式与微服务是三个核心且紧密关联的技术概念。集群通过复制和负载均衡,将多个同构节点组织起来,共同处理相同任务,核心目标是提升系统性能和高可用性,例如通过Nginx实现Web服务器集群以应对高并发场景。分布式系统则将复杂业务拆分为多个独立部署的子系统,通过网络通信协作完成整体目标,其核心价值在于解耦业务模块、实现能力扩展和技术栈异构,典型如电商系统中订单、库存、支付等服务的独立部署与协同。微服务是分布式架构的一种精细化实践,强调按业务能力划分服务、高度自治和独立部

weixin_34038293的博客 407

Higress 入门:初探阿里云原生 AI 网关

Higress 是一款由阿里巴巴推出的云原生 API 网关,其内核基于 Istio 和 Envoy。与传统 API 网关不同,它深度聚焦于 AI 场景,支持国内外众多主流模型供应商,如 OpenAI、百度文心一言等,还兼容基于 vllm/ollama 等自建的 DeepSeek 模型,能够满足不同类型企业对 AI 能力集成与管理的需求。Higress 作为一款功能强大的云原生 API 网关,在 AI 时代展现出独特的优势。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1862

分布式Session共享解决方案

Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。单机情况下,不存在Session共享的情况,分布式情况下,如果不进行Session共享会出现请求落到不同机器要重复登录的情况,一般来说解决Session共享有以下几种方案。 1、session复制 session复制是早期的企业级的使用比较多的一种服务器集群session管理机制。应用服务器开启web容器的sessi...

红豆和绿豆的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

基于Redis构建百万级并发Locust分布式压测集群架构与实战

在软件性能工程领域,分布式系统架构是应对高并发场景的核心解决方案。其基本原理是通过将计算任务分解,由多个节点并行处理,以突破单机资源瓶颈,实现水平扩展。这一技术价值在于能够真实模拟海量用户负载,为系统容量评估和瓶颈定位提供可靠依据,广泛应用于互联网、金融、物联网等高并发业务场景的性能测试与容量规划。本文聚焦于性能测试工具Locust,针对其原生分布式模式在大规模Worker节点下Master单点压力与协调瓶颈的痛点,深入探讨如何引入Redis这一高性能内存数据库作为分布式协调中心。通过利用Redis的Pub

weixin_30471561的博客 346

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Kubernetes-在Kubernetes中部署Tensorflow集群

知识准备 1、kubernetes中的基本概念如deployment,statefulset,rc,svc,pod等; 2、tensorflow分布式集群。 Tensorflow架构简介 使用Tensorflow进行训练分为单机模式和分布式集群模式 单机模式的比较简单(略) 分布式模式主要包括如下几个角色: ps服务器:进行参数处理 worker服务器:进行梯度...

iov_aaron的专栏 2749

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

K8S集群日志收集方案

K8S集群日志收集方案K8S集群日志收集方案方案一方案二简单介绍下ELK方案三Docker Image获取 K8S集群日志收集方案 在大型分布式部署的架构中,不同的服务模块部署在不同的服务器中,问题出现时,大部分情况需要根据问题暴露的关键信息定位具体的服务器和服务模块。常见的解决思路是建立一套集中式日志收集系统,将所有节点上的日志统一收集、管理、访问,将极大提高定位问题的效率。 一个完整的集中式日...

Cui_Cui_666的博客 5040

基于QClaw理念构建分布式任务集群:架构设计与实战部署指南

分布式任务调度是解决大规模并行计算问题的核心技术,其核心原理在于将复杂任务分解为多个独立子任务,通过中心化的调度系统分配给分布式节点并行执行。该技术通过解耦任务提交与执行,实现了高吞吐、高可用的计算能力,在数据处理、网络爬虫、批量作业等场景具有重要价值。本文以新兴工具QClaw为切入点,深入解析分布式任务集群的通用架构模型,涵盖指挥中心、Worker节点、消息队列等关键组件,并结合qclaw使用教程和qclaw部署等实践需求,详细演示了基于Celery+Redis的技术栈实现方案,包括任务定义、节点部署、监

weixin_34198881的博客 426

java之学习记录 7 - 1 - 分布式技术Zookeeper实战(下)

4. Zookeeper实战(开发重点) 4.1 分布式安装部署 集群思路:先搞定一台服务器,再克隆出两台,形成集群! 4.1.1 安装zookeeper 请参考https://blog.youkuaiyun.com/dear_zx/article/details/113809479 文中2.1 4.1.2 配置服务器编号 在/opt/zookeeper/zkData创建myid文件 [root@localhost zkData]# vim myid 在文件中添加与server对应的编...

dear_zx的博客 313

架构师眼中的高并发架构

点击上方"IT牧场",选择"设为星标"技术干货每日送达!责编:乐乐|链接:my.oschina.net/u/3772106/blog/179356100 前言高...

ITMuch的专栏 331
上一篇: scribe、chukwa、kafka、flume日志系统对比
下一篇: C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充。随后各编译器厂商都各自实现或部分实现了C++中的特性。 如需查看各编译器对C++
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值