在编写好分布式项目后,我们需要对服务提供者\消费者进行打包 ,上传到服务器上进行发布 .现在对整个过程进行总结
服务提供者的发布
在父项目的pom.xml中打包插件添加坐标
需要被打包的项目的pom.xml (需要根据被打包的文件所在地方做出少量的调整)
<build> <plugins> <!-- 指定项目的打包插件信息 --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- 指定打包描述文件的位置:相对项目根目录的路径 --> <!-- assembly打包的描述文件 --> <descriptor>assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <!--用于资源拷贝--> <resource> <directory>src/main/resources/spring</directory> <includes> <include>**/*.xml</include> </includes> <targetPath>META-INF/spring/</targetPath> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <!--<targetPath></targetPath>--> </resource> </resources> </build>
注: 主要注意的是spring配置文件的位置
assembly打包插件分享至百度云
修改打包插件的dubbo.properties文件
host ,指定项目在哪个虚拟机运行 ,一般和发布者在一个虚拟机上面
刷新该项目, 在target目录下, 有个.gz的压缩包 .
出现以后然后打开web ,然后访问
服务消费者的发布
- 安装了 nginx 服务器
- 三个tomcat服务器
这一步是第4步的前提 !!!
删除后ROOT文件后 ,将无法访问tomcat 主页, 启动时只能通过日志文件判断是否启动成功 !!!
注意: url所指定的ip是被发布的消费者所在的虚拟机 ,也就是安装了这三台tomcat的虚拟机
上传有点慢, 出现下图说明部署成功!!!
主要是修改访问的url ,配置完成过后,可以通过ip+port进行测试
负载均衡配置
静态资源配置 ,以及访问原理的图解
拓展:nginx keepalive实现nginx集群的高可用
通过nginx的负载均衡配置 , 已经实现了访问消费者项目时 ,被随机的分担到了多个tomcat服务器 . 减轻了服务其的压力 ,而且,当一台tomcat 宕机掉时, 服务仍能够运行 . 但是随之而来的问题是 :万一 nginx服务器挂掉还怎么玩? 这里就引出了nginx keepalive ,作用是实现nginx集群的高可用
https://blog.51cto.com/12922638/2155817
keepalive是在TCP中一个可以检测死连接的机制。
keepalive原理很简单,TCP会在空闲了一定时间后发送数据给对方:
1.如果主机可达,对方就会响应ACK应答,就认为是存活的。
2.如果可达,但应用程序退出,对方就发FIN应答,发送TCP撤消连接。
3.如果可达,但应用程序崩溃,对方就发RST消息。
4.如果对方主机不响应ack, rst,继续发送直到超时,就撤消连接。这个时间就是默认的二个小时。
1.准备两台机器
A机器:192.168.40.128
B机器:192.168.40.130
A级器作为master,B机器作为backup
2.两台机器都安装:keepalived
3.两台机器上都安装nginx
1.更改A机器上的更改keepalived配置文件
清空文件内容
编辑配置文件
添加加以下内容:
2.定义监控脚本
脚本路径在keepalived配置文件中有定义,路径为/usr/local/sbin/check_ng.sh
编辑配置文件:
增加以下内容:
3.脚本创建完之后,还需要改变脚本的权限(不更改权限,就无法自动加载脚本,那就无法启动keepalived服务)
可以手动执行下脚本程序,判断是否有错。
4.启动keepalived服务,并查看是否启动成功
启动不成功,有可能是防火墙未关闭或者规则限制导致的
keepalived使用224.0.0.18作为Master和Backup健康检查的通信IP
这时再来启动keepalived,就会看到keepalived进程服务了
查看keepalived的启动日志:/var/log/messages
启动时发现异常
现在处于故障状态
检查后发现是检查nginx启动状态的脚本出错,更正脚本错误。
6.查看ip地址,使用 ip add 命令,可以查看到vip192.168.40.200
1.自定义B机器keepalived配置文件,更改虚拟IP和主一样的,首先清空B机器keepalived里面自带的配置文件
编辑配置文件:
增加以下内容:
2.定义监控脚本,路径再keepalived里面已定义过
增加以下内容:
3.改动脚本的权限,设置为755权限
4.启动keepalived服务:
浏览器访问vip(虚拟地址),即192.168.40.200,主机正常,访问的是master, 将主机上的keepalived关闭,从即上的vip会开启,使用ip add查看主机上的ip,可以发现在监听192.168.40.200,这是访问nginx会访问到从机上
原文链接:https://cloud.tencent.com/developer/article/1668646