zoukankan      html  css  js  c++  java
  • linux服务器上部署jdk+tomcat+rocketmq+redis-cluster

    通常我们拿到一组干净的linux服务器,需要初始化安装一些基础软件,这里一站式介绍部署jdk+tomcat+rocketmq+redis-cluster

    前言:如果要在多台服务器上安装,在一台服务器上上传并解压安装包后,使用scp命令进行服务器间的拷贝
                scp -r /usr/local/temp/ root@host:/usr/local
                yum install lrzsz  ----开启文件上传下载
    1、安装jdk
        在网上自行下载tar.gz的jdk安装包,本示例使用的是jdk-8u144-linux-x64.tar.gz
    # mkdir usr/local/java //创建java安装目录
    # cd usr/local/java 
    # rz -be //上传jdk tar.gz包
        解压安装jdk
    # tar -xvf jdk-8u144-linux-x64.tar.gz
    # rm -rf jdk-8u144-linux-x64.tar.gz
       (如果需要多台部署) # scp -r ../java/ root@[host]:/usr/local/java/
        配置全局java环境变量
    # vim /etc/profile
        文件最后面添加
    export JAVA_HOME=/usr/local/java/jdk1.8.0_144
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
        使profile生效
    # source /etc/profile
        配置用户java环境变量
    # vim ~/.bashrc
    export JAVA_HOME=/usr/local/java/jdk1.8.0_144
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
        使bashrc配置生效
    # source ~/.bashrc
        检查一下环境变量
    # echo $JAVA_HOME
    # echo $CLASSPATH
    # echo $PATH
    # java -version
     
    2、安装tomcat
        自行下载tomcat.tar.gz包安装,本示例使用的是apache-tomcat-8.5.23.tar.gz
    # mkdir /usr/local/tomcat
    # cd  /usr/local/tomcat
    # rz -be //上传tomcat的tar.gz安装包
    # tar -zxvf apache-tomcat-8.5.23.tar.gz // 解压压缩包    
    # rm -rf apache-tomcat-8.5.23.tar.gz // 删除压缩包    
        (如果需要多台服务器部署) # scp -r /usr/local/tomcat/apache-tomcat-8.5.23/ root@[hostIp]:/usr/local/tomcat/
        启动Tomcat8
    # /usr/local/tomcat/apache-tomcat-8.5.23/bin/startup.sh //启动tomcat,屏幕应该打印如下信息:
            Using CATALINA_BASE:  /usr/local/tomcat    
            Using CATALINA_HOME:  /usr/local/tomcat    
            Using CATALINA_TMPDIR: /usr/local/tomcat/temp    
            Using JRE_HOME:        /usr/local/java/jdk1.8.0_144/jre
            Using CLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar    
            Tomcat started.
        因为tomcat肯定是要让外部访问的,确保防火墙不会阻止tomcat端口
        查看防火墙状态
    # service   iptables status
        停止防火墙
    #  service   iptables stop
        启动防火墙
    # service   iptables start
        重启防火墙
    # service   iptables restart
        永久关闭防火墙
    #  chkconfig   iptables off
        永久关闭后启用
    #  chkconfig   iptables on
         如果防火墙当前是运行状态,确保tomcat使用端口没被拦截,执行以下操作: 
    # vim /etc/sysconfig/iptables
        增加以下代码   
        -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
        重启防火墙 
    # service iptables restart
        检验Tomcat8安装运行
        在浏览器中输入http://[hostip]:8080/ 查看tomcat是否运行正常:  
        看到tomcat系统界面,说明安装成功!
        
    3、安装rocketMq
        下载rocketMQ.tar.gz(例子使用3.5.8版本 alibaba-rockecmq-3.5.8.tar.gz)
    # mkdir /usr/local/rocketmq
    # tar -zxvf alibaba-rockecmq-3.5.8.tar.gz // 解压
    # rm -rf  alibaba-rockecmq-3.5.8.tar.gz
    # chmod -R 777 alibaba-rockecmq-3.5.8/bin
        配置profile
    # vim/etc/profile 
        在最后添加
    export ROCKETMQ_HOME=/usr/local/rocketmq/alibaba-rockecmq-3.5.8
    export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
        启动nameserver :
    # nohup sh mqnamesrv &
        如果遇到java.net.UnknownHostException: DS-TEST-202: Name or service not known异常,说明DS-TEST-202无法解析(也可能是其他名字),解决办法:
    #   vim /etc/hosts  添加如下配置127.0.0.1               localhost.localdomain localhost DS-TEST-202
        启动broker(主从)
    # nohup sh mqbroker -n  [nameserverip]:9876 -c /usr/local/rocketmq/alibaba-rockecmq-3.5.8/conf/2m-2s-sync/broker-a.properties &
        如果是在单机安装主从mq,需要修改从mqbroker配置
    # vim/usr/local/rocketmq/alibaba-rockecmq-3.5.8/conf/2m-2s-sync/broker-a-s.properties
        增加或修改
    listenPort=10921 // 因为默认是10911,主不修改采用默认值就是10911,而listenPort+1是haService的默认端口,listenPort-2是fastRemotingServer服务的端口,所以这里增加默认端口号10,避免冲突.
    # nohup sh mqbroker -n [nameserverip]:9876 -c /usr/local/rocketmq/alibaba-rockecmq-3.5.8/conf/2m-2s-sync/broker-a-s.properties &
        若启动broker出现如下错误日志:
    Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000740000000, 2147483648, 0) failed; error='Cannot allocate memory' (errno=12)
        修改/usr/local/rocketmq/alibaba-rockecmq-3.5.8/bin/下的服务启动脚本 runserver.sh 、runbroker.sh 中对于内存的限制,JAVA_OPT
     # vim /usr/local/rocketmq/alibaba-rockecmq-3.5.8/bin/runserver.sh
     # vim /usr/local/rocketmq/alibaba-rockecmq-3.5.8/bin/runbroker.sh
     
        关闭nameserver: 
    # sh mqshutdown namesrv
        关闭mqbroker     
    #sh mqshutdown broker
    # ps aux | grep rocketmq查询是否成功
    # jps -l查看进程
     
    4、安装redis集群
        下载redis.tar.gz(例子redis-3.2.9.tar.gz)
        首先安装单机redis
     
    # mkdir /usr/local/redis
    # cd /usr/local/redis
    # rz -be //上传tar包
    # tar -zxvf redis-3.2.9.tar.gz //解压
    # rm -rf  redis-3.2.9.tar.gz // 删除tar包
    # cd redis-3.2.9
    # make // 编译
    # cd src 
    # sudo make install // 安装
        在profile中添加配置
    # vim /etc/profile
    export REDIS_HOME=/usr/local/redis/redis-3.2.9
    export PATH=$PATH:$REDIS_HOME/src
        使配置生效
    # source /etc/profile
        启动redis看是否安装正确
    # redis-server /usr/local/redis/redis-3.2.9/redis.conf  
     
        下面是集群redis配置
        创建集群目录
    # mkdir /usr/local/redis/cluster/
    # cd /usr/local/redis/cluster/
    # mkdir 8501 8502 8503 8504 8505 8506
        拷贝配置文件到其中一个目录
    # cp /usr/local/redis/redis-3.2.9/redis.conf /usr/local/redis/cluster/8501/
        修改配置
    # vim /usr/local/redis/cluster/8501/redis.conf
    tips: vim中搜索字符串使用/+字符串
    cluster-enabled yes
    cluster-config-file nodes-8501.conf
    cluster-node-timeout 15000
    appendonly yes
    # Redis使用后台模式 
    daemonize yes 
    # 关闭保护模式 
    protected-mode no 
    # 注释以下内容开启远程访问 
    # bind 127.0.0.1 
    # 修改启动端口为6379 
    port 8501
    # 修改pidfile指向路径 
    pidfile  /usr/local/redis/cluster/8501/redis_8501.pid
     
        将修改好的配置文件拷贝到其他目录
    # cp /usr/local/redis/cluster/8501/redis.conf /usr/local/redis/cluster/8502/
    # cp /usr/local/redis/cluster/8501/redis.conf /usr/local/redis/cluster/8503/
    # cp /usr/local/redis/cluster/8501/redis.conf /usr/local/redis/cluster/8504/
    # cp /usr/local/redis/cluster/8504/redis.conf /usr/local/redis/cluster/8505/
    # cp /usr/local/redis/cluster/8504/redis.conf /usr/local/redis/cluster/8506/
     
        依次修改端口号port、pidfile、cluster-config-file
    # vim /usr/local/redis/cluster/8502/redis.conf //port --> 8502
    # vim /usr/local/redis/cluster/8503/redis.conf //port --> 8503
    # vim /usr/local/redis/cluster/8504/redis.conf //port --> 8504
    # vim /usr/local/redis/cluster/8505/redis.conf //port --> 8505 slaveof -8502
    # vim /usr/local/redis/cluster/8506/redis.conf //port --> 8506 slaveof -8503
     
        分别启动配置文件
    # redis-server /usr/local/redis/cluster/8501/redis.conf
    # redis-server /usr/local/redis/cluster/8502/redis.conf
    # redis-server /usr/local/redis/cluster/8503/redis.conf
    # redis-server /usr/local/redis/cluster/8504/redis.conf
    # redis-server /usr/local/redis/cluster/8505/redis.conf
    # redis-server /usr/local/redis/cluster/8506/redis.conf
     
        检查启动状态,应有如下输出
    # ps aux | grep redis
        root     13550  0.0  0.1 135588  9596 ?        Ssl  16:04   0:00 redis-server *:8503 [cluster]                        
        root     13567  0.0  0.0 135588  7564 ?        Ssl  16:11   0:00 redis-server *:8504 [cluster]                        
        root     13575  0.0  0.0 135588  7568 ?        Ssl  16:11   0:00 redis-server *:8505 [cluster]                        
        root     13583  0.0  0.0 135588  7564 ?        Ssl  16:11   0:00 redis-server *:8506 [cluster]                        
        root     13611  0.0  0.0 135588  7564 ?        Ssl  16:14   0:00 redis-server *:8501 [cluster]                        
        root     13619  0.0  0.0 135588  7568 ?        Ssl  16:14   0:00 redis-server *:8502 [cluster]  
        启动集群
    # redis-trib.rb create --replicas 1 127.0.0.1:8501 127.0.0.1:8502 127.0.0.1:8503 127.0.0.1:8504 127.0.0.1:8505 127.0.0.1:8506  // replicas 后紧跟的1代表为每一个master节点创建一个从节点
        如果出现如下异常,需要安装ruby
    /usr/bin/env: ruby: No such file or directory
    # yum -y install ruby
    # yum -y install ruby-rdoc
    # yum install rubygems
    # gem install  redis --version 3.0.0
        重新启动集群,启动成功
    # redis-trib.rb create --replicas 1 127.0.0.1:8501 127.0.0.1:8502 127.0.0.1:8503 127.0.0.1:8504 127.0.0.1:8505 127.0.0.1:8506
     
        检查Node状态
    # redis-trib.rb check 127.0.0.1:8501
     
        为集群配置密码,集群启动后要在各个节点下设置(两个config都要执行):
    # redis-cli -c  -p 8501~8506
    主:config set masterauth Dsjrxd
    从:config set requirepass Dsjrxd
        设置密码后:
    # redis-trib.rb check 127.0.0.1:8501,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000 
        解决办法: 
    vim /usr/lib/ruby/gems/1.8/gems/redis-3.0.0/lib/redis/client.rb
        将Defaults节点下内容修改如下:
    DEFAULTS = { 
        :url => lambda { ENV["REDIS_URL"] }, 
        :scheme => "redis", 
        :host => "127.0.0.1", 
        :port => 6379, 
        :path => nil, 
        :timeout => 5.0, 
        :password => "Dsjrxd", 
        :db => 0, 
        :driver => nil, 
        :id => nil, 
        :tcp_keepalive => 0, 
        :reconnect_attempts => 1, 
        :inherit_socket => false 
    }
     
        集群重启
    # ps aux | grep redis
    # kill -9 [redisPid]
        重新启动各个节点
    # redis-server /usr/local/redis/cluster/8501/redis.conf
    # redis-server /usr/local/redis/cluster/8502/redis.conf
    # redis-server /usr/local/redis/cluster/8503/redis.conf
    # redis-server /usr/local/redis/cluster/8504/redis.conf
    # redis-server /usr/local/redis/cluster/8505/redis.conf
    # redis-server /usr/local/redis/cluster/8506/redis.conf
        重新为集群每一个服务设置密码,然后,重新启动集群
    # redis-trib.rb create --replicas 1 127.0.0.1:8501 127.0.0.1:8502 127.0.0.1:8503 127.0.0.1:8504 127.0.0.1:8505 127.0.0.1:8506
            
  • 相关阅读:
    LeetCode 453 Minimum Moves to Equal Array Elements
    LeetCode 112 Path Sum
    LeetCode 437 Path Sum III
    LeetCode 263 Ugly Number
    Solutions and Summay for Linked List Naive and Easy Questions
    AWS–Sysops notes
    Linked List
    All About Linked List
    datatable fix error–Invalid JSON response
    [转]反编译c#的相关问题
  • 原文地址:https://www.cnblogs.com/TheOldQi/p/linux_jdk_tomcat.html
Copyright © 2011-2022 走看看