** 基于Springcloud的javaweb项目部署集群环境,采用jdk运行(jar包),consul 进行注册服务监控健康,实现并发量大的时候可以快速响应的高并发效果**
操作过程如下
1.安装nfs服务
2.安装相应中间件服务
3.安装数据库以及缓存数据库
4.配置文件
5.运行文件调试
(监控健康服务节点consul /请求反向代理nginx/)
离线安装(内网/脱网/局域网)/外网直接yum install nfs rpcbind即可~操作如下
NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils,客户端只需要安装 nfs-utils。
1.首先确认服务端系统是否已安装nfs
rpm -qa nfs-utils rpcbind
2.安装服务
如果计算机可以连接到互联网,则可以通过以下命令进行安装:
#服务端
yum install -y nfs-utils rpcbind
#客户端
yum install -y nfs-utils
但是,很多时候由于安全的原因不能联网,所以只能离线安装。
下载离线安装包,
rpcbind:
libtirpc-0.2.4-0.15.el7.x86_64.rpm
rpcbind-0.2.0-47.el7.x86_64.rpm
nfs-utils:
nfs-utils-1.3.0-0.61.el7.x86_64
tcp_wrappers-7.6-77.el7.x86_64
...
#这个依赖有点多,需要的可以联系我,就不一一列出来了
百度网盘下载地址:https://pan.baidu.com/s/1mq7ZnWyn33krFcE3AnBQPQ
提取码:cfq2
安装离线包:
#安装路径下的所有rpm包
rpm -Uvh *.rpm --nodeps --force
#安装特定的rpm包
rpm -hvi dejagnu-1.4.2-10.noarch.rpm
最后,检查是否安装成功。
配置:
1.在服务端创建一个共享目录 /data/share ,作为客户端挂载的远端入口,然后设置权限。
mkdir -p /data/share
chmod 755 /data/share
2.修改 NFS 配置文件 /etc/exports
vim /etc/exports
#配置单个ip
/data/share 192.168.0.130(rw,sync,insecure,no_subtree_check,no_root_squash)
/data/share 192.168.0.131(rw,sync,insecure,no_subtree_check,no_root_squash)
#配置ip段
/data/share 192.168.0.130/139(rw,sync,insecure,no_subtree_check,no_root_squash)
#配置所有ip可以挂载
/data/share *(rw,sync,insecure,no_subtree_check,no_root_squash)
说明:
/data/share-共享目录
192.168.0.130-IP地址,可以是特定的ip地址、ip地址段或所有可以访问的ip
rw,sync,insecure,no_subtree_check,no_root_squash-访问控制参数,具体参考下面列表。
参数 | 说明 |
---|---|
ro | 只读 |
rw | 读写 |
sync | 同步共享-所有数据在请求时写入共享 |
async | 异步共享-nfs 在写入数据前可以响应请求 |
secure | nfs 通过 1024 以下的安全 TCP/IP 端口发送 |
insecure | nfs 通过 1024 以上的端口发送 |
wdelay | 如果多个用户要写入 nfs 目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置 |
hide | 在 nfs 共享目录中不共享其子目录 |
no_hide | 共享 nfs 目录的子目录 |
subtree_check | 如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认) |
no_subtree_check | 不检查父目录权限 |
all_squash | 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录 |
no_all_squash | 保留共享文件的 UID 和 GID(默认) |
root_squash | root 用户的所有请求映射成如 anonymous 用户一样的权限(默认) |
no_root_squash | root 用户具有根目录的完全管理访问权限 |
anonuid=xxx | 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID |
anongid=xxx | 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID |
1.启动rpc服务
service rpcbind start
#或者使用如下命令
/bin/systemctl start rpcbind.service
# 查看 NFS 服务项 rpc 服务器注册的端口列表
rpcinfo -p localhost
2.启动nfs服务
service nfs start
#或者使用如下命令亦可
/bin/systemctl start nfs.service
# 启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表
# rpcinfo -p localhost
3.在另一台 Linux 上挂载目录
#查看配置
showmoun -e 192.168.xxx.xxx
#新建目录
mkdir -p /share
#挂载共享目录(挂载远端目录到本地 /share 目录)
mount 192.168.0.130:/data/share /share
#查看挂载目录状况
df -h | grep 10.222.77.86
#如果要卸载目录
umount /share
简介:Consul是一个分布式高可用的系统,一个发现和配置服务的工具。客户端可以利用它提供的API注册和发现服务,及监控检测功能实现服务的高可用。
下载
wget https://releases.hashicorp.com/consul/1.5.2/consul_1.5.2_linux_amd64.zip
离线环境下则直接拉包进来即可~
解压
-方法1
unzip consul_1.5.2_linux_amd64.zip -d /usr/bin ##解压到usr/bin目录下
unzip consul_1.5.2_linux_amd64.zip ##解压到当前目录下
-方法2
unzip consul_1.5.2_linux_amd64.zip ##解压
cp consul /usr/local/bin/ ##移动
验证
consul
启动开发模式(快速启动一个单节点Consul,但是不能数据持久化,不能用于生产环境)
consul agent -dev
consul server端的启动命令:
consul agent -server -bootstrap-expect 1 -client 0.0.0.0 -config-dir /etc/consul.d
或者 这样可以输出日志
nohup consul agent -server -bootstrap-expect 1 -client 0.0.0.0 -config-dir /etc/basic.json >consul.log &
-config-dir :就是指定加载置文件的目录,我们只需要填写配置文件的目录就可以帮助我们把该目录下所有的以.json结尾配置文件加载进去,它的加载顺序是根据26个字母的顺序加进行加载配置文件的。文件内容都是json格式的数据。默认后面文件定义配置会覆盖前面文件定义的配置。
{
"ports": {
"http": 8501 ,
"dns": 8601,
"grpc": 8401,
"serf_lan": 8311,
"serf_wan": 8312,
"server": 8310
}
启动consul server端后,会发现我们的端口全部变成上面描述的端口,consul web UI的端口不在是默认的8500 而变成了 8501 ,另外当我们启动其他consul时,通过-retry-join 加入server端时会报错,拒绝连接,原因就是因为server端的端口发生了改动,它默认去连接8301端口,此时-retry-join不能直接写ip地址,需要写对应的修改后的serf_lan端口 例如:
consul agent -data-dir /consul/data2 -advertise 127.0.0.1 -client 0.0.0.0 -join 127.0.0.1:8311
consul members
查看最近历史日志
consul monitor
停止
gracefully或者forcefully
插入节点注册服务写一个json数据:
{
"service":{
"name":"test01",
"tags":[
"",
""
],
"address":"127.0.0.1",
"port":3010,
"enable_tag_override": false,
"check":{
"deregisterCriticalServiceAfter":"90m",
"http":"http://127.0.0.1:3010/health",
"interval":"10s"
}
}
}
名词解释:
tags:服务的tag,自定义,可以根据这个tag来区分同一个服务名的服务
address:服务注册到consul的IP,服务发现,发现的就是这个IP
port:服务注册consul的PORT,发现的就是这个PORT
enable_tag_override:标签是否允许覆盖
http:指定健康检查的URL,调用后只要返回20X,consul都认为是健康的
interval:健康检查间隔时间,每隔10s,调用一次健康检查的URL
重启Agent
consul agent -dev -config-dir /etc/consul.d/
1.首先下载Nginx前需要一些插件~
可以查看gcc版本,若无,则就基本无了
gcc -v
安装gcc,pcre、pcre-devel,zlib,zlib-devel,openssl,openssl-devel操作可以直接百度~
1、下载nginx安装包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
2、把压缩包解压 usr/local/java
tar -zxvf nginx-1.9.9.tar.gz
3、切换到cd /usr/local/java/nginx-1.9.9/下面
执行三个命令:
初始化默认配置
./configure
编译
make
安装
make install
4、切换到/usr/local/nginx安装目录,nginx的配置文件nginx.conf文件,主要也就是端口
5、启动nginx服务 切换目录到/usr/local/nginx/sbin下面
./nginx
查看nginx服务是否启动成功
ps -ef | grep nginx