练习负载均衡的踩坑之路 2
之前在本地虚拟机 用docker模拟了负载均衡,还算比较顺利(博客:尝试用 docker 模拟负载均衡完整版(踩着石头过河))
然后就想着在实际中应用一下,正好之前自己有个练手的小程序项目。
找朋友借了2台学生服务器(9.9一个月那种)开始磨刀霍霍向猪羊!
今天继续!
我目前的资源有
一台 1H1G的服务器用来做负载均衡(master服务器)
我自己的1H2G的服务器用来当node1节点服务器(node1服务器)
还有一台1H1G的服务器用来当node2节点服务器(node2服务器)
Master服务器只装了nginx 用来做负载均衡的转发
Node1 搭建了一套dnmp环境(docker+nginx+mysql+php7.2)
Node2 搭建了一套一样的dnmp环境(docker+nginx+mysql+php7.2)
(dnmp环境可参考博客:终于能用 Docker 搭建一套自己的环境了(dnmp))
然后开始了我的踩坑之旅
昨天开始踩坑遇到了一些疑问和问题记录在此(博客:练习负载均衡时遇到的一些问题,求解答)
今天遇到的问题
1、 我在node1远程连接node2中的mysql 秒连,查询的时候也是特别快,可到了项目中不知道怎么回事特别慢 10s左右吧,于是开始百度搜到的大部分答案都是在my.cnf中[mysqld]下面加一行skip-name-resolve,说是什么和DNS什么什么什么一堆我不太懂的。总之 先加了 然后重启mysql,继续试,发现还是不行。。
2、 我去查询慢的那个代码里打断点,代码如下
先在查询$music的时候处输出了$music;查询挺快基本上秒查,发现到了使用map方法的时候一下子慢了,我就把map方法里的表查询挨个注释,把User和Likes那两个查询注释之后速度就快了好多, 然后我就特别纳闷为什么本地数据访问的时候那么快,从node1连接node2的时候查询就那么慢,该加的索引也加了,而且在本地远程连接node2的时候也没延迟,怎么到这就慢了。难道是我服务器配置太低的原因?
于是我换了种方式
在阿里云买了6个月的MySQL服务(好像第一次买比较便宜,个人版的6个月10元)
把我的数据倒了过去,然后node1和node2读写全部用这台MySQL,发现各种超时,我擦!!!
后来发现我写错了我填写DB_HOST的时候填的是内网地址!!!!这里请注意!!
然后申请开通外网地址把DB_HOST改了,继续访问。。速度没什么影响和访问本地数据库速度是一样的。
然后把我的结构做了如下修改
Node1和node2修改为只读做从,用新买的MySQL写做主,然后在做主从复制 。。。。。
Ok 问题解决了
用阿里云的MySQL做主的时候(怎么做从我还不知道,有兴趣的可以百度一下)
创建一个主从复制的用户
然后创建用户
Ok 剩下的我是参考的这篇文章(https://blog.csdn.net/m0_37675643/article/...)
光看文章是没有用的 ,要动手实践起来才能真正明白
本作品采用《CC 协议》,转载必须注明作者和本文链接