docker+msyql+ssm+durid+ngix+tomcat处理并发

最近遇到单体架构tomcat的项目遇到高并发出现阻塞的情况,考虑方向如上:

1.Docker安装:

centos 下载docker:
yum -y install docker-io 

启动容器:

service docker restart 

2.Mysql安装:

docker pull mysql

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql 

使用navicat连接出现1521错误:

解决办法如下:

使用 docker exec 进入容器:

docker exec -it mysql容器id /bin/bash 

设置root用户开启远程连接: 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

Too many connections错误的解决办法

set GLOBAL max_connections=200 ;#自己想设置的链接个数

3.安装tomcat和nginx 参考:https://blog.youkuaiyun.com/u012383839/article/details/79801105

4.将ssm项目打成war放到tomcat下webapps下

5.安装ab测试工具:

yum -y install httpd-tools 
ab -v 查看ab版本 
ab –help

使用:ab -n 2000 -c 2000 -p test.json -T 'application/json'   'http://120.78.140.3:8080/signs/Sign' 查看并发情况

打开druid监控页面:


6.tomcat开启arp模式:

***tomcat 以arp模式运行:

tomcat apr模式安装:

tomcat-native 安装文件已经存在于 tomcat 中,位于 $CATALINA_HOME/bin 的文件 tomcat-native.tar.gz。 将文件 tomcat-native.tar.gz 拷贝出来后解压,配置,安装。

./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/lib/jvm/jdk1.8.0_161  && make && make install

在catalina.sh添加:

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

修改server.xml

启动tomcat:出现如下字样则表示apr模式启动成功:

 

 

具体参看:

https://www.cnblogs.com/zishengY/p/7101616.html?utm_source=itdadao&utm_medium=referral

 

 

7.负载均衡:

 

# 使用默认策略,轮询
upstream ydzwV3{
    # 下面介绍几种负载均衡策略,其中轮询、weight、ip_hash是nginx内置的,可以直接使用。fair和url_hash需要第三方支持才可以使用。
    # 1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    server localhost:8080;
    server localhost:9090;
  

    # 2、weight:指定权重,按照权重进行请求的分配。wight和访问比例成正比,适合后端服务器性能不均的情况。
    # 下面的配置就会经常访问8080的服务。如果后端服务器8080down掉,能够立刻切换到9090。
    # server localhost:8080weight=10;
    # server localhost:9090weight=1;
  

    # 3、ip_hash:每个请求按照ip的hash结果进行分配,这样的话每个访客固定请求一个后端服务器,可以解决session没共享的问题。
    # 如果8080down掉,则依然可以访问,可能会缓存9090。如果8288启动,则会从9090切换到8080。
    # ip_hash; 
    # server localhost:8080;
    # server localhost:9090;
 

    # 4、fair(第三方):后端服务器响应时间短的优先分配。
    # fair; 
    # server localhost:8080;
    # server localhost:9090;
 

    # 5、url_hash(第三方):按访问的url的hash结果来分配请求,这样相同url会分配到相同的后端服务器。适合后端服务器有缓存的情况。
    # hash $request_uri; 
    # hash_method crc32; 
    # server localhost:8080;
    # server localhost:9090;
 
}
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱童鞋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值