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

最近 想着动手练习一下负载均衡,于是凑齐了 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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

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

6年前 评论
黑将军

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

6年前 评论

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

6年前 评论