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. 为了简单方便,我们开放所有用户,只需进行登陆与密码校验即可。。

grant all privileges on *.* to root@'%' identified by 'root';

给1,2号应用服务器部署项目

没有java环境,记得先进行安装。。。

linux在线安装JDK(1.8版本)_Snow、杨的博客-CSDN博客_linux 在线安装jdk

先执行:

 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

开始部署

参考云端部署流程

首先修改配置文件,将数据库连接地址改为秒杀数据库服务器的地址。。。

启动项目: 前面我们配置了deploy.sh脚本一键启动,这里我们继续使用。。。

这里可能会出现权限问题,使用chmod 777 ./deploy.sh 这条语句解决。。。 然后使用tail -200f nohup.out 查看启动情况。。。

启动成功,我们秒杀应用服务器1,2这两台情况一样,照着敲即可。

测试

花生壳内网穿透一下应用服务器。。。

这里本想使用内网穿透到云容器访问端口的,我穿透后,jdk这些需要重新安装,因为容器内部是互相隔离的。。。

这里等后面学了Nginx,看看能不能实现访问吧。。。

我把主机设置成了秒杀数据库云容器,因为我内网穿透了这个服务器,并在这个服务器内部通过ssh连接其它两台应用服务器部署项目。。。不知道到影响使用Nginx代理服务器不。。。

拓展:如何访问容器服务

外网可以访问主机IP地址和端口,主机又可以访问容器端口,所以只要做一个映射,把主机的ip地址和端口信息映射到容器的某个端口上,换句话说就是

当访问主机的某个端口时候,等于访问容器的某个端口,容器在启动的时候就做好这样一个映射,那就实现了容器被外网所访问。

Docker 解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法。Docker 通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,Docker 提供了这种连接机制。

Fetching Title#cnea