首先我们需要思考上一个章节并发上不去的原因。发现在并发环境下mysql数据库的压力始终很大,一台服务器上面不仅仅要跑java的jar包程序,还要承受高并发访问数据库的压力。这样的压力都在同一台服务器上显然存在缺陷。所以我们可以购买多台服务器。
一台专门用来部署项目的数据库。
两台或多台用来部署项目jar包。
一台用来配置部署nginx反向代理。
首先这里购买4台服务器,两台跑java,一台部署数据库,一台部署nginx。
部署前准备:
将原来的 //var/www项目文件夹传输至另两台需要部署jar包的服务器中,原来的服务器就用来部署mysql数据库。
使用scp:
scp -r //var/www root@目标服务器ip地址:/var,然后输入密码即可。
这里如果购买的多台服务器都是阿里云的同一地区的服务器,用私有ip进行传输,因为阿里云同一地区的服务器是内网互通的,互相传输快的飞起。
分别将www内的项目文件传输完成之后。准备在两台服务器上面配置数据库连接并启动。
应用程序服务器(两台)
先在两台应用程序服务器上rpm安装jdk,之前的笔记中有操作流程这里不再赘述。
切换到项目www/seckill目录准备启动项目。在把jar包跑起来之前,先要将接收到的配置文件修改一下,因为,项目中的application.properties文件默认的datasource.url是localhost:3306。如果这样启动起来,是找不到数据库的,因为应用程序服务器并不是用来部署数据库的,所以,我们打开外挂的配置文件修改datasource:
vim application.properties.
添加下面一行配置:
spring.datasource.url=jdbc:mysql://数据库服务器的内网ip:3306/seckillboot?serverTimezone=GMT%2B8
数据库服务器的内网地址即刚刚传输项目的服务器,必须用内网ip保证数据库访问速度。
配置好DataSource之后,在启动项目之前,测试能否连接上数据库的服务器:
yum install telnet
telnet 数据库服务器ip 3306
结果发现,远程数据库拒绝了连接。
这时候我们要去数据库服务器配置mysql的远程连接权限(见第二部分)。
配置好之后再次telnet ip:3306测试连接,提示输入数据库密码即可连接,这里就不连了,直接 ./deploy.sh & 启动项目即可。
启动项目之后,访问 项目服务器公有ip/可以访问数据库的路径,我的是ip/item/get?id=9,可以显示出从数据库获取的item数据,表示部署成功(两台服务器操作相同)
数据库服务器
配置其他服务器连接数据库的权限
只要知道数据库的root的密码就可以有全部数据库的全部权限,最后刷新权限,无需重启数据库,可以这样配置。
mysql -uroot -p密码
grant all privileges on

最低0.47元/天 解锁文章
3629

被折叠的 条评论
为什么被折叠?



