通常我们拿到一组干净的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
        

linux服务器上部署jdk+tomcat+rocketmq+redis-cluster的更多相关文章

  1. windows server服务器上部署java+tomcat网站域名配置

    如果只是部署java项目的话,可以把IIS删除,然后在服务器上安装jdk tomcat 配置好环境变量,就和你在自己计算机上开发一样,把你的项目war包拷到tomcat下的webapps里(任意目录都 ...

  2. 如何在Linux服务器上部署禅道

    最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...

  3. linux服务器上部署项目,同时运行两个或多个tomcat

    在阿里云服务器上部署项目的时候,想使用阿里云提供的负载均衡服务并创建两个监听(如图), 但需要一台服务器提供两个端口,于是就请教前辈并查询资料,得知: 一台服务器提供两个端口,有两种方式: 1.一个t ...

  4. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  5. 如何在Linux服务器上部署Mysql

    一.安装mysql 1.通过文件上传工具,将mysql安装包上传到linux服务器上 2.卸载mariadb包,由于系统中存在mariadb包会导致mysql安装时报错mariadb-libs被mys ...

  6. Linux学习总结(7)——阿里云centeros服务器上安装 jdk,tomcat,mysql

    查看服务器的系统版本 # cat /etc/issue 查看服务器是64位还是32位 #uname -a      或者用:#getconf LONG_BIT 查看当前有没有安装jdk #rpm -q ...

  7. 零基础在Linux服务器上部署javaweb项目

    本教程使用的工具下载链接:http://pan.baidu.com/s/1sl1qz2P 密码:43pj 一.安装JDK 1.首先要查看服务器的系统版本,是32位还是64位 #getconf LONG ...

  8. 在腾讯云服务器上安装JDK+Tomcat并启动tomcat

    由于Java web项目需要使用到tomcat所以决定在腾讯云服务器(centos7.X)上安装JDK和tomcat,来部署我们的项目. 准备工具: 云服务器:centos7.x+ 本地连接服务器:X ...

  9. Linux服务器上安装JDK小白教程

    一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...

随机推荐

  1. 利用django form 模块处理post请求

    在django框架中,利用 form 模块处理post请求提交的数据,可以大大提高开发效率,减小代码冗余度,提高性能 models.py 中: from django.db import models ...

  2. setInterval(),setTimeout(),location.reload(true)

    1,setInterval() setInterval()方法可以按照指定的周期来调用函数或表达式,他会不停地调用函数,直到调用clearInterval()方法或窗口关闭.由setInterval( ...

  3. python自学之第一章 —— 变量

    1.变量的命名(): (1).可以包含数字.字母.下划线‘_’,但只能以字母和下划线‘_’开头,不能以数字开头! (2).变量的命名不能包含空格. (3).不能将python中的关键字(reserve ...

  4. python基础知识梳理----6set 集合的应用

    集合内容简介: set 一: 集合简介 集合set集合是python的一个基本数据类型.一般不是很常用set.中的元素是不重复的.无序的.里里面的元素必须是可hash的tuple,bool),str, ...

  5. 2016级算法期末上机-F.中等·AlvinZH's Fight with DDLs II

    1118 AlvinZH's Fight with DDLs II 思路 中等题,贪心. 理解题意,每次攻击中,可以使某个敌人生命值-1,自己生命值减去∑存活敌人总攻击力. 贪心思想,血量少攻击高的要 ...

  6. Apache环境修改.htaccess文件实现子目录强制HTTPS访问

    如果要在Apache环境下实现子目录强制HTTPS地址访问,该怎么实现呢?在此文章中将与大家一起分享如何在Apache环境下修改.htaccess文件来实现子目录强制HTTPS地址访问. 1.根目录域 ...

  7. Github使用笔记

    ========================Github使用===================概念解释:远程仓库Remote:就是指保存在github网站里的代码;本地仓库Repository ...

  8. vue-cli3 chainWebpack配置,去除打包后文件的预加载prefetch/preload(已解决)

    //细节配置修改 chainWebpack: config => { console.log(config,'chainWebpack') // 移除 prefetch 插件 config.pl ...

  9. dp--最大区间和变形-cf-1155D

    dp--最大区间和变形-cf-1155D D. Beautiful Array time limit per test 2 seconds memory limit per test 256 mega ...

  10. The Ugly Duckling

    THE UGLY DUCKLING   Chapter 1: The Ugly Duckling Hatches   A mother duck sits on many eggs.Crack! Cr ...