一、修改端口,打包
进入人人开源后端项目,执行打包(修改配置文件,更改端口,打包三次生成三个JAR文件)
1、修改数据库配置信息
将数据库连接的ip改成宿主机的虚拟ip:192.168.2.150,如下:
数据库密码:abc123456

2、添加redis集群信息
注释掉原来的单节点信息,添加集群信息:
cluster:
nodes:
- 172.19.0.2:6379
- 172.19.0.3:6379
- 172.19.0.4:6379
- 172.19.0.5:6379
- 172.19.0.6:6379
- 172.19.0.7:6379

3、修改端口信息
分别改为6001、6002、6003,进行打包:



进入到工程所在目录:
我这里使用MobaXterm连接本地的:
cd /media/d/renren/renren-fast-master/renren-fast-master
mvn clean install -Dmaven.test.skip=true
第一次打包是有点慢的,注意!!如下就打包成功了


二、安装java镜像
1、下载地址:
链接:https://pan.baidu.com/s/1y_1CffgDr58sj4AvYSrn-Q
提取码:rwug
将下载好的镜像上传到/home目录下:

2、导入镜像:
因为我这里已经导入了,就不再导入了:
如果没有导入的执行如下命令进行导入:
docker load < /home/java.tar.gz
给镜像文件改名:
docker tag docker.io/java java
三、创建容器

创建3节点Java容器
#创建数据卷,上传JAR文件
docker volume create j1
#启动容器
docker run -it -d --name j1 -v j1:/home/soft --net=host java
#进入j1容器
docker exec -it j1 bash
#启动Java项目
nohup java -jar /home/soft/renren-fast.jar
#创建数据卷,上传JAR文件
docker volume create j2
#启动容器
docker run -it -d --name j2 -v j2:/home/soft --net=host java
#进入j1容器
docker exec -it j2 bash
#启动Java项目
nohup java -jar /home/soft/renren-fast.jar
#创建数据卷,上传JAR文件
docker volume create j3
#启动容器
docker run -it -d --name j3 -v j3:/home/soft --net=host java
#进入j1容器
docker exec -it j3 bash
#启动Java项目
nohup java -jar /home/soft/renren-fast.jar
1、j1容器
首先创建一个数据卷:
docker volume create j1
将文件上传到j1数据卷对应的目录下:

启动容器:
docker run -it -d --name j1 -v j1:/home/soft --net=host java
进入j1容器:
docker exec -it j1 bash
启动java项目:
nohup java -jar /home/soft/renren-fast.jar
如下,j1容器以及在j1中项目就运行了
进行测试访问:注意,因为在本地windows环境下搭建,性能较差,部署完成,需要等一会。
日志查看:另开一个窗口,进入容器,在/目录下有一个:nohup.out文件:

http://192.168.2.104:6001/renren-fast/swagger/index.html
如下,可正常生成验证码

2、j2容器(参照j1)
(1)修改端口号为6002,重新打包
打包:
mvn clean install -Dmaven.test.skip=true

(2)创建数据卷2,上传文件
docker volume create j2

(3)启动容器
docker run -it -d --name j2 -v j2:/home/soft --net=host java

(4)进入容器启动项目
docker exec -it j2 bash
nohup java -jar /home/soft/renren-fast.jar

3、j3容器(参照j1)省略
(1)修改端口号为6003,重新打包
打包:
mvn clean install -Dmaven.test.skip=true

(2)创建卷,上传文件
docker volume create j3

(3)启动容器
docker run -it -d --name j3 -v j3:/home/soft --net=host java

(4)进入容器启动项目
docker exec -it j3 bash
nohup java -jar /home/soft/renren-fast.jar
四、安装Nginx镜像
1、下载地址:
链接:https://pan.baidu.com/s/1E5oyboiADwu7SQACp1imbw
提取码:hszc
2、导入镜像
(1)上传镜像文件导入镜像:
上传镜像文件到/home目录下,然后导入镜像文件
docker load < /home/nginx.tar.gz

(2)创建Nginx容器,配置负载均衡
注意,这里的ip是宿主机的ip!!!
我这里宿主机的ip是192.168.2.104

nginx-n1配置文件下载地址:
链接:https://pan.baidu.com/s/1JgCQjRF1pzTs3O2HTQl8_w
提取码:eso3
上传文件到这个目录下:
创建第1个Nginx节点
docker run -it -d --name n1 -v /home/n1/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx

宿主机上/home/n1/nginx.conf配置文件内容如下:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
upstream tomcat {
server 192.168.2.104:6001;
server 192.168.2.104:6002;
server 192.168.2.104:6003;
}
server {
listen 6101;
server_name 192.168.2.104;
location / {
proxy_pass http://tomcat;
index index.html index.htm;
}
}
}
nginx-n2的配置文件下载地址:
链接:https://pan.baidu.com/s/1Nj3xORTuHf_HuuDbCJ1pug
提取码:7le6
上传文件到/home/n2目录下,没有这个目录就创建一下:
创建第2个Nginx节点
docker run -it -d --name n2 -v /home/n2/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx

宿主机上/home/n2/nginx.conf配置文件内容如下:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
upstream tomcat {
server 192.168.2.104:6001;
server 192.168.2.104:6002;
server 192.168.2.104:6003;
}
server {
listen 6102;
server_name 192.168.2.104;
location / {
proxy_pass http://tomcat;
index index.html index.htm;
}
}
}
五、在Nginx容器安装Keepalived
1、nginx容器n1配置
#进入n1节点
docker exec -it n1 bash
#更新软件包
apt-get update
#安装VIM
apt-get install vim
#安装Keepalived
apt-get install keepalived
#编辑Keepalived配置文件(如下)
vim /etc/keepalived/keepalived.conf
#启动Keepalived
service keepalived start
配置文件如下:
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.2.151
}
}
virtual_server 192.168.2.151 6201 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.2.104 6101 {
weight 1
}
}
nginx容器n1keepalived.conf配置文件下载地址:
链接:https://pan.baidu.com/s/1cZ2fg2wQHIG9jZuYWn4otA
提取码:4pr9
上传配置文件到 /home/n1下:

复制宿主机文件到容器中:(apt-get install keepalived)要在容器中先安装keepalived
docker cp /home/n1/keepalived.conf bf4c730be11b:/etc/keepalived/
启动Keepalived
service keepalived start

2、nginx容器n2配置
#进入n2节点
docker exec -it n2 bash
#更新软件包
apt-get update
#安装VIM
apt-get install vim
#安装Keepalived
apt-get install keepalived
#编辑Keepalived配置文件(如下)
vim /etc/keepalived/keepalived.conf
#启动Keepalived
service keepalived start
配置文件如下:
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.2.151
}
}
virtual_server 192.168.2.151 6201 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.2.104 6102 {
weight 1
}
}
nginx容器n2keepalived.conf配置文件下载地址:
链接:https://pan.baidu.com/s/1SNkQoOInqMntehTy7q3F0Q
提取码:bhd6
上传配置文件到n2下:

复制宿主机文件到容器中:(apt-get install keepalived)要在容器中先安装keepalived
docker cp /home/n1/keepalived.conf 0afad69562f7:/etc/keepalived/
启动Keepalived
service keepalived start

3、进行测试
在浏览器输入如下地址:
http://192.168.2.151:6201/renren-fast/swagger/index.html
如上,说明nginx双击热备就部署好了
本文介绍了如何修改Java后端项目的配置(包括数据库、Redis和端口),然后利用Docker打包并创建多个Java容器。接着,通过安装Nginx镜像并配置负载均衡,最后在Nginx容器中安装Keepalived实现高可用。详细步骤包括每个容器的创建、端口映射、数据卷挂载和项目启动。

5110

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



