up:: 单机容量问题之分布式拓展
说明:
根据上篇文章所写的架构图部署四台服务器。。。
更新:CSDN云容器没有公网,难搞,而且是云容器,我又经常丢文件,该用云服务器部署多个docker实现。。。
Docker Compose定义运行多个Docker容器 - 刘较瘦丫 - 博客园
部署Mysql服务器
每台服务器有各自只能,比如我们这台只部署mysql数据库。。。
关于如何部署,前面讲过,根据所需步骤进行即可: 云端部署流程
注意:因为我们项目和数据库不是在同一台服务器上,不能在配置文件继续使用127.0.0.1:3306连接了。。。
查看我们mysql默认的用户表: mysql不是得到密码和用户名就完事了,为了保证数据库的安全性,数据库内部对ip访问还有一层限制。。。
1. 登陆数据库 mysql -uroot -proot;
2. 选择mysql自带的默认数据库名 use mysql;
3. 查看里面的表数据 show tables;
4. 选择查看表数据 select host,user,password from user;
5. 为了简单方便,我们开放所有用户,只需进行登陆与密码校验即可。。
给1,2号应用服务器部署项目
没有java环境,记得先进行安装。。。
linux在线安装JDK(1.8版本)_Snow、杨的博客-CSDN博客_linux 在线安装jdk
先执行:
开始部署
参考 : 云端部署流程
首先修改配置文件,将数据库连接地址改为秒杀数据库服务器的地址。。。
启动项目: 前面我们配置了deploy.sh脚本一键启动,这里我们继续使用。。。
这里可能会出现权限问题,使用chmod 777 ./deploy.sh 这条语句解决。。。 然后使用tail -200f nohup.out 查看启动情况。。。
启动成功,我们秒杀应用服务器1,2这两台情况一样,照着敲即可。
测试
花生壳内网穿透一下应用服务器。。。
这里本想使用内网穿透到云容器访问端口的,我穿透后,jdk这些需要重新安装,因为容器内部是互相隔离的。。。
这里等后面学了Nginx,看看能不能实现访问吧。。。
我把主机设置成了秒杀数据库云容器,因为我内网穿透了这个服务器,并在这个服务器内部通过ssh连接其它两台应用服务器部署项目。。。不知道到影响使用Nginx代理服务器不。。。
拓展:如何访问容器服务
外网可以访问主机IP地址和端口,主机又可以访问容器端口,所以只要做一个映射,把主机的ip地址和端口信息映射到容器的某个端口上,换句话说就是
当访问主机的某个端口时候,等于访问容器的某个端口,容器在启动的时候就做好这样一个映射,那就实现了容器被外网所访问。
Docker 解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法。Docker 通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,Docker 提供了这种连接机制。