您的位置:首页 > 其它

SSM综合项目实战(TTSC) -- day14 项目部署、MyCat

2017-11-01 20:52 561 查看

一、发布前准备工作

1、确认服务器资源。

硬件资源:cpu、内存、硬盘

软件资源:window,Linux,是32位  64位

网络资源:是否需要在一个机房,百兆网络,千兆网络

2、最终测试

开发人员,测试人员等全员参与

3、需要在Git上打tag

在Git上打包发布版本

4、Maven打war包

Maven打包命令:package

5、把数据库的结构和数据进行导出,做sql脚本

需要导出数据表和初始数据。

相关的资源也进行打包

6、需要编写发布文档

发布文档应该在发布前两天就开始编写

发布文档编写全员参与

7、准备回滚方案

服务器初始化

二、了解系统架构图

1、系统功能图



2、淘淘商城系统架构



3、网络拓扑图



4、系统部署

taotao-manager 2

taotao-manager-web 2

taotao-portal 4

taotao-sso 2

taotao-sso-web 2

taotao-search 2

taotao-search-web 2

taotao-item-web 2

taotao-cart 2

taotao-order 2

以上需要22台服务器,理论上最大的并发是3000左右

Mysql 2

Solr 7 (3台tomcat,4台solr)

Redis 6  (3主3从)

图片服务器 6  (两组,一组中一个tracker,连个storage)

Nginx 2

注册中心 3

Activemq 2

共需要50台服务器。

5、域名规划



只用申请一个一级域名即可

www.taotao.com   taotao.com

三、使用jmeter测试商城首页简要示例

注意:jmeter相关文档软件在本博客资源文件中有

1、启动jmeter

打开bin目录下的jmeter.bat,启动如下





2、保存方案





3、创建线程组

线程组用来模拟用户的并发访问。





4、创建 http 请求采样





5、添加监听报告



6、启动



7、查看结果

(1)、聚合报告



(2)、表格查看结果



最新样本:他是代表时间的,表示服务器响应最后一个请求的时间。 

偏离 : 服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

四、使用高可用架构一:使用keepalived+nginx实现主备

1、机器情况

机器一(主):192.168.0.48

机器二(备):192.168.0.49

虚拟IP:192.168.0.55

2 台机器均安装了Nginx,并且Nginx的配置完全一致。

2、整体架构



3、主备切换原理







4、主机配置文件



! Configuration File for keepalived

#全局配置
global_defs {
notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
#smtp_server 192.168.200.1                             #指定smtp服务器地址
#smtp_connect_timeout 30                               #指定smtp连接超时时间
router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_instance VI_1 {
state MASTER           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 51   #同一实例下virtual_router_id必须相同
priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.55       #可以多个虚拟IP,换行即可
}
}

5、备机配置



! Configuration File for keepalived

#全局配置
global_defs {
notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
#smtp_server 192.168.200.1                             #指定smtp服务器地址
#smtp_connect_timeout 30                               #指定smtp连接超时时间
router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_instance VI_1 {
state BACKUP           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 51   #同一实例下virtual_router_id必须相同
priority 99            #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.55       #可以多个虚拟IP,换行即可
}
}


五、高可用架构二:使用keepalived+nginx实现双主热备

1、机器情况

机器一(主):192.168.0.48

机器二(备):192.168.0.49

虚拟IP:192.168.0.55

虚拟IP:192.168.0.56

2 台机器均安装了Nginx,并且Nginx的配置完全一致。

2、整体架构



3、主备切换原理





4、主机配置



! Configuration File for keepalived

#全局配置
global_defs {
notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
#smtp_server 192.168.200.1                             #指定smtp服务器地址
fe9a

#smtp_connect_timeout 30                               #指定smtp连接超时时间
router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"         ##监控脚本
interval 2                                      ##时间间隔,2秒
weight 2                                        ##权重
}

vrrp_instance VI_1 {
state MASTER           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 51   #同一实例下virtual_router_id必须相同
priority 150           #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.55       #可以多个虚拟IP,换行即可
}

track_script {
check_nginx        #监控脚本
}
}

vrrp_instance VI_2 {
state BACKUP           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 52   #同一实例下virtual_router_id必须相同
priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.56       #可以多个虚拟IP,换行即可
}

track_script {
check_nginx        #监控脚本
}
}


5、备机配置



! Configuration File for keepalived

#全局配置
global_defs {
notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
#smtp_server 192.168.200.1                             #指定smtp服务器地址
#smtp_connect_timeout 30                               #指定smtp连接超时时间
router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"         ##监控脚本
interval 2                                      ##时间间隔,2秒
weight 2                                        ##权重
}

vrrp_instance VI_1 {
state BACKUP           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 51   #同一实例下virtual_router_id必须相同
priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.55       #可以多个虚拟IP,换行即可
}

track_script {
check_nginx        #监控脚本
}
}

vrrp_instance VI_2 {
state MASTER           #标示状态为MASTER 备份机为BACKUP
interface eth0         #设置实例绑定的网卡
virtual_router_id 52   #同一实例下virtual_router_id必须相同
priority 150           #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication {       #设置认证
auth_type PASS     #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress {    #设置vip
192.168.0.56       #可以多个虚拟IP,换行即可
}

track_script {
check_nginx        #监控脚本
}
}


六、负载均衡架构一:使用lvs+nginx实现负载均衡

1、架构图



2、配置Director Server

(1)、在eth0上绑定虚拟ip

ifconfig eth0:0 192.168.0.57 broadcast 192.168.0.57 netmask 255.255.255.255 up


此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.0.57,然后指定广播地址也为192.168.0.57,需要特别注意的是,这里的子网掩码为255.255.255.255。

(2)、添加路由规则

route add -host 192.168.0.57 dev eth0:0


(3)、启用系统的包转发功能

echo "1" >/proc/sys/net/ipv4/ip_forward


参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,而在NAT模式下此操作是必须的。

(4)、清除原有转发规则

ipvsadm –C


(5)、添加虚拟IP规则

ipvsadm -A -t 192.168.0.57:80 -s rr


(6)、在虚拟IP中添加服务规则

ipvsadm -a -t 192.168.0.57:80 -r 192.168.0.48:80 -g
ipvsadm -a -t 192.168.0.57:80 -r 192.168.0.49:80 –g


在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。

(7)、重启LVS服务

ipvsadm




3、配置Real Server

在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户。

(1)、在回环设备上绑定了一个虚拟IP地址

ifconfig lo:0 192.168.0.57 broadcast 192.168.0.57 netmask 255.255.255.255 up
/sbin/route add -host 192.168.0.57 dev lo:0


(2)、设置参数

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p


七、Nginx集群测试之安装配置nginx

1、安装gcc环境

[root@localhost ~]# yum install -y gcc-c++

2、安装Nginx依赖的环境

(1)、安装nginx所依赖的pcre库

[root@localhost ~]# yum install -y pcre-devel




(2)、安装nginx所依赖的zlib库

[root@localhost ~]# yum install -y zlib-devel




3、上传nginx压缩包到Linux系统中并解压



4、进入nginx目录,进行编译安装

(1)、设置安装参数

[root@localhost nginx-1.7.7]# ./configure --prefix=/usr/local/nginx/




设置成功效果



(2)、编译

[root@localhost nginx-1.7.7]# make




(3)、安装

[root@localhost nginx-1.7.7]# make install




(4)、启动nginx,查看进程,浏览器访问





发现不能访问,需要关闭Linux防火墙







八、部署项目,进行集群测试

1、以taotao-manager-web和taotao-manager服务为例进行测试



2、删除已有的jdk,安装新的jdk

(1)、删除原有的jdk

使用命令查看是否安装jdk

[root@localhost sbin]# rpm -qa | grep java




已经安装了openjdk,需要卸载

[root@localhost sbin]# rpm -e java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 --nodeps
[root@localhost sbin]# rpm -e java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64 --nodeps




卸载之后再次确认是否删除完全



(2)、安装新的jdk

详见:http://blog.csdn.net/wingzhezhe/article/details/52664236

3、在192.168.37.140上安装两个tomcat,并修改端口号

4、将taotao-manager-web项目打包并上传到140服务器的两个tomcat的webapps下







注意:需要将webapps下的ROOT下的目录全部删除,将taotao-manager-web上传到ROOT下



5、解压taotao-manager-web.war

[root@localhost ROOT]# jar -xf taotao-manager-web.war




6、复制一份tomcat到tomcat所在目录,并改名,修改端口号



7、启动tomcat,访问测试





8、配置nginx集群

(1)、修改Nginxd的配置文件nginx.conf

#配置集群信息
upstream taotao-manager-web {
server 192.168.37.140:8080;  #此处配置的是每台服务器的ip地址+端口号
server 192.168.37.140:8081;
}

server {
listen       80;
server_name  manager.taotao.com;  #此处配置的是host文件中对应的192.168.37.140的ip对应的域名

proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location / {
#使用前面配置的集群
proxy_pass http://taotao-manager-web;  #此处配置的是集群信息的名字,http://协议不可以省略
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}




(2)、重启nginx服务



(3)、修改宿主机(本地电脑)的hosts



(4)、浏览器访问

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐