简单实用的Tomcat集群搭建技法及排错

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单实用的Tomcat集群搭建技法及排错相关的知识,希望对你有一定的参考价值。


简介

Tomcat集群的主要特性:

负载均衡:把任务均衡地分布到集群环境下的节点服务器,在并发访问量大的环境下,加快了访问响应速度。

高可用:处理某个任务的服务故障,另一服务实体中执行同一任务的服务接着完成任务,保证业务不中断。


一、Tomcat集群配置

  1. 搭建实验环境
    需求:Tomcat实现群集功能,以nginx做代理,同时用zabbix监控Tomcat服务。可以开启多台虚拟机,每台都安装Tomcat服务,用另一种方法,一台服务器安装多个Tomcat服务,以端口号区分,实现群集搭建。
服务IP
Tomcat192.168.2.130
nginx192.168.2.134
zabbix192.168.2.135
  1. tomcat多实例(本质是复制多个tomcat目录,然后修改为不同的端口并启动,代码一致,但是公用一个数据库,一台服务器模拟多个Tomcat服务器)
    Tomcat安装教程(安装Tomcat参考上期内容)
    在Tomcat服务器操作
    复制目录
    cd /opt/
    cp -a apache-tomcat-8.5.43 tomcat_01
    cp -a apache-tomcat-8.5.43 tomcat_02
    修改配置文件,修改端口号
    sed -i ‘s#8005#8006#g’ tomcat_01/conf/server.xml
    sed -i ‘s#8009#8010#g’ tomcat_01/conf/server.xml
    sed -i ‘s#8080#8081#g’ tomcat_01/conf/server.xml
    sed -i ‘s#8005#8007#g’ tomcat_02/conf/server.xml
    sed -i ‘s#8009#8011#g’ tomcat_02/conf/server.xml
    sed -i ‘s#8080#8082#g’ tomcat_02/conf/server.xml
    启动多实例
    若之前启动过Tomcat,会报错建议杀死所有Java进程,再启动
    pkill -9 java
    /opt/tomcat_01/bin/startup.sh
    /opt/tomcat_02/bin/startup.sh
    查看服务是否启动,有实例Tomcat_01、Tomcat_02的端口
    ss -lntup|grep java
  2. 安装配置nginx服务器(用Nginx做正向代理)

yum方式安装的Nginx配置:

把默认配置改名:
mv default.conf default.conf.bak

创建代理配置文件
vim /etc/nginx/conf.d/proxy.conf

upstream java {
    server 192.168.2.130:8081;
    server 192.168.2.130:8082;
}
server {
    listen       80;
    server_name  www.jpress.com;
    root   html;
    index  index.html index.htm;
    location / {
        proxy_pass http://java;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

检查配置语法:Nginx -t

启动服务:systemctl start nginx

源码安装Nginx配置方式和此不一样,需要多添加几个配置,省略
源码安装Nginx报错:

解决:另一个配置文件里面,默认指向的是Nginx.conf,改名之后不能找到,要么改成原名Nginx.conf,要么去另一个文件改成proxy.conf

  1. 网页访问验证:多访问几次
    随便开一台虚拟机验证:
    修改主机hosts文件:vim /etc/hosts


    查看Tomcat服务 日志:实现了负载均衡,默认是轮巡,第一次请求转发给Tomcat_01,第二次请求转发给Tomcat_02
    Tomcat_01记录:

    Tomcat_02记录:

二、zabbix监控Tomcat

1.配置tomcat服务器

1)安装zabbix-agent服务

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.134.26
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

2)配置文件开启远程监控功能(相当于Tomcat打开12345端口,提供给zabbix用来连接监控)

vim /opt/tomcat/bin/catalina.sh
添加如下参数,注意:参数整体放在一行,建议放在最前面(方便阅读教程,分开)

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=tomcat自身IP"
如图:

重启zabbix-agent、Tomcat
systemctl start zabbix-agent
/opt/tomcat/bin/startup.sh

检查端口号:ss -lntup|grep 12345

2.配置zabbix服务器

1)必须有Java环境,并且和当前需要监控的Java版本匹配
若没有使用命令安装:yum install java-1.8.0 -y

2)安装并启动zabbix-java-gateway服务
yum install zabbix-java-gateway.x86_64 -y

报错:国外服务器,不稳定,确定yum源没有配置错误的情况,重复操作一次解决!

解决:yum install zabbix-java-gateway.x86_64 -y

修改zabbix_server.conf 配置文件:添加对Java配置的支持

vim /etc/zabbix/zabbix_server.conf


启动服务:
systemctl start mariadb.service httpd.service zabbix-server.service zabbix-java-gateway.service

3.zabbix管理网页添加监控Tomcat

1)流程:配置-主机-创建主机,填写以下内容


2)点选更新,查看JMX是否绿色。

报错:配置都没问题,但是JMX显示红色

解决:关闭页面,再次访问,即可!更新数据没有传递过来。

3)能看到正常颜色显示JMX,查看Tomcat检测数据

以上是关于简单实用的Tomcat集群搭建技法及排错的主要内容,如果未能解决你的问题,请参考以下文章

结合Docker 搭建tomcat 集群

Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群

Redis主从集群搭建及主从复制原理解析

Nginx+Tomcat搭建集群环境

[k8s]kube-dns/dashboard排错历险记(含sa加载用法/集群搭建)

lnmp搭建测试