- 浏览: 262626 次
- 性别:
- 来自: 南京
-
最新评论
-
guosunpeng:
顶顶顶顶顶
使用HttpClient做请求响应中转 -
Tyrion:
ZHENFENGSHISAN 写道赞
消息队列之 RabbitMQ -
hbxflihua:
老弟,你这个问题应该是pring AOP代理不支持类内部方法调 ...
spring事务异常回滚使用注意点 -
ZHENFENGSHISAN:
赞
消息队列之 RabbitMQ -
Tyrion:
PS:这里的博客已经不更新了,新博客在简书:http://ww ...
Tomcat7中web应用加载原理(二)web.xml解析
文章列表
本文引自我的博客:https://juejin.im/post/5a67f7e7f265da3e3c6c4f8b
Kafka 特点
Kafka 最早是由 LinkedIn 公司开发一种分布式的基于发布/订阅的消息系统,之后成为 Apache 的顶级项目。主要特点如下:
同时为发布和订阅提供高吞吐量Kafk ...
本文引自我的博客:https://juejin.im/post/5a67f836518825732b1a0086
这是最近读到的讲关于 JDBC 的超时问题最透彻的文章,原文是http://www.cubrid.org/blog/understanding-jdbc-internals-and-timeout-configuration ,网上现有的翻译感觉磕磕绊绊的,很多上下文信息丢失了,这里用我的理解重新翻译一下。
应用程序中配置恰当的 JDBC 超时时间能减少服务失败的时间,这篇文章我们将讨论不同种类的超时和推荐的配置。
Web 应用服务器在 DDoS 攻击后变得无响应
...
本文引自我的博客:https://juejin.im/post/5a67f7836fb9a01cb74e8931
关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。
市面上的消息队列产品有很多,比如老牌的 ActiveMQ、RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,去年底阿里巴巴捐赠给 Apache 的 RocketMQ ,连 redis 这样的 NoSQL 数据库也支持 MQ 功能。总之这块知名的产品就有十几种,就我自己的使用经验和兴趣只打算谈谈 Ra ...
现网中有个应用A,之前一直是请求透传访问的,最近从安全方面考虑将该A应用不直接暴露给客户端访问,而是从有一定安全校验机制的应用B做访问入口,由B的后端将HTTP请求中转到A,再将A的响应通过B输出到客户端。这种方案有两个好处,1.可以利用应用B已有的安全校验机制,而不需要应用A再复制一份安全校验。2.原来在客户端需要同时访问应用A和应用B,这就涉及到浏览器的同源策略的安全性问题,所以在配置上必须让应用A和应用B在同一个域名之下,经过这种改造就不存在这种问题了。
看起来功能实现很简单,客户端访问应用B,应用B的后端用apache的httpclient访问应用A,再将应用A的响应写入B应 ...
最近做功能重构,在上线前要求验证重构后的代码与老代码实现逻辑是否一致,基于这个需求,需要在生产环境做一个功能将生产服务器上的流量复制一份发送到测试服务器上。
就这个事情这几天考察了三种技术,1.基于ngi ...
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。
正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。
我是在centos平台下的,所以编译环境使 ...
一个线上JVM的CPU资源占用过高问题的排查
- 博客分类:
- Java
上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下。
1.通过top命令查看当前机器的CPU使用情况
此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比过高。以图中进程举例,假如发现PID为31357的Java进程占CPU比一直很高,则记录下它的PID
2.查看Java进程里面的线程的占用情况
top -H -p 31357
说明:-H 指显示线程,-p 是指定进程
可以看到CPU占用较高的线程,记下他们的PID,假设这里31357的CPU占比一直 ...
spring事务异常回滚使用注意点
- 博客分类:
- Java
最近写了一个后台定时任务用于自动扣款,测试时还好好的,上线后第一次执行处理也没问题,到第二次执行时,发现并没有生成数据,一开始以为是Redis判断时出了问题,导致后面的方法没执行,但是查询线上的redis相关日期key的value,发现是正确的。
定时任务的方法代码如下:
/**
* 自动收款第一次 <br>
* 每天15点触发
*/
@Scheduled(cron = "0 0 15 * * ?")
public void autoCollectCashDay1() {
...
一上午被mybatis的这个问题搞得都没法工作,springboot启动一直报错:
2016-02-19 12:47:45.380 [localhost-startStop-1] WARN o.a.c.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a me ...
6.PollerEvent处理流程
Poller处理的核心是启动执行事件队列中的PollerEvent,接着从selector中遍历已经就绪的key,一旦发生了感兴趣的事件,则交由processSocket方法处理。PollerEvent的作用是向socket注册或更新感兴趣的事件:
/**
*
* PollerEvent, cacheable object for poller events to avoid GC
*/
public static class PollerEvent implements Runnable {
...
Tomcat的Connector有三种运行模式bio、nio、apr,先了解一下这三种的区别。
bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。一般而 ...
上周逛山西路军人俱乐部,偶然看见《人月神话》40周年中文纪念版,翻了几页感觉不错,就买回来看看。记得大学时老师推荐过,一晃过去了十年,工作也有八年了,如果是刚毕业或只做几个人的小项目时读这书跟做过几个数十人到数百人的项目之后再读感觉肯定大不同。书的开头就说明这里谈的是大型系统的开发,如果一直是几个人的小团队看到书里的论述或许会觉得匪夷所思。主要内容实际才二百多页,却经常有闪光的格言警句给予你阅读时的快感,这里首先摘录一些:
表面上看起来好像没有任何一个单独的问题会导致困难,每个问题都能获得解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。(第1章 焦油坑)
...
Java中的ArrayList循环遍历并且删除元素时经常不小心掉坑里,昨天又碰到了,感觉有必要单独写篇文章记一下。
先写个测试代码:
import java.util.ArrayList;
public class ArrayListRemove {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("bb") ...
午休时间看了江南白衣的最新博文《关于Java集合的小抄》,总结的还不错,正值毕业季、找工作季、跳槽季。。。蛮适合各位依然奋斗在背负无数骂名的Java码农一线的程序员参考
业务代码写久了算法类的东西就容易忘,很多源码当时看的时候茅塞顿开,三年后再面对(卧槽!who are u)
数据库,终究还是数据结构
- 博客分类:
- 读后感
好久不写博客了,也是ITEYE最近的首页文章实在太水,来逛的少。最近在看淘宝沈询的博客文章,讲数据库方面的理论和实践,科普性的小文,有时来点小幽默,看起来蛮轻松。微博上也大概录了二十条笔记,现在满脑子各类数 ...