Javeweb项目微服务集群部署

** 基于Springcloud的javaweb项目部署集群环境,采用jdk运行(jar包),consul 进行注册服务监控健康,实现并发量大的时候可以快速响应的高并发效果**
操作过程如下
1.安装nfs服务
2.安装相应中间件服务
3.安装数据库以及缓存数据库
4.配置文件
5.运行文件调试
(监控健康服务节点consul /请求反向代理nginx/)

1.安装Net file system 共享文件服务(nfs)

离线安装(内网/脱网/局域网)/外网直接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

2.安装注册服务consul

简介: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

Javeweb项目微服务集群部署_第1张图片
查看集群成员

consul members

Javeweb项目微服务集群部署_第2张图片
ps:

查看最近历史日志
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/

3.安装Nginx

1.首先下载Nginx前需要一些插件~
可以查看gcc版本,若无,则就基本无了

gcc -v

安装gcc,pcre、pcre-devel,zlib,zlib-devel,openssl,openssl-devel操作可以直接百度~

  • gcc是linux下的编译器在此不多做解释,感兴趣的小伙伴可以去查一下相关资料,它可以编译 C,C++,Ada,Object C和Java等语言.
  • pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
  • zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,
  • openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔

正式安装nginx

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

你可能感兴趣的:(笔记,前端,微服务,运维)