练习负载均衡时遇到的一些问题,求解答

最近 想着动手练习一下负载均衡,于是凑齐了3台云服务器召唤神龙,没想到神龙威力太大把我灭了!(三台都是学生服务器… 比较便宜)。

配置简单的负载均衡 百度就完全ok,我用的是nginx的upstream。

现在我的结构是这样的

掉水里了..

本以为这样就算完事了,然而!!!!

读的时候负载均衡没啥问题刚开始是一样的,

可是写的时候负载均衡就导致了两个是数据不一样了

这怎么解决?

情况1、我刚开始想着读写分离 node1当主负责写,node2当从负责读,然后修改了laravel里mysql的读写分离配置  然后就成了如下结构

掉水里了..

可怕的事情发生了!!  当node1接收到读的请求时查询node2的mysql 耗时9S!!!

当node2接收到写的请求时连接node1的MySQL 去写,写直接超时了…

情况2、然后我继续改(先不考虑主从复制延迟的问题,假设延迟很小)

这次结果如下!
掉水里了..

这样读是没啥问题了 都读自己,但是写的问题还没解决!!!

**先都不考虑复制延迟的问题***

情况3、继续改(这次是主主复制。。这个还未尝试也发现了问题)

这次结果如下

掉水里了..

这样看。。好像是没啥问题了  读写都是自己,就是复制的问题了。

可是!!!  这时候如果要扩展一台节点服务器呢

掉水里了..

问题:在情况1的时候  读写分离慢是因为 跨着服务器操作MySQL的原因么,实际项目中是不是MySQL和项目是分离开来的,MySQL是单独的服务器,那么MySQL单独的话,项目在访问MySQL的时候是不是也慢呢

!!!!等待大佬解答,当然 自己也再慢慢尝试!!!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

虽然我给不了什么好的解决办法,但还是希望楼主可以改一下标题,让标题更加有意义一点或许会更好一点

5年前 评论
黑将军

实际项目中不应该是MySQL单独拿出来做读写分离吗?你这样每个节点里都得建一个MySQL服务,跟单机好像没啥区别,从node1写到node2的时候还多了网络开销

5年前 评论

@黑将军 额。。我这个是自己练手来着。。。 今天又花10元在阿里云买了个mysql服务,做主库 已经解决了..., 这两个node只负责读,然后在和主库做读写分离

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!