web应用部署合集

1.环境要求
系统需部署Rabbitmq(3.6及以上)Redis(Redis2.8及以上)、JDK(JDK1.8或以上)、Tomcat(Tomcat8或以上)、数据库(Oracle 11g或以上、DB2 9.7或以上、Mysql 5.5或以上),并配置好环境变量。
2.软件安装
各软件安装版本符合人行安全等级,原则上开源软件由公司平台部统一提供,实施前由部门SVN统一提取,进制实施人员个人下载,如有必要需和项目经理沟通确认。确认可使用后,必须将此版本带回部门统一维护。
2.1 JDK安装
2.1.1检查jdk的环境
输入命令: java –version

可以看到 现在系统中安装的是系统自带的openJDK环境,需要替换成SUN JDK环境
2.1.2安装jdk
上传jdk的安装包到指定的目录中
cd /usr/local
mkdir java

在上传的安装包目录下解压这个安装包:
rpm -ivh jdk-8u45-linux-x64.rpm
解压如果没有指定目录,默认会在usr下边的java目录中,需要从当前目录退出,再进入到默认目录usr/java下进行安装操作:

如果上传的是jdk-8u171-linux-x64.tar.gz安装包,解压之后直接出现在当前目录中
命令: tar -zxvf jdk-8u171-linux-x64.tar.gz

解压后的包为红框,上传的包为篮框包
配置环境变量:
命令: vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_45(自己的路径和版本)
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

然后查看jdk版本: java -version

注意如果还是openJDK,这个的话 需要用自己安装的替换掉系统自带的,在这里是直接删除掉openJDK,首先查询OpenJDK,命令: rpm -qa | grep java

从上方截图看,发现有两个openJDK版本,要删除openJDK版本:
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

再次执行命令:rpm -qa | grep java
查询OpenJDK,发现openJDK已删除

输入命令:java –version查询版本,已经是自己安装的jdk了:

2.2 redis安装
2.2.1安装环境

  1. 安装版本:redis-3.2.2.tar.gz

  2. 集群部署建议安装4.0及以上版本(不需要安装依赖,直接编译修改配置文件启动)
    2.2.2安装步骤
    1.安装编译命令:
    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
    2.上传安装包到服务器
    将安装包上传至/usr/local
    3.解压安装包:
    依次执行以下命令:
    cd /usr/local
    tar -xzvf redis-4.0.9.tar.gz
    4.编译
    依次执行以下命令:
    cd redis-4.0.9
    make
    cd src
    make install PREFIX=/usr/local/redis
    5.移动配置文件到安装目录下
       依次执行以下命令:
    cd ../
    mkdir /usr/local/redis/etc
    mv redis.conf /usr/local/redis/etc
    mv sentinel.conf /usr/local/redis/etc
    6.修改redis配置文件
    依次执行以下命令:
    vi /usr/local/redis/etc/redis.conf
    将daemonize no 改成daemonize yes(后台启动)

    7.将redis加入到开机启动
    vi /etc/rc.local
    在文件末尾添加以下内容:
    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

  3. 开启redis
    带配置文件启动
    redis-server redis.conf
    2.2.3主从配置
    1.修改redis.conf配置文件
    vi /u sr/local/redis/etc/redis.conf
    主配置文件修改如下:(无则添加)

    bind 127.0.0.1 --linux约70行 注释掉

requirepass "123456" --有密码则添加
protected-mode yes 改为 protected-mode no --linux约89行
从配置文件修改如下:(无则添加)
#bind 127.0.0.1 --linux约70行 注释掉
protected-mode yes 改为 protected-mode no --linux约89行
添加 slaveof 主服务器IP 主服务器端口号 --linux约283行
例:slaveof 10.28.121.109 6379
masterauth 123456 --有密码则添加

  2.重启主从服务器的redis
   redis-cli shutdown  停止
   redis-server /usr/local/redis/etc/redis.conf  启动

2.2.4验证测试
主从验证
在主服务器存值:set

在从服务器取值(如果能获取到相应的值说明主从配置成功):get

哨兵验证:
/usr/local/redis/bin/redis-cli -p 26379
info sentinel

2.2.5哨兵配置(一主两从三台服务器-linux+windows)

  1.修改sentinel.conf配置文件
     vi /u	sr/local/redis/etc/sentinel.conf
   配置文件修改如下:(所有服务器相同配置)
   # bind 192.168.1.119 127.0.0.1   ---若网络有特殊要求配置本机ip
   logfile "26379.log"              ---日志
   添加daemonize yes          后台启动
   添加 protected-mode no      保护
   添加sentinel monitor mymaster 主服务IP 主服务端口 故障转移票数
   例:	sentinel monitor mymaster 172.19.19.220 6379 2
	       添加sentinel known-slave mymaster 从服务ip  从服务端口
   例:sentinel known-slave mymaster 172.19.19.218 6379

sentinel known-slave mymaster 172.19.19.219 6379
#若有密码添加:sentinel auth-pass mymaster 123456

  下列参数若无,按需添加:
   sentinel down-after-milliseconds mymaster 10000   检测节点情况 
   sentinel parallel-syncs mymaster  1      有新主,从节点轮询复制  
   sentinel failover-timeout mymaster 10000   故障转移	时间
   
   带配置文件启动哨兵:
   ./redis-sentinel sentinel.conf

   #窗口内查看状态
   redis-cli -p 26379

info sentinel

  从ip可以看出两台服务器的都在监听主机的redis状态,若主机redis宕机,两台服务器的哨兵会变成从机的ip继续监听。
(可以理解为redis与哨兵sentinel是两个独立的服务,reids负责数据存储,sentinel负责监听redis的运行情况)
 启动后sentinel.conf里面会自动新增一条myid 和known-sentinel mymsqter 192.168.0.1 26379  02sdvsvwagfacv (从机的ip 端口和myid)

Window系统哨兵
1.下载Windows版redis地址:https://github.com/MicrosoftArchive/redis/releases
2.解压到目录,6379 master, 6380 6381slave

3.redis主从配置
1) master文件配置redis.windows.conf port 6379
2) 6380 slave文件配置redis.windows.conf
port 6380
slaveof 127.0.0.1 6379
3)6381 slave文件配置redis.windows.conf
port 6381
slaveof 127.0.0.1 6379
4.redis哨兵配置
1)每一个redis目录中都创建一个文sentinel.conf文件
master 6379的sentinel.conf文件配置如下

当前Sentinel服务运行的端口

port 26379

master

Sentinel去监视一个名为mymaster的主redis实例,这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,

而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行

sentinel monitor master 127.0.0.1 6381 1

指定了Sentinel认为Redis实例已经失效所需的毫秒数。当 实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。

只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线,这时自动故障迁移才会执行

sentinel down-after-milliseconds master 5000

指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长

sentinel config-epoch master 12

如果在该时间(ms)内未能完成failover操作,则认为该failover失败

sentinel leader-epoch master 13
2)4.2 slave 6380中的sentinel.conf文件配置
port 26479

slave1

sentinel monitor master 127.0.0.1 6381 1
sentinel down-after-milliseconds master 5000
sentinel config-epoch master 12
sentinel leader-epoch master 13
3) slave 6381中的sentinel.conf文件配置
port 26579

slave2

sentinel monitor master 127.0.0.1 6381 1
sentinel down-after-milliseconds master 5000
sentinel config-epoch master 12
sentinel leader-epoch master 13
5.启动redis服务
redis-server.exe redis.windows.conf --master
redis-server.exe redis.windows.conf --slave
redis-server.exe redis.windows.conf --slave
6.测试redis服务

7.启动哨兵服务
redis-server.exe sentinel.conf --sentinel

2.2.6双机哨兵配置及宕机处置(一主一从双机三哨兵)
两台服务器配置哨兵,主机配置方法不变,从机配置两个sentinel.conf,即复制一份sentinel.conf,设置不同监听端口即可。

port 29379 ----约24行,两个sentinel.conf在此处配置不同端口

   带配置文件启动哨兵:
    ./redis-sentinel sentinel-29379.conf

./redis-sentinel sentinel-29479.conf
从机启动两个哨兵节点,是为了保证主机宕机后可以正常发起稍等投票机制进行投票重选主机,从机宕机不影响主机正常使用,但是此方式为一次性生效,即发生一次主机宕机后,需要重新配置哨兵(建议备份主从的配置文件,发生宕机后直接替换重启两台即可)。如不能重启redis,在原主机redis修复后,启动redis,查看两台服务器的redis状态,执行命令:
./redis-cli
info

若修复后原主机的reids状态为slave(从),查看两台redis数据,

若相同,停掉原从机上redis服务(不要停哨兵,只停redis服务),哨兵配置会自动投票将原主机redis定向为主机,查看确认redis状态是否为主机,启动原主机上哨兵进程,
./redis-sentinel sentinel.conf
启动刚停掉的从机reids服务:
./redis-server &
查看redis状态及哨兵状态。确认正常即可。
2.2.7集群配置(双机)

Redis 集群不像单机 Redis 那样支持多数据库功能, 集群只使用默认的 0 号数据库, 并且不能使用 SELECT index 命令。
1.将 redis-trib.rb 复制到 /usr/local/bin 目录下
cd src
cp redis-trib.rb /usr/local/bin/
2.创建 Redis 节点
首先在 1机器上 /home/redis/redis-3.2.2 目录下创建 redis_cluster 目录;
mkdir redis_cluster  
在 redis_cluster 目录下,创建名为7007、7008、7009的目录,并将 redis.conf 拷贝到这三个目录中
mkdir 7007 7008 7009
cp redis.conf redis_cluster/7007
cp redis.conf redis_cluster/7008
cp redis.conf redis_cluster/7009

分别修改这三个配置文件,修改如下内容
port 7007 //端口//7007,7008,7009
bind本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7007,7008,7009
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf
//集群的配置配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置appendonly yes //aof日志开启

//接着在另外一台机器2上,的操作重复以上三步,只是把目录改为7004、//7005、7006,对应的配置文件也按照这个规则修改即可
3.启动各个节点
cd redis-3.2.2//切换到redis-3.2.2目录下
第一台机器上执行
src/redis-server redis_cluster/7007/redis.conf
src/redis-server redis_cluster/7008/redis.conf
src/redis-server redis_cluster/7009/redis.conf

另外一台机器上执行
src/redis-server redis_cluster/7004/redis.conf
src/redis-server redis_cluster/7005/redis.conf
src/redis-server redis_cluster/7006/redis.conf
4.检查 redis 启动情况 

5.创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。  
./redis-trib.rb create --replicas 1 190.2.3.166:7007 190.2.3.166:7008 190.2.3.166:7009 190.2.3.168:7004 190.2.3.168:7005 190.2.3.168:7006
其中,前三个 ip:port 为第一台机器的节点,剩下三个为第二台机器。
等等,出错了。这个工具是用 ruby 实现的,所以需要安装 ruby及其相关的插件
安装命令如下:
(1) 安装ruby
网上下载好tar包上传到linux系统里
tar –zxvf ruby-2.4.2.tar.gz
cd ruby-2.4.2
./configure –-prefix=/usr/local/ruby –prefix
是将ruby安装到指定目录,也可以自定义
make && make install
安装完成后 输入 ruby –v 出现ruby版本信息说明安装成功,或非此内容需要配置ruby环境变量:
输入命令vim /etc/profile,在文件当中PATH当中加入安装Ruby的bin目录路径。然后保存执行命令:source /etc/profile
vim /etc/profile

最后需要执行命令:source /etc/profile 才能立即生效
source /etc/profile
输入 ruby –v 出现ruby版本信息

(2) 安装rubygems
网上下载好安装包上传到linux系统里
tar –zxvf rubygems-2.4.2.tgz
cd rubygems-2.4.2
ruby setup.rb

(3) 安装gem-redis
网上下载好安装包上传到linux系统里
gem install –l ./redis-3.2.2.gem
之后再运行 redis-trib.rb 命令,会出现如下提示:

输入 yes 即可,然后出现如下内容,说明安装成功。

注:实际安装过程这一步没有做截图就用网上的图了。如果报错
ERR Slot 16 is already busy(Redis::CommandError)
只需要把redis.conf中定义的cluster-config-file 所在的文件删除,重新启动redis-server
及运行redis-trib即可。

  1. 集群验证
    在第一台机器上连接集群的7007端口的节点,在另外一台连接7004节点,连接方式为 redis-cli -h 190.2.3.166 -c -p 7007 ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。
    在7007节点执行命令 set welcome credit,执行结果如下:

然后在另外一台7006端口,查看 key 为 welcome 的内容, get welcome ,执行结果如下:

说明集群运作正常。
9.修改项目redis配置
查看redis集群
/usr/local/ruby/bin/ruby redis-trib.rb check 190.2.3.168:7004

M-代表主Master服务器,S-代表从Slave服务器,主服务器地址需要写入项目redis配置文件中。
修改项目部署包中redis配置文件,文件路径如下:
..\creditplatformweb\WEB-INF\classes\redis.properties

修改redis.deploymodel和redis.host两个属性,redis.deploymodel为redis接入方式1表示集群接入,2表示单点接入;redis.host为redis服务器地址,集群状态为主Master服务器地址,以英文逗号“,”间隔。
2.2.8 三机集群
1.开始配置
(1)redis-3.2.9目录下创建一个cluster-conf目录,并在cluster-conf目录下创建6380、6381两个目录
[hadoop@masterredis-3.2.9]$ mkdir cluster-config
[hadoop@mastercluster-config]$ mkdir 6380
[hadoop@mastercluster-config]$ mkdir 6381
(2)创建端口目录并修改配置信息,如下
[hadoop@masterredis-3.2.9]$ cp redis.conf ./cluster-config/6380
[hadoop@masterredis-3.2.9]$ cp redis.conf ./cluster-config/6381
分别修改6380、6381目录下redis.conf文件如下内容:
1.端口
port 6380
2.指定日志文件路径
logfile “/home/hadoop/soft/redis-3.2.9/cluster-config/6380/redis.log”
3.指定rdb、aof文件写入路径
dir /home/hadoop/soft/redis-3.2.9/cluster-config/6380/
4.是否开启集群
cluster-enabled yes
5.集群配置文件名称
cluster-config-file nodes-6380.conf
6.超时时间
cluster-node-timeout 15000(默认值)
appendonly yes
(3)将文件复制到其他机器上
[hadoop@mastersoft]$scp -r redis-3.2.9 root@10.1.1.12:/home/hadoop/soft
[hadoop@mastersoft]$scp -r redis-3.2.9 root@10.1.1.39:/home/hadoop/soft
(4)启动,先切换到redis的bin目录下分别在三台机器上都执行对应命令,便可启动集群
[hadoop@masterbin]$ ./redis-server /home/hadoop/soft/redis-3.2.9/cluster-config/6380/redis.conf &
[hadoop@masterbin]$ ./redis-server /home/hadoop/soft/redis-3.2.9/cluster-config/6381/redis.conf &

执行完后在终端输入,会看到对应的进程信息,则表示成功启动
[hadoop@masterbin]$ ps -ef|grep redis
hadoop 4046 16759 0 16:00 pts/1 00:00:00 grep redis
hadoop 25805 16759 0 11:48 pts/1 00:00:04 ./redis-server 0.0.0.0:6380 [cluster]
hadoop 25808 16759 0 11:48 pts/1 00:00:04 ./redis-server 0.0.0.0:6381 [cluster]
2.安装ruby、redis
安装ruby2.3.1版本,建议采用这种方式安装(网上的其他方式基本都会失败,亲测)
第一步:下载安装包到对应目录(wget命令不指定目录 ,则下载到当前目录)
[root@masterruby-2.3.1]$ wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
第二步:下载成功后解压,并切换到解压后的ruby目录下执行编译与安装:
[root@masterruby-2.3.1]$ ./configure --prefix=
[root@masterruby-2.3.1]$ make && make install
安装redis
[root@masterruby-2.3.1]$ gem install redis

3.开启集群
在Redis的src目录下执行
[root@mastersrc]# ./redis-trib.rb create --replicas 1 10.1.1.34:6380 10.1.1.34:6381 10.1.1.12:6380 10.1.1.12:6381 10.1.1.39:6380 10.1.1.39:6381

至此集群搭建完成,可跨机器验证集群,例如
[hadoop@slave2 bin]$ ./redis-cli -c -h 10.1.1.39 -p 6381
10.1.1.39:6381>

查看集群状态
[root@mastersrc]# ./redis-trib.rb check 127.0.0.1:6380

Performing Cluster Check (using node 127.0.0.1:6380)
M: a0d41b839bf4f71cd32249587d9d00d571c2ec05 127.0.0.1:6380
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: 0b1fb1ccd3af0a85a75f27b915a96ac832175ee5 10.1.1.12:6380
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 2b1c67e00dfab99c46c5ad46b5b5af0a1021ce8e 10.1.1.39:6380
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: a62ac61543200fdbfd278f9e80e2105ff11d1780 10.1.1.34:6381
slots: (0 slots) slave
replicates 0b1fb1ccd3af0a85a75f27b915a96ac832175ee5
S: 26a7f4214285c39985c9803283f9ac8b39a72ac6 10.1.1.12:6381
slots: (0 slots) slave
replicates a0d41b839bf4f71cd32249587d9d00d571c2ec05
S: b0b2ace762a2210070a444cf8c9b6adf2ae585e1 10.1.1.39:6381
slots: (0 slots) slave
replicates 2b1c67e00dfab99c46c5ad46b5b5af0a1021ce8e
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.

4.验证
选一台服务器上执行:

这个时候如果在其他机器上去获取这个key 会报错

这是因为这个值已经放在该服务器槽中,我们可以使用 ./redis-cli -c方式查找,可以看到该值位于此服务器

2.2.9 问题处理及故障转移
1.安装过程中遇到的问题
1)在装redis时make报错:
解决方式:
安装gcc和gcc-c++ : yum install gcc ,yum install gcc-c++
如果想看安装情况 :先安装yum install tcl ,然后make test测试
2)执行./redis-trib.rb create --replicas 语句报如下错误:/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- redis (LoadError)
解决方式:
安装依赖,因为没有安装 ruby的 redis插件
3)Waiting for the cluster to join.......

解决方式:
cd /usr/local/cluster/7000
rm -rf rm -rf appendonly.aof nodes.conf
同样的7000也需要执行删除 appendonly.aof nodes.conf
redis集群不仅需要开通redis客户端连接的端口如7000,而且需要开通集群总线端口,集群总线端口为redis客户端连接的端口 + 10000
执行如下命令:
firewall-cmd --zone=public --add-port=17000/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --reload
2.故障转移测试
把某个master节点杀掉

这里可以看出156:7000成了matser节点,我们再获取测试值:

2.3 rabbit mq安装
2.3.1安装环境
Rabbit mq软件版本:
Erlang软件版本:
2.3.2安装Erlang

  1. 上传安装包到服务器
    将erlang-ssl-18.3.4.4-1.sdl7.x86_64.rpm、otp_src_18.3.tar.gz、ncurses-6.1.tar.gz、
    rabbitmq-server-generic-unix-3.6.2.tar.xz上传至安装路径

查看openssl版本,若无需安装

openssl version -a
使用命令: yum install ncurses-devel
yum install openssl-devel
如不能使用yum命令,可解压ncurses-6.1.tar.gz,使用make命令安装。
./configure
make
make install

强制安装erlang-ssl-18.3.4.4-1.sdl7.x86_64.rpm

rpm空格 -ivh 空格包名 空格--nodeps空格 --force
2. 解压安装包
解压源文件:tar -xzvf otp_src_18.3.tar.gz
cd /opt/otp_src_18.3/
创建erlang安装目录:mkdit /opt/erlang
配置安装路径编译代码:
./configure --with-ssl=/opt/openssl --prefix=/opt/erlang
或不用java编译:
./configure --prefix=/opt/plugin/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac 不用java编译

执行编译结果:make && make install

完成后进入/opt/erlang查看执行结果。

  1. 配置Erlang环境变量
    vi /etc/profile
    增加下面的环境变量:
    export PATH=$PATH: /usr/local/erlang/bin
    使得文件生效 source /etc/profile
  2. 验证erlang是否安装成功:
    Erl
    halt().退出(不要忘记后面的点)

erlang安装包路不能删除,如果觉得路径不对,可以重新安装
注:解决openssl问题
openssl-1.1.0b.tar.gz
解压之后,root用户执行:
./config
make
make install
然后需要做以下操作:

修改历史的OpenSSL文件设置备份

mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
mv /usr/lib64/libcrypto.so /usr/lib64/libcrypto.so.old

设置软连接使其使用新的OpenSSL版本

ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so

查看

ll /usr/bin/openssl
ll /usr/include/openssl
ll /usr/lib64/libssl.so*
ll /usr/lib64/libcrypto.so*
最后确认安装成功。

2.3.3安装rabbit MQ

  1. 上传安装包
    将安装包上传至/usr/local

  2. 解压安装包
    依次执行以下命令:
    cd /usr/local
    xz -d rabbitmq-server-generic-unix-3.6.2.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.6.2.tar

  3. 环境变量配置
    vi /etc/profile
    添加环境变量:
    export PATH=$PATH: /usr/local/rabbitmq_server-3.6.2/sbin
    环境变量生效:source /etc/profile

  4. 进入sbin 启动服务:./rabbitmq-server -detached

若报错rabbitmq ERROR: epmd error for host deb:address (cannot connect to host/port)解决方法(deb是你linux的主机名)
解决办法
进入/etc/hosts看下

vi /etc/hosts

把 xx.xx.xx.xx deb
修改成 127.0.0.1 deb

查看服务状态:./rabbitmqctl status
关闭服务:./rabbitmqctl stop

  1. 配置网页插件
    启用插件:./rabbitmq-plugins enable rabbitmq_management
    查看插件:rabbitmq-plugins list

新增用户: ./rabbitmqctl add_user root root

  1. 赋予管理员权限
    查看mq用户:rabbitmqctl list_users
    查看用户权限:rabbitmqctl list_user_permissions guest
    新增用户赋权:
    ./rabbitmqctl set_user_tags root administrator
    ./rabbitmqctl set_permissions -p "/" root "." "." ".*"

  2. 访问http://10.28.121.108:15672

  3. 至此rabbitmq安装完成
    查看信息队列数:rabbitmqctl list_queues
    关闭应用:rabbitmqctl stop_app
    执行清除命令:rabbitmqctl reset(会将命令创建的用户也一并删除)
    启动应用:rabbitmqctl start_app

  4. 命令行创建信息队列
    rabbitmqctl eval 'rabbit_exchange:declare({resource, <<"/">>, exchange, <<"WARN_MSG_Q">>}, topic, true, false, false, []).'

rabbitmqctl eval 'rabbit_amqqueue:declare({resource, <<"/">>, queue, <<"WARN_MSG_Q">>}, true, false, [], none).'

rabbitmqctl eval 'rabbit_binding:add({binding, {resource, <<"/">>, exchange, <<"WARN_MSG_Q">>}, <<"WARN_MSG_Q">>, {resource, <<"/">>, queue, <<"WARN_MSG_Q">>}, []}).'
2.3.4 Rabbitmq集群配置(增删节点)
编辑各个服务器的hosts文件,配置以上内容
vi /etc/hosts
加入以下内容:
集群内所有的 ip hostname
例:

10.28.121.109 zrc121109
10.28.121.108 zrc121108
....

  1. 配置erlang.cookie
    集群中的所有服务器的 .erlang.cookie必须一致
    例:
    以10.28.121.109为准
    将.erlang.cookie复制到其他服务器

  2. 将所有节点加入集群中
    启动集群内所有服务器
    ./rabbitmq-server -detached

添加节点:
所有从机服务器命令一样:
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@zrc121109
./rabbitmqctl start_app
查看集群节点
./rabbitmqctl cluster_status

3.加入镜像策略
在集群中随意一台服务器输入以下命令:
./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

(ha-all:为策略名称。
:为匹配符,只有一个代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。))
移除某节点:
在主节点,也就是发起进群的主机上进行节点的移除.

rabbitmqctl -n rabbit@rabbit-01 forget_cluster_node rabbit@rabbit-03

Removing node 'rabbit@rabbitmq-03' from cluster ...

范例
rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer

然后查看集群状态信息.

root@rabbitmq-01:/var/lib/rabbitmq# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbitmq-01' ...
[{nodes,[{disc,['rabbit@rabbitmq-01','rabbit@rabbitmq-02']}]},
{running_nodes,['rabbit@rabbitmq-02','rabbit@rabbitmq-01']},
{cluster_name,<<"rabbit@rabbitmq-01">>},
{partitions,[]}]
发现rabbitmq3节点已经被移除.
2.3.5宕机处置

  1. 清除所有服务器上rabbitmq配置记录与存储文件
    mv /home/webligic/rabbitmq/mensia /home/webligic/rabbitmq/mensia.bak
    2.从新配置rabbitmq集群

2.4 Nginx安装
2.4.1 Rpm方式安装:

  1. 上传nginx-1.16.0-1.el6.ngx.x86_64.rpm安装包

  2. 安装nginx

  3. 将nginx.conf上传至/usr/local目录下

  4. 替换/etc/nginx/nginx.conf文件

4.启动nginx

2.4.2.tar.gz安装
2.4.2.1安装依赖方式部署nginx

  1. 安装nginx部署所需要的依赖包,依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包。
    openssl :
    [root@localhost] tar zxvf openssl-fips-2.0.9.tar.gz
    [root@localhost] cd openssl-fips-2.0.9
    [root@localhost] ./config && make && make install
    指定路径安装
    [root@localhost] ./config \

--prefix=/自定义位置
make
make install
openssl version --查看版本

zlib:
[root@localhost]tar zxvf zlib-1.2.8.tar.gz
[root@localhost] cd zlib-1.2.8
[root@localhost] ./configure && make && make install
指定路径安装:

--prefix=/自定义位置
make
make install

pcre:

[root@localhost] tar zxvf pcre-8.36.tar.gz
[root@localhost] cd pcre-8.36
[root@localhost] ./configure && make && make install
指定路径安装:
[root@localhost] ./configure \

--prefix=/自定义位置
make
make install

  1. 安装pcre需要c++的编译环境,若系统中没有可能会报以下错误:

  2. 安装rpm格式gcc-c++所需的依赖包及gcc-c++软件包:
    安装依赖包:
    rpm –ivh libstdc++-devel-4.8.5-4.el7.x86_64.rpm
    指定路径安装:
    rpm -i --relocate /usr/bin=/自定义位置/bin --relocate /usr/share/doc=/自定义位置/doc libstdc++-devel-4.8.5-4.el7.x86_64.rpm

rpm –ivh zlib-1.2.7-15.el7.x86_64.rpm
指定路径安装:
rpm -i --relocate /usr/bin=/自定义位置/bin --relocate /usr/share/doc=/自定义位置/doc zlib-1.2.7-15.el7.x86_64.rpm

安装gcc-c++软件包:
rpm –ivh gcc-c++-4.8.5-4.el7.x86_64.rpm

若未安装依赖包直接安装gcc-c++软件包报错如下:

(rpm -Uvh *.rpm --nodeps --force

验证:
gcc -v;
gcc-c++ -v 或者 g++ -v;)
4. 成功安装gcc-c++软件包后可正常安装pcre软件包
[root@localhost] tar zxvf pcre-8.36.tar.gz
[root@localhost] cd pcre-8.36
[root@localhost] ./configure && make && make install
指定路径安装:
[root@localhost] ./configure \

--prefix=/自定义位置
make
make install

  1. nginx应用安装
  2. 解压nginx包
    [root@localhost nginx]# tar -zxvf nginx-1.8.1.tar.gz
    [root@localhost nginx]# cd nginx-1.8.1/

默认安装

[root@localhost nginx-1.8.1]# ./configure && make && make install

指定安装路径

./configure \
--prefix=/自定义位置/ \
--sbin-path=/自定义位置/nginx \
--conf-path=/自定义位置/nginx.conf \
--pid-path=/自定义位置/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/pcre-8.38 \       # pcre 源的位置
--with-zlib=/usr/local/zlib-1.2.11 \     #安装的 zlib 的位置
--with-openssl=/usr/local/openssl-1.0.1t   # openssl 源的位置

# 编译
make && make install

# 重要:如果不执行则不会创建真正的 nginx 文件
test -d
  1. 查找nginx,输入命令whereis nginx查看nginx所在目录(此目录默认位于/usr/local/nginx)

  2. 进入到这个目录之中,ll查看目录内所有文件夹

sbin:启动文件所在文件夹。
conf:配置文件所在文件夹。
logs:日志文件所在文件夹。

  1. 进入conf文件夹找到nginx配置文件nginx.conf:

  2. 根据项目需求配置nginx服务器的配置文件nginx.conf:

此处nginx.conf详见2.3.3Nginx配置反向代理与负载均衡。

  1. 进入nginx/sbin文件夹启动nginx服务
    [root@localhost nginx]# cd sbin/
    [root@localhost sbin]# ./nginx –c /usr/local/nginx/conf/nginx.conf
    查看nginx服务进程
    [root@localhost sbin]# ps –ef | grep nginx

  2. 通过浏览器访问nginx服务器url地址及监听端口(默认为80),若未进行修改配置文件页面如下:

2.4.2.2 yum方式部署
nginx依赖于pcre库,要先安装pcre:
yum install pcre pcre-devel
查看pcre版本:
pcre-config –version
安装编译工具及库文件:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
正式安装:
mkdir /home/tomcat/plug/nginx
cd /home/tomcat/plug
tar zxvf nginx-1.10.3.tar.gz
chown nginx:nginx -R /home/tomcat
su tomcat
cd /home/tomcat/plug/nginx-1.10.3
./configure --prefix=/home/tomcat/plug/nginx
make && make install
修改配置文件:
cd /home/tomcat/plug/nginx/conf
修nginx.conf中端口等
启动:
cd /tomcat/plug/nginx/sbin
./nginx -c /home/tomcat/nginx/conf/nginx.conf (带配置文件路径启动)
注:如果有配置防火墙,导致nginx服务开启后无法通过web进行访问,可尝试如下解决方法(例如端口号为10000):
1.//打开防火墙文件
sudo vim /etc/sysconfig/iptables
//新增行 开放10000端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
保存退出
sudo service iptables restart//重启防火墙
2.开启 web 端口
firewall-cmd --permanent --add-port=10000/tcp
重启 firewall
firewall-cmd –reload
3.或者关闭防火墙systemctl stop firewalld
nginx常见命令:
nginx -s reload # 重新载入配置文件
nginx -s reopen # 重启 Nginx
nginx -s stop # 停止 Nginx
2.4.3 Nginx负载均衡与反向代理
(weblogic双节点案例)
2.4.3.1 nginx配置属性说明

全局设置

main

运行用户

user www-data;

启动进程,通常设置成和cpu的数量相等

worker_processes 1; // 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数

全局错误日志及PID文件

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

工作模式及连接数上限

events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024; #单个后台worker process进程的最大并发链接数
# multi_accept on;
}

设定http服务器,利用它的反向代理功能提供负载均衡支持

http {
#设定mime类型,类型由mime.type文件定义
include /etc/nginx/mime.types;
default_type application/octet-stream;
#设定日志格式
access_log /var/log/nginx/access.log;

#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile        on;
#将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞
tcp_nopush      on;
tcp_nodelay     on;
#连接超时时间
keepalive_timeout  65;

#开启gzip压缩
gzip  on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

#设定请求缓冲
client_header_buffer_size    1k;
large_client_header_buffers  4 4k;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

#设定负载均衡的服务器列表
upstream mysvr {
    #weigth参数表示权值,权值越高被分配到的几率越大
    #本机上的Squid开启3128端口
    server 192.168.8.1:3128 weight=5;
    server 192.168.8.2:80  weight=1;
    server 192.168.8.3:80  weight=6;
}


server {
    #侦听80端口
    listen       80;
    #定义使用www.xx.com访问
    server_name  www.xx.com;

    #设定本虚拟主机的访问日志
    access_log  logs/www.xx.com.access.log  main;

    #默认请求
    location / {
        root   /root;      #定义服务器的默认网站根目录位置
        index index.php index.html index.htm;   #定义首页索引文件的名称

        fastcgi_pass  www.xx.com;
        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name; 
        include /etc/nginx/fastcgi_params;
    }

    # 定义错误提示页面
    error_page   500 502 503 504 /50x.html;  
        location = /50x.html {
        root   /root;
    }

    #静态文件,nginx自己处理
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
        root /var/www/virtual/htdocs;
        #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
        expires 30d;
    }
    #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
    location ~ \.php$ {
        root /root;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
        include fastcgi_params;
    }
    #设定查看Nginx状态的地址
    location /NginxStatus {
        stub_status            on;
        access_log              on;
        auth_basic              "NginxStatus";
        auth_basic_user_file  conf/htpasswd;
    }
    #禁止访问 .htxxx 文件
    location ~ /\.ht {
        deny all;
    }

}

#第一个虚拟服务器
server {
    #侦听192.168.8.x的80端口
    listen       80;
    server_name  192.168.8.x;

    #对aspx后缀的进行负载均衡请求
    location ~ .*\.aspx$ {
        root   /root;       #定义服务器的默认网站根目录位置
        index index.php index.html index.htm;      #定义首页索引文件的名称

        proxy_pass  http://mysvr;    #请求转向mysvr 定义的服务器列表

        #以下是一些反向代理的配置可删除.
        proxy_redirect off;

        #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
        client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
        proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)
        proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小
        proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    }
}

}
2.4.3.2 nginx反向代理案例
本地起两个项目, 分别在这两个文件夹下面运行
  

npm install
node server.js
在浏览器输入
本机ip:4789
本机ip:5789
可以访问到这两个页面

接着我们想使用
test.nginx.com访问到 页面5789
test.nginx.com/bug 访问到页面5789

则我们首先需要配置hosts
win 下hosts 的地址为 C:\Windows\System32\drivers\etc
我们需要在hosts文件里面添加如下配置

172.18.144.23 test.nginx.com
然后在 nginx 的 http 模块上添加一个 server
server {
listen 80;
server_name test.nginx.com;

    location / {
        proxy_pass   http://172.18.144.23:4789/;
    }

    location /buy {
        proxy_pass   http://172.18.144.23:5789/;
    }                

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

然后重启nginx
在浏览器输入 test.nginx.com

在浏览器输入 test.nginx.com/bug

2.4.2.3 nginx负载均衡
在nginx中配置http
首先配置负载均衡的服务
在http模块中添加如下配置
upstream webservers {
server 172.18.144.23:4789 weight=10;
server 172.18.144.23:5789 weight=10;
}

把server改为

server {
listen 80;
server_name test.nginx.com;

    location / {
        proxy_pass   http://webservers;
    }

    location /buy {
        proxy_pass   http://172.18.144.23:5789/;
    }            

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

在浏览器输入 test.nginx.com,刷新,我们可以看到两种页面,说明nginx已经把我们的请求分发到不同的地方去了。

3.数据库脚本执行
分别按数字顺序执行平台与查询内的脚本。
注意参数配置问题,结合系统部署确认清单:

4.系统部署
结合3内结合《系统部署确认清单》确认的参数进行修改配置文件。

jvm 建议配置以下:
-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=1024M -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/tomcat/logs/heap.prof -Dfile.encoding=UTF-8

4.1 应用包配置文件参数确认与修改
creditplatformweb :
1)db.properties 内数据库配置

2)config.properties内redis 应用访问端口配置

redis单点部署:

redis主从配置

deploymodel: cluster=1, single=2, masterSlave=3,sentinel=4

redis.deploymodel=3

IP

redis.host=masterip:6379
redis.host2=slaveofip:6379

redis哨兵配置

deploymodel: cluster=1, single=2, masterSlave=3,sentinel=4

redis.deploymodel=4

IP

redis.masterName=mymaster
redis.host=masterip:26379,slavefip:26379,slavefip:26479
登陆方式选择:密码登陆

生成环境修改为:密码+验证码

修改端口

其他应用war包:
1)db.properties 内数据库配置成实际的

2)redis.properties内redis配置参照平台包内修改

3)config.properties内签名服务器参数待定

个人+企业web包的config文件修改nginx异议处理相关配置(主要看红线标注部分,生产环境多为test修改成prod,其他基本不变)

4)amqp.properties修改用户名密码:用户名:root 密码:root
单点部署:

集群部署:
amqp.deployMode=2
amqp.addresses=10.10.121.28:5672,10.10.121.29:5672
5)个人+企业api包config.properties内修改是否启用批量及加密加压功能

6)所有含有签名服务器netsignagent.properties配置的war包:
与信安同事沟通Ip及端口配置HA的,分配模式配置为静态集中分配

4.2结构化入库配置
1.修改配置文件
ent-asyncMqStorageService-0.0.1-SNAPSHOT.jar
person-asyncMqStorageService-0.0.1-SNAPSHOT.jar
修改两个jar内的配置文件:BOOT-INF\classes

amqp、config、db、redis、logback修改方法同上,application.properties内修改端口及mq的相关参数,个人/企业端口不同且与服务器其他端口不冲突即可。

2.启动
后台启动分别启动个人、启用的结构化jar,(可以指定当前jar路径下输出日志)
nohup java -jar -D -XX:MaxPermSize=1024m -Ddefault.client.encoding=UTF-8 -Ddefault.override.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.region=CH ent-asyncMqStorageService-0.0.1-SNAPSHOT.jar >>ent-asyncMqStorageService-0.0.1-SNAPSHOT.log 2>&1 &

nohup java -jar -D -XX:MaxPermSize=1024m -Ddefault.client.encoding=UTF-8 -Ddefault.override.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.region=CH person-asyncMqStorageService-0.0.1-SNAPSHOT.jar >>person-asyncMqStorageService-0.0.1-SNAPSHOT.log 2>&1 &

4.3 tomcat应用服务器部署
4.3.1 tomcat安装
上传tomcat包到指定的目录中,进入到tomcat存放目录,执行解压命令: tar -zxvf apache-tomcat-7.0.69.tar.gz

如果需要修改TOMCAT默认端口,则修改TOMCAT的conf目录下server.xml文件

配置TOMCAT的参数,进去bin目录中修改 catalina.sh 文件
修改内存大小,添加下图中的参数,按照图中的位置添加
JAVA_OPTS="-Xms1024m -Xmx4096m"

设置编码格式
export JAVA_OPTS=-Dfile.encoding=UTF-8
如果需要指定某个固定JDK,则需要添加下图中的

bin目录下setclasspath.sh 内添加添加JAVA_HOME及JRE_HOME
添加内容如下:

4.3.2 应用部署
在4.1基础上修改配置文件后,所有war包部署在webapps内,启动tomcat即可。、
注意后台启动:nohup ./startup.sh &

4.4 was应用服务器部署
4.4.1 was安装

Jvm参数参考:
-Dcom.ibm.websphere.webservices.DisableIBMJAXWSEngine=true
-XX:MaxPermSize=512M
-XX:MaxNewSize=256M
-XX:PermSize=256M
-XX:-TraceClassLoadingPreorder
-Dfile.encoding=UTF-8
-agentlib:getClasses
-Xverify:none
-Djava.awt.headless=true
-Dentweb=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig/entweb
-Dperweb.path=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig/perweb
-Dperapi.path=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig/perapi
-Dentapi.path=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig/entapi
-DDconfig.path=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig/plat

4.4.2 应用部署

1.放置或修改应用配置文件
1)根据JVM中配置的-Dconfig.path的路径创建对应的文件夹
mkdir /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/AppConfig
2)使用FTP工具将properties文件夹中的所有文件上传到上一步骤创建的文件夹中

2.WebSphere部署应用WAR包
1)输入控制台路径,在页面中输入用户名和密码

2)登录到控制台后,按步骤进入企业应用程序页面,点击安装按钮

3)上传部署包

4)选择快速路径,点下一步

5)步骤一,无需要修改的参数,点下一步

6)步骤二,将多选框勾选上,点下一步

7)步骤三,将多选框勾选上,点下一步

8)步骤四,输入上下文根,和部署包名保持一致

9)步骤五,如图所示勾选上,点下一步

10)步骤六,点击完成

11)部署成功则如下图所示,点击保存按钮保存部署状态。

12)设置部署包的类装入顺序,如图所示进入类装入设置界面。

13)应用包中需要设置为“类已装入并且是先使用父类装入器”。点击“应用”按钮,在提示框中点击“保存”设置。

16)应用程序已配置完成。现在的状态应该为未启动。勾选配置完成的应用程序,点击“启动”按钮

17)刷新页面后,若之前启动的应用程序的状态变为绿色箭头,则项目成功启动。(最好根据后台日志判断是否成功启动)

18)以上为部署一个WAR包的流程,征信查询前置系统共有5个WAR包,确保如图所示状态即成功部署

19)输入项目地址,就可以直接访问了

4.5 weblogic应用服务器部署
4.5.1 weblogic安装

4.5.2 应用部署
1.注意修改weblogic.xml文件
**所有web工程的WEB-INF目录下新增weblogic.xml文件, 文件内容详见对应附件、一一对应。
**所有的applicationContext.xml中<context:property-placeholder ignore-unresolvable="true" location="classpath😕.properties" />需要将所有properties配置文件列出
ex:creditenterprisequeryweb的applicationContext.xml改为
<context:property-placeholder
ignore-unresolvable="true" location="classpath:/db.properties" />
<context:property-placeholder
ignore-unresolvable="true" location="classpath
:/redis.properties" />
<context:property-placeholder
ignore-unresolvable="true" location="classpath:/config.properties" />
**所有的web.xml中

contextConfigLocation

classpath:/applicationContext
.xml


需要将当前项目用到的所有context配置文件列出,不能使用*通配符,例如平台包

其他包只要去掉*号即可。

** personqueryapiweb包,需要在WEB-INF\classes\中新增一个目录META-INF,其中新增一个metro-default.xml,内容详见附件

**需要把peopertise文件放到weblogic配置文件目录(目录样例如下图)。平台包优先,其他包重复的不用放。

2.启动控制台部署应用
启动命令:
cd /home/weblogic/Oracle/Middleware/Oracle_home/user_projects/domains/base_domain/bin
./startWeblogic.sh
输入以下网址进入控制台 http://xxx(你自己的ip地址):7001/console

进入主页面,开始部署项目

上载项目包

选择需要上载的本地项目包或者war包

开始项目配置

继续下一步

选择红色标记的配置

完成配置

激活配置

开始配置系统环境

进入AdminServer

选择协议,然后选择HTTP

配置HTTP协议中的信息,没用红款标记的保持默认就行了

再次部署项目

启动部署项目

4.6 结构化存储部署
1.修改配置文件
ent-asyncMqStorageService-0.0.1-SNAPSHOT.jar
person-asyncMqStorageService-0.0.1-SNAPSHOT.jar
修改两个jar内的配置文件:BOOT-INF\classes

amqp、config、db、redis修改方法同上,application.properties内修改端口及mq的相关参数,端口要求个人/企业的端口与应该服务器其他不冲突。

2.启动结构化存储应用
分别启动个人、启用的结构化jar,后台启动并指定当前jar路径下输出日志
nohup java -jar -D -XX:MaxPermSize=1024m -Ddefault.client.encoding=UTF-8 -Ddefault.override.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.region=CH ent-asyncMqStorageService-0.0.1-SNAPSHOT.jar > ent-asyncMqStorageService-0.0.1-SNAPSHOT.log 2>&1 &

nohup java -jar -D -XX:MaxPermSize=1024m -Ddefault.client.encoding=UTF-8 -Ddefault.override.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.region=CH person-asyncMqStorageService-0.0.1-SNAPSHOT.jar > person-asyncMqStorageService-0.0.1-SNAPSHOT.log 2>&1 &

5.其他(继续补充中)
5.1weblogic应用包启动脚本
新建start.sh增加以下内容:

!/bin/sh

日志文件

base_dir=$(pwd)
echo $base_dir

java_options

export JAVA_OPTIONS="-Dfile.encoding=UTF-8"

nohup 重定向输出日志

nohup $base_dir/startWebLogic.sh >> /dev/null 2>&1 &
5.2 windows系统下tomcat控制台输出
1.修改startup.bat文件内容
把文件中的倒数第二行中的
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为: call "%EXECUTABLE%" run %CMD_LINE_ARGS%
修改完之后如下图:

2.修改catalina.bat文件内容
查找catalina.bat含有%ACTION%的4行内容(在文件末),在后面添加 >> %CATALINA_HOME%\logs/catalina.txt
修改之后如下图

这样就会在 tomcat下的logs文件中生成一个catalina.txt。 控制台中的内容就会输入到文件中了。
3.按天来输出日志
按照上面的修改,tomcat所有的日志都会写入到logs/catalina.out文件内,如果想要按天来生成日志文件,可以在%ACTION%后添加 >> %CATALINA_HOME%\logs\catalina.%date:0,4%.%date:5,2%.%date:~8,2%.txt,生成的格式为catalina.yyyy.mm.dd.out(yyyy代表4位年份,mm代表为2位月份,dd代表两位日期)

5.3 redis哨兵启停注意事项及优化
5.3.1重启服务器时redis双机哨兵模式要注意事项
启停顺序:

  1. 停止2台服务器redis的哨兵模式,即杀掉两个sentinel进程。
  2. 停从机redis
  3. 停主机redis
  4. 启动主机redis
  5. 启动从机redis
  6. 启动两台服务器的sentinel
    查看redis状态
    redis-cli
    info
    查看sentinel状态
    redis-cli -p 26379
    info sentinel
    5.3.2 redis性能优化
    Redis 关闭rdb和aof
    问题:当往redis中导入数据时,有时会出现redis server went away的情况;
    原因:
    导入的数据量太大,而内存不够(即内存1G,但数据有2G)。此时的redis服务需要重启。
    可能是同一时间导入的数据太多,导致数据持久化的操作出问题,此时需要关闭rdb跟aof。

1)关闭rdb的命令:
config set save ""
(或者进入配置文件将:
Save 900 1
Save 300 10
Save 60 10000
注释掉,并打开save "" 的注释,使得 save "" 生效,即可关闭rdb; )

2)关闭aof的命令(默认关闭):
config set appendfsync no
(或者进入配置文件,将appendonly设置为no,默认是 appendonly no )
(注:appendfsync 是同步机制,默认为appendfsync everysec)---每秒同步一次写操作到aof文件中。
3)查询rdb和aof状态
该两种设置查询是否已修改成功,可分别通过
config get save,
config get appendfsync
命令来查看。
注意:该命令都是通过执行redis-cli后方可执行。

posted @ 2023-03-21 16:45  城市幽灵  阅读(94)  评论(0编辑  收藏  举报