分布式环境Tomcat多节点集群下共享目录配置,tomcat虚拟目录+nfs
我们可能有这种场景:
集群环境下,多个web容器需要请求一个共享目录下的文件,比如保存图片或者录音文件,任意一个节点保存后其他节点需要及时获取,此时就需要目录进行同步了,否则Nginx负载到任意一个节点上请求文件时,找不到文件将返回404,这时候linux下可以用rsync处理,但是rsync双向同步有很多问题,在jekins环境下很多很多问题,不建议使用。
这里建议用nfs处理,或者用其他分布式文件系统如gfs或者ceph等,或者直接将这些文件放到cdn(看项目大小,财气是否够粗够硬),考虑文件很多性能问题建议cdn,其次gfs,ceph,最low的nfs处理吧。
处理分3个步骤:
1)安装nfs
2)配置nfs
3)配置tomcat 虚拟目录
1.1)安装nfs
yum install nfs-utils portmap nfs4-acl-tools (每个节点分别执行)
1.2)各自节点(tomcat所在linux)
mkdir -p /data/nfs
chown -R tomcat:tomcat /data/nfs
chmod -R 777 /data/nfs
以上3条命令每个节点分别执行
2.1)nfs server(只有一个server,选用一个节点,其他均为客户端)配置
vi /etc/exports
添加如下内容:
/data/nfs *(rw,sync)
2.2)启动nfs服务
centos redhat 5版本执行:
service portmap restart
service nfs restart
让nfs随机启动:
chkconfig portmap on
chkconfig nfs on
centos redhat 6版本执行:
service rpcbind restart
service nfs restart
让nfs随机启动:
chkconfig rpcbind on
chkconfig nfs on
2.3)客户端挂载nfs文件系统
a、关闭防火墙(各节点分别执行,或者添加iptables策略)
service iptables stop
chkconfig iptables off
b、挂载nfs
mount -t nfs 10.0.0.1:/data/nfs /data/nfs
上面10.0.0.1为nfs server ip地址,上面这条命令各节点分别执行
这时客户端节点执行df -h命令应该能看到nfs挂载点文件系统了
3.1)tomcat配置虚拟目录
server.xml中添加host:
<Context path="/mp3" docBase="/data/nfs" reloadable="true"></Context>
以上tomcat就可以访问webapp(deploy目录)外的文件了,我们可以通过http://ip:端口/工程名/mp3/001.mp3访问我们的音频文件了,nginx不管分发到哪个节点tomcat都不会返回404了,因为任意一个节点往nfs目录下写文件实际上时写到nfs server文件系统上,其他tomcat节点均可以访问。
以上教程比较简易,如遇问题可以邮件跟我联系dba_xyx@hotmail
分布式环境Tomcat多节点集群下共享目录配置,tomcat虚拟目录+nfs的更多相关文章
- nginx+tomcat+redis的集群+session共享
nginx+tomcat+redis的集群+session共享 环境准备 1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略. 2.jdk版本:jdk1.7 ...
- tomcat8.0.15+spring4.1.2的集群下共享WebSocketSession?
环境:nginx+Tomcat服务器 A B C 问题:如果用户 1 访问由服务器 A socket服务 ,用户2 由服务器 C socket服务 ,此时如果用户 1, 2 想通过 sock ...
- Spring-3.2.5 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)
本例中我启动了两个Tomcat作效果测试,先看效果图: 现在我们关闭一个Tomcat 注意红线的位置和设置的参数有关 #org.quartz.jobStore.clusterCheckinInterv ...
- Spring-4.0 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)还是没有解决Serializable序列化
- 1.Apache+Tomcat负载均衡+集群配置
1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署
最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...
- was集群下基于接口分布式架构和开发经验谈
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/34084935 某b项目是我首 ...
- 用redis实现TOMCAT集群下的session共享
上篇实现了 LINUX中NGINX反向代理下的TOMCAT集群(http://www.cnblogs.com/yuanjava/p/6850764.html) 这次我们在上篇的基础上实现session ...
随机推荐
- sass的基本语法与使用
一.简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护.以上都是百度的,哈哈: 其实个人认为sass就是一套提高编写css效率的规则 ...
- 【python】10分钟教你用python一行代码搞点大新闻
准备 相信各位对python的语言简洁已经深有领会了.那么,今天就带大家一探究竟.看看一行python代码究竟能干些什么大新闻.赶紧抄起手中的家伙,跟我来试试吧. 首先你得先在命令行进入python. ...
- 18.阻止默认操作e.preventDefault();防止冒泡事件:e.stopPropagation()
一.加了e.preventDefault();会阻止a标签默认的点击跳转效果 <!DOCTYPE html> <html lang="en"> < ...
- Qt 学习之路 2(59):使用流处理 XML
Qt 学习之路 2(59):使用流处理 XML 豆子 2013年7月25日 Qt 学习之路 2 18条评论 本章开始我们将了解到如何使用 Qt 处理 XML 格式的文档. XML(eXtensible ...
- Spring学习笔记(五)—— Spring整合JDBC
一.Spring对JDBC的支持 Spring提供了很多模板整合Dao技术 与JDBC的整合中,Spring中提供了一个可以操作数据库的对象——JdbcTemplate,该对象封装了JDBC技术,与D ...
- tornado 04 模板
一.模板 #模板就是一个HTML文件,只是其中添加了模板语法,需要服务器的渲染才能正常显示数据 #通过render可以返回一个html网页,不过那都是固定的页面,固定的数据,如果数据是不确定的,是会不 ...
- 最长上升子序列(LIS)的n*log(n)求法
方法: 对于某个序列,设一个数组,将序列第一个数放入,然后再一个一个判断序列下一位,如果大于当前数组的末尾元素,则加入数组,否则利用二分法找到第一个大于等于当前数的元素并替换,最后这个数组的长度len ...
- 江西理工大学南昌校区排名赛 B: 单身狗的数字游戏
题目描述 萌樱花是一只单身狗. 萌樱花今天初始化了N个数字,使它们都为0 0 0 0... 萌樱花决定选取某一个位置,分别增加1到N(如果到达数组末尾就从头开始). 比如: 0 0 0(选择第二个位置 ...
- SiteServer CMS简介
SiteServer CMS 是中国在.NET平台下.强大的企业站开源CMS内容管理系统和网站群系统. 能够最低的成本.最少的人力投入在最短的时间内架设好一个功能齐全.性能优异.规模庞大并易于维护的网 ...
- JavaScript 精简笔记
JavaScript 精简笔记,摘自 廖雪峰的官方网站. [From] https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51 ...