全球主机交流论坛

标题: 一直想问,如何一个网站在多台服务器同步运行 [打印本页]

作者: cbm    时间: 2023-12-5 10:24
标题: 一直想问,如何一个网站在多台服务器同步运行
本帖最后由 cbm 于 2023-12-5 10:29 编辑

比如很多大厂服务器肯定不止一台,他们是怎么同步运行的呢(不是cdn,是源服务器)
比如我的网站想在国内部署一台vps,在国外部署一台vps,如何将他们数据同步运行起来,有没有好的方案请教一下
作者: 会翻车吗    时间: 2023-12-5 10:26
这元老怎么和新人一样
作者: 魏斌    时间: 2023-12-5 10:26
k8s之类的吧
作者: cbm    时间: 2023-12-5 10:28
本帖最后由 cbm 于 2023-12-5 10:35 编辑
会翻车吗 发表于 2023-12-5 10:26
这元老怎么和新人一样


你不是新人那你说
作者: ncnc    时间: 2023-12-5 10:29
同问 我也不会
作者: 机长    时间: 2023-12-5 10:29
每天买张机票带硬盘过去
作者: 知永    时间: 2023-12-5 10:30
cbm 发表于 2023-12-5 10:28
数据同步怎么弄呢

国内国外数据同步不稳定,要么都在国内,要么都在国外

作者: q959954596    时间: 2023-12-5 10:30
把cpu都插到同一个主板上,内存硬盘也是,合并到一起
应该就没问题了
作者: yima    时间: 2023-12-5 10:30
宝塔可以给你完成同步
作者: cbm    时间: 2023-12-5 10:30
知永 发表于 2023-12-5 10:30
国内国外数据同步不稳定,要么都在国内,要么都在国外

都在国内如何让两台同步运行呢
作者: 糟糕的鲍勃    时间: 2023-12-5 10:31
Rsync实时同步
作者: lzylyg    时间: 2023-12-5 10:32
不建议这样搞 如果像客户注册登陆这类网站
要是个博客啥的那还行 因为总归会有网络波动的

宝塔面板有数据库主从复制功能

大厂一般是采用anycast技术 实际是BGp路由 一般很少有很多源 那种也会影响数据安全性 一般后面都是计算集群 不是单台
作者: bopo520    时间: 2023-12-5 10:32
大厂的一般是,计算、网络、存储分开的。
作者: lzylyg    时间: 2023-12-5 10:35
也可以采用远程数据库 不过总归是要有网络因素影响 不过都在国内就影响不大了 除非是一台内蒙一台广东这种...
作者: Prk    时间: 2023-12-5 10:36
你可能想搜:“K8S 集群”、“分布式”
作者: cbm    时间: 2023-12-5 10:36
lzylyg 发表于 2023-12-5 10:35
也可以采用远程数据库 不过总归是要有网络因素影响 不过都在国内就影响不大了 除非是一台内蒙一台广东这种. ...

那文件怎么办,网站文件怎么同步运行呢,不考虑网络波动。

作者: cbm    时间: 2023-12-5 10:37
Prk 发表于 2023-12-5 10:36
你可能想搜:“K8S 集群”、“分布式”

具体说说呗,哪个方案好搞,不考虑网络波动
作者: lzylyg    时间: 2023-12-5 10:37
cbm 发表于 2023-12-5 10:36
那文件怎么办,网站文件怎么同步运行呢,不考虑网络波动。

宝塔也有同步文件的插件 软件商店搜索就行
作者: cbm    时间: 2023-12-5 10:38
lzylyg 发表于 2023-12-5 10:37
宝塔也有同步文件的插件 软件商店搜索就行

这种都有滞后性吧,不是实时的呀
作者: lzylyg    时间: 2023-12-5 10:39
cbm 发表于 2023-12-5 10:38
这种都有滞后性吧,不是实时的呀

滞后肯定都是
作者: zhou    时间: 2023-12-5 10:39
同问一下,我也不会
作者: lzylyg    时间: 2023-12-5 10:40
都是网络因素导致的 理想情况是可以实时的

插件说明:
原数据同步工具,基于rsync开发的文件同步工具,可定时或实时的发送文件和更新文件,也可用于配置负载均衡、集群、异地备份等场景
作者: 双子小虾    时间: 2023-12-5 10:42
宝塔可以同步
作者: Prk    时间: 2023-12-5 10:43
cbm 发表于 2023-12-5 10:37
具体说说呗,哪个方案好搞,不考虑网络波动

“论坛元老” 如果能问出来这个问题建议你还是好好学习一下,因为没有一个方案是通用适用于任何情况的!

实际情况要根据是否频繁读写数据库、数据负载多大等情况多重考虑。如果你是一个小项目的话可以考虑开一台服务器专门做数据库,剩下的做网站,数据库服务器不要对外公开 IP,硬件防火墙只允许网站服务器连接 3306(数据库默认端口,可改),这样就是你说的不考虑网络波动最简单的数据库实现。网站程序是有缓存的,但是多数情况你不需要考虑,直接把你的 PHP 或什么前 / 后端程序部署到那些网站服务器,然后域名同时解析这几个(也可以考虑弄一台服务器经常切换域名解析,保障高可用)。

最后在环境变量或像彩虹的程序那样,把数据库配置从 127.0.0.1 / localhost 改到你数据库服务器的 IP 地址和端口(因为端口不是必须 3306 是可以改的),账号密码不要用 root,注意一下账号密码可能会变动,数据库名导入进去了的话和前缀理论是不会变的。

当然,这是最简单的实现,实际上你必须多了解一下运行的逻辑和原理以及综合自己的成本来决定如何决定自己的业务逻辑。
作者: 小朊    时间: 2023-12-5 10:46
只有小鸡的没有这种烦恼



zsbd zsbd zsbd
  

作者: 酱油静静子    时间: 2023-12-5 10:46
我觉得是   前后端分离,数据库集群,数据处理集群,
作者: cbm    时间: 2023-12-5 10:48
Prk 发表于 2023-12-5 10:43
“论坛元老” 如果能问出来这个问题建议你还是好好学习一下,因为没有一个方案是通用适用于任何情况的!
...

mysql数据库可以同时用一个,但网站程序呢,比如一个网站是允许用户上传附件的,网站程序一共500g,如果将这500g分别都要在多台服务器上都同步存上那无疑是对资源非常浪费,有什么好方案呢
作者: Prk    时间: 2023-12-5 10:51
cbm 发表于 2023-12-5 10:48
mysql数据库可以同时用一个,但网站程序呢,比如一个网站是允许用户上传附件的,网站程序一共500g,如果 ...

分布式文件系统。。。。

一般我的业务逻辑包括噼里啪啦弹幕网、YT 还是任何一个大厂,也全都是把文件存储到另一批集群。。。
你可以用图床等。。。。

而且都是钱后端分离的。。
作者: cbm    时间: 2023-12-5 10:53
Prk 发表于 2023-12-5 10:51
分布式文件系统。。。。

一般我的业务逻辑包括噼里啪啦弹幕网、YT 还是任何一个大厂,也全都是把文件存 ...

我如果也想把网站数据都放到大盘鸡里存,然后再找两台高性能的机器去做计算,用的什么技术实现的呢
作者: hxhxhx    时间: 2023-12-5 10:54
CAP定理:一致性、可用性和分区容错性同一时刻只能保证两个
作者: cscool    时间: 2023-12-5 10:57
cbm 发表于 2023-12-5 10:48
mysql数据库可以同时用一个,但网站程序呢,比如一个网站是允许用户上传附件的,网站程序一共500g,如果 ...

这个和数据库不是一个道理吗,文件存储肯定是一个集中的存储位置啊,服务本身只处理传输这段过程
作者: Prk    时间: 2023-12-5 10:58
cbm 发表于 2023-12-5 10:53
我如果也想把网站数据都放到大盘鸡里存,然后再找两台高性能的机器去做计算,用的什么技术实现的呢 ...

如果可以的话 你最好详细说明一下你的业务逻辑和是什么产品

当然,你可以选择用户在上传的时候你在大盘鸡的程序上做一个临时鉴权 TOKEN,然后传给用户,用户拿到 TOKEN 之后带着 TOKEN 上传图片到大盘鸡,上传成功后得到一个 UUID 或是什么,传给后端,后端拿到后去大盘鸡验证是不是这个用户以及各种验证完成授权,未来返回给前端的图片可以做临时鉴权或是永久有效直链看图片。

开发一套程序就行,这也将导致你当前的程序的数据库结构会被改变。

如果有需要,我可以接定制。
作者: cbm    时间: 2023-12-5 11:06
Prk 发表于 2023-12-5 10:58
如果可以的话 你最好详细说明一下你的业务逻辑和是什么产品

当然,你可以选择用户在上传的时候你在大盘 ...

好复杂,比如就是最普通的wordpress,假如我在国内有5台服务器,有一台大盘鸡,不考虑网络波动。首先如何将那些index.php,index.css等网站程序同步运行起来,如果把这些网站程序同时放到大盘鸡里,那php程序还能远程下载再执行这些文件吗,这肯定很慢,难道只能是每台都存一份吗
你说的用户上传的文件可以单独放到一个服务器里做鉴权,我想问问计算集群的话是如何操作的,网站文件放到哪里如何同步更新等
作者: comet    时间: 2023-12-5 11:09
inotify+rsync 实时同步
作者: Prk    时间: 2023-12-5 11:09
cbm 发表于 2023-12-5 11:06
好复杂,比如就是最普通的wordpress,假如我在国内有5台服务器,有一台大盘鸡,不考虑网络波动。首先如何 ...

除了用户上传的文件以及缓存外,你比如的 WordPress 源码在运行时的生命周期过程源码自身不会改变。而且没有任何人能够三~五分钟改动一次源码!你只需要把你的程序分别部署在所有做网站的服务器即可!然后把域名和 rewrite 配置好,然后域名解析过去就行了!

至于分布式的方法你需要单独学习对应的技术,我就算开个帖子也教不会你!这是个复杂的东西,我花了 20 多个小时学完的 K8S,脑子都快炸了!还是那句话,你必须给我一个你的业务是什么,以及访问量等各种信息,我才能提供一个更加优质的解决方案!
作者: cbm    时间: 2023-12-5 11:15
Prk 发表于 2023-12-5 11:09
除了用户上传的文件以及缓存外,你比如的 WordPress 源码在运行时的生命周期过程源码自身不会改变。而且 ...

还有一个问题,如何让他们负载均衡实现性能叠加,是用k8s之类的吗。
比如我的5台服务器都是2h2g,分别部署到了不同地区,如果一台地区的访客量急增,那对于他们来说其余的服务器就没有起到计算作用,受限于那台服务器性能,还有内存的话一台服务器php进程爆了如何让其他服务器来进行负载均衡呢,真正实现2h2g*5=10h10g
作者: openshit    时间: 2023-12-5 11:15
不知所问
作者: 打酱油的    时间: 2023-12-5 11:16
这个问题要展开讲细节可太多了
anycast
dns geo分流
前后端分离
计算和存储分离
分布式存储
作者: 打酱油的    时间: 2023-12-5 11:18
cbm 发表于 2023-12-5 10:53
我如果也想把网站数据都放到大盘鸡里存,然后再找两台高性能的机器去做计算,用的什么技术实现的呢 ...

你这种简单场景不需要纠结特定技术
处理好计算和存储异地的网络问题和费用问题就好

例如你的计算服务器直接读s3而不是你的大盘鸡,一个道理。
作者: Front    时间: 2023-12-5 11:18
分布式?
作者: Prk    时间: 2023-12-5 11:19
cbm 发表于 2023-12-5 11:15
还有一个问题,如何让他们负载均衡实现性能叠加,是用k8s之类的吗。
比如我的5台服务器都是2h2g,分别部 ...

这个你可以写一个程序监控服务器的性能使用,然后分配更多 / 更少的服务器

当然,这一切如果使用 K8S 那么就非常好实现!

监控到服务器的性能和负载到了阈值,就会使用邮箱 / Webhook 通知你,然后调用空余服务器资源去保证业务的稳定运行。
作者: cbm    时间: 2023-12-5 11:19
糟糕的鲍勃 发表于 2023-12-5 10:31
Rsync实时同步

文件是同步了,如果数据量大的话就慢了。
但性能没办法叠加
作者: 黑客    时间: 2023-12-5 11:21
redis分布式数据库,此贴终结
作者: locsvip    时间: 2023-12-5 11:23
还有这操作啊
作者: qldzs    时间: 2023-12-5 11:24
cbm 发表于 2023-12-5 11:15
还有一个问题,如何让他们负载均衡实现性能叠加,是用k8s之类的吗。
比如我的5台服务器都是2h2g,分别部 ...

核心:项目程序
分布式组件:Dns服务、网关、服务治理、分布式存储、分布式数据库...【根据需要可以加一堆组件】
管理方案:K8s等容器编排和管理方案

关键词:分布式、微服务、如何搭建一个分布式项目
作者: cbm    时间: 2023-12-5 11:30
黑客 发表于 2023-12-5 11:21
redis分布式数据库,此贴终结

计算性能无法叠加
作者: 黑客    时间: 2023-12-5 11:32
cbm 发表于 2023-12-5 11:30
计算性能无法叠加

这就涉及到我的知识盲区了
作者: 表弟    时间: 2023-12-5 11:37
负载均衡不就是嘛
作者: zhujizixun    时间: 2023-12-5 11:42
国内部署一台VPS,在国外部署一台VPS,你是来搞笑的吗?万年不更新的站可以这么弄,企业业务你觉得可能么,你当数据库同步是过家家呢,延迟、一致性你怎么保证,CAP定理没听过吗?求求你回学校再读一遍书吧。
作者: zhujizixun    时间: 2023-12-5 11:48
一切的前提是内网,离开了内网说能实现的全都是云玩家。
作者: cbm    时间: 2023-12-5 11:55
Prk 发表于 2023-12-5 11:19
这个你可以写一个程序监控服务器的性能使用,然后分配更多 / 更少的服务器

当然,这一切如果使用 K8S 那 ...

那这个不错啊,假设说有100个php并发,设定每个服务器只能处理20个,如果超了就自动交给剩下的服务器去处理,最后实现每台服务器都正好处理20个并发。

有些名词不太懂,这个k8s是叫集群吧,他跟负载均衡和分布式是一个东西吗
作者: yanzhiling2002    时间: 2023-12-5 11:59
说简单点,数据库同步+文件(程序代码文件)同步 就可以做到。

实际应用中肯定有更复杂的情况,具体情况具体分析吧。
作者: 人间    时间: 2023-12-5 12:05
其实有个办法,首先数据库是外网,所有网站访问一个数据库,这样更新也是一个数据库,比较方便,数据库解决了
就剩下网站里面更新的图片这些文件了,用数据打包解压的方式,每隔5分钟压缩,上传其他服务器,下载,解压,只要网站源码不是动不动1g,如果很小5分钟左右也就差不多了
最后域名解析,国内访问国内,国外访问国外
作者: lzlancom    时间: 2023-12-5 12:18
分前后台的吧,20年前我就是组织了一篇多个空间连接同个数据搭建dz的不同地区访问分站,加速不同地区访问的文章,然后通过了落伍者的账号申请考核
作者: Typeboom    时间: 2023-12-5 13:04
上云数据库
作者: xiong_dn    时间: 2023-12-5 13:21
集群,分布式数据
作者: 知永    时间: 2023-12-5 14:51
cbm 发表于 2023-12-5 10:30
都在国内如何让两台同步运行呢

同步数据库就行了




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4