首页
学习
活动
专区
工具
TVP
发布

后端开发随笔

后端开发,数据库,中间件,DevOps,分布式架构,Docker
专栏作者
291
文章
411208
阅读量
35
订阅数
Docker实践之07-数据管理
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
编程随笔
2022-09-09
3290
Tomcat vs Jetty vs Undertow性能对比
Tomcat,Jetty和Undertow是目前比较主流的3款Servlet容器,而且Spring Boot框架还提供了对它们的集成支持(默认使用的是Tomcat),网络上有许多文章都在介绍Undertow容器的性能比Tomcat和Jetty要好。本着事实就是的原则,我对这三款容器做了一个压测对比,真正通数据来对比到底是谁有优势,同时也是作为容器选择的一个参考。
编程随笔
2020-09-17
4.8K0
Spring Boot应用上传文件时报错
Spring Boot应用(使用默认的嵌入式Tomcat)在上传文件时,偶尔会出现上传失败的情况,后台报错日志信息如下:“The temporary upload location is not valid”。
编程随笔
2019-09-29
1.8K0
tomcat无法正常关闭问题分析及解决
这时我们就只能通过强制杀死进程的方式停止Tomcat了:kill -9 <tomcat_process_id>。 那么,为什么使用shutdown.sh无法正常停止Tomcat进程呢?
编程随笔
2019-09-11
2K0
nginx从http跳转到https
项目前期使用http,后期为了安全方面的考虑,启用了https。 项目架构:前端使用nginx作为多个tomcat实例的反向代理和负载均衡。 实际上只需要在nginx上启用https即可,使客户端与nginx之后使用https方式通信,而nginx与tomcat之间依然以http方式通信。
编程随笔
2019-09-11
13.4K0
tomcat自动重新加载应用
假设存在一个J2EE应用A,对应war文件名称为A.war,部署在tomcat的webapps目录下,即:CATALINA_HOME/webapps/A.war。 tomcat启动之后会将A.war解压,并在$CATALINA_HOME/webapps/目录下对应生成目录A,即:CATALINA_HOME/webapps/A。 此时,需要修改A下存在一个配置文件a_dao.xml,其中配置了一些参数,如:数据库配置。 为了使应用能够重新使用最新的配置属性,有2种方式: 其一:修改配置文件,直接重启tomcat。 其二:修改配置文件,执行命令:touch TOMCAT_HOME/webapps/A/WEB-INF/web.xml,让tomcat重新加载应用A。
编程随笔
2019-09-11
5.6K1
tomcat优化之安装并配置apr库
在谈到tomcat优化时,必然要说到apr库,这个库是C语言实现的,tomcat通过JNI方式使用该库可以大大提高性能。 tomcat在使用apr时需要安装apr,apr-util和tomcat-native。
编程随笔
2019-09-11
1.3K0
tomcat cluster配置实战注意事项
关于tomcat cluster的实现原理,详见:https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html#How_it_Works。 在这里只是对在实际实际配置中遇到的问题做一个总结。
编程随笔
2019-09-11
7180
使用keytool自建证书及应用
2. 将生成的证书导出到文件 server.cer(或 client.cer,如果您愿意):
编程随笔
2019-09-11
1.1K0
上传文件服务与web服务分离
业务场景: 1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署。 2. 前端使用nginx作为后端应用的反向代理。 业务需求: 现在需要在java web应用端上传文件,同时还要能支持文件下载。 设计方案: 1. 文件应该专门使用文件服务器进行存储,在数据库中存储文件下载链接即可。 2. tomcat容器本身不擅长做文件上传下载的事情,所以最好将文件上传下载的功能与web服务分离,比如使用nginx作为文件服务器。 具体实现: 通常,针对简单的应用,可以使用NFS,在web端上传文件后直接写到文件服务器;或者将文件上传到web应用之后,再将文件同步到文件服务器。 不论是通过NFS或者任何其他同步工具的方式,都存在文件中转的过程,必须先将文件通过web应用进行上传保存,再同步到文件服务器。中间可能存在同步出错或延时,也存在扩展性不好的问题。 所以,设计实现方案如下: 1. 使用http协议通过web表单方式上传文件。 2. 在文件服务器上部署web服务器,专门用于文件上传。 3. 通常在web应用中上传文件时,除了上传文件数据,还需要传递一些文字。文字保存在数据库中,文件保存在服务器上,同时将生成文件下载链接保存在数据库。 4. 通过MD5校验文件内容,避免相同文件因为文件名不同而被恶意上传导致大量垃圾文件占满磁盘空间。
编程随笔
2019-09-11
1.9K0
tomcat配置context的crossContext属性应用案例
在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问。该属性主要用于跨应用访问数据。 在实际项目中遇到一个奇葩需求:在同一个页面框架下嵌套了2套应用!!! app1和app2部署在同一个tomcat,且session超时时间使用tomcat全局配置。 app2存在定时ajax刷新,导致app2不会存在session超时的问题;因此,如果用户长期停留在app2某个定时刷新的页面,就会出现如下情况; app2不会出现session超时,但是app1在指定时间之后就会session超时,这时访问app2页面不会跳转到登录页面,而点击app1页面元素就会退出登录,重新跳转到登录页面。 给用于一种很不自然的体验! 为了解决这个问题,做如下调整: 1. 首先,必须明确一个现实:app1和app2是2个独立的应用,所以对于浏览器访问都会在服务器端各自生成独立的session。 2. tomcat支持配置context元素的crossContext属性为true,使得在app2中可以访问到app1应用的ServletContext对象。 利用这个特性,可以在app2中知道app1应用下对应的session是否已经超时。如果已经超时,则在访问app2时就退出登录,跳转到登录页面。
编程随笔
2019-09-11
1K0
细说tomcat之session持久化探秘
业务场景: 通常,我们会在会话级别存放一些参数,期望在session生命周期内,可以一直取得保存在session中的指定数据;而只要session过期或者失效,则需要执行重新登录等操作。 但是!我们对于这样的场景会感到很疑惑: 在session中保存对象值,正常重启Tomcat,再次访问应用,居然还可以继续从session中取得之前保存的数据? 理论上,Tomcat容器重启之后再次访问应用应该会创建一个新的session对象,不应该还能从之前的session中取得数据。 这似乎是一种错觉!!!
编程随笔
2019-09-11
5130
细说tomcat之集群session共享方案
1. Tomcat Cluster 官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html Tomcat原生支持的集群方案,通过组播消息实现。
编程随笔
2019-09-11
1.3K0
细说tomcat之类加载器
官网:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html Java类加载与Tomcat类加载器层级关系对比
编程随笔
2019-09-11
9760
细说tomcat之应用监控
官网:http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
编程随笔
2019-09-11
1.3K0
tomcat cluster session同步时保存map数据遇到的问题
Tomcat Cluster官网:https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html(tomcat7.0)
编程随笔
2019-09-11
8210
tomcat源码研究之源码导入eclipse
版本:8.5.x 官网:https://tomcat.apache.org/svn.html 1. 下载源码,git镜像:https://github.com/apache/tomcat85 。 2. 导入项目到eclipse: (1)假设源码目录为tomcat85 (2)在eclipse中新建项目:New -> Java Project,项目名称设置为与tomcat源码目录名一致即可:tomcat85。 3. 参考源码目录下BUILDING.txt文件,配置相应编译环境。
编程随笔
2019-09-11
5480
tomcat部署应用时设置context path为空的上下文路径问题
在<Context>配置中包含如下信息: 1. 配置docBase值为:docBase="app"或者docBase="app.war"; 2. path为空,表示app为tomcat默认应用; 同时,将app.war部署在CATALINA_HOME/webapps/路径下。
编程随笔
2019-09-11
5K0
tomcat解决GET请求中文参数乱码
通常,在使用Spring MVC框架的应用程序中,为了解决中文参数乱码的问题,都会添加如下过滤器配置:
编程随笔
2019-09-11
2.2K0
tomcat下的Cookie特殊符号问题
案例: 在项目中通过Cookie方式临时存放检索条件,不小心在Cookie值中使用了特殊符号"@",导致在服务器端无法正确解析Cookie值。 之所以说"不小心",根本原因是对于Cookie的理解不够深入。 实际上在开发环境使用run-jetty-run插件进行调试时并未发现问题,经验证: 在jetty下可以在Cookie中使用特殊符号@,但是在Tomcat下不能在Cookie中使用特殊符号@。 Cookie规范经历了多个版本发展,分别是: RFC 2109(1997年),RFC 2965(2000年), RFC 6265(2011年)。 Cookie值的约定见rfc2068描述(https://tools.ietf.org/html/rfc2068):
编程随笔
2019-09-11
1.2K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档