- 浏览: 34937 次
- 性别:
- 来自: 北京
最新评论
文章列表
Timing Wheel 简单实现
- 博客分类:
- java
在实际需求中总是会有一些定时释放资源的场景,比如各种长链接、带有业务上限时的实体等等。
TimingWheel算法可以说是有很广的应用了,各种实现版本对应不同场景。结构如图所示:
关于算法的介绍可参考以下两个地址:
http://www.360doc.com/content/12/0917/07/7775902_236502748.shtml
http://blog.csdn.net/mindfloating/article/details/8033340
第二个链接的csdn博主有一个实例分享,代码简单易懂。
我有两个问题,这个实现是没有解决的:
1. Whee ...
我们项目中一直在用nginx做反向代理,最近发现一些443端口日志中出现大量的400 和 408日志,其中408的响应时间在60s左右,所以整理一下关于这方面的问题:
出现400的原因:1.如果客户端提前关闭了连接或者读取数据发生了其 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
随着公司规模的不断扩大,项目越来越多了,单个项目投入的人也多了起来,每个程序员都有自己的一套编码风格。身为一个处女座程序员,深深感觉到无法忍受一团乱麻似的工程。于是就需要一套强有力的规范,而且规范最好能够分级,最低层的规范最为严格,导致大家写出的代码都能差不多,也就减少人员交叉过渡的成本,越靠近业务顶层的规范就越松散、又根据业务相互隔离、可插拔,这样一来,即使无法维护,重写的成本也会降低。
一个自己定义的web框架所要完成的任务恰好包括了从低到高的全部过程,如果您的公司已经完成了服务化架构 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
有人说,为了这么一个小框架,花费这么长时间阅读,还分成这么多篇博客,小题大做。
仁者见仁智者见智吧,大家在学习过程中都有自己的一套方式方法,适合自己的 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
今天开头说说抽象,面向对象的特点:抽象、继承、多态,好的设计都是基于优秀的抽象,抽象层次越高、越完善,他的扩展性就越好,也越容易理解。好比居家过日子,多多少少需要一些工具,可切割的、可裁剪的,这就是两个interface,于是我们准备了刀和剪子,就是一种实现。再后有了水果刀和切菜刀、园艺剪子和裁衣服剪子,这就是多态。再然对菜进行分类,把荤素分开,准备同样的两把菜刀,一把切荤的一把切素的,就是重载。
中心思想就是以特性为核心,然后一点点的实现,过程中可以对底层不同特性组合使用,但是尽量保持最 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
有的时候总是在想,什么样的工具才算是好的工具。首先要开源(废话,做JAVA当然要有开源精神),还要有强大的功能、配套的文档,良好的代码可阅读性、可扩展性、可 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
前面简单的写了点关于Argo使用的基本方法和Demo示例,其实只要前后看两遍,是很容易上手的。更多的人还是关注为什么要做这样一个框架,以及他是否能为开发人员解决常见问题,提高工作效率。
对比Struts、Webwork、springMVC,他们提供的功能实在太多了。Struts1当前应用最广,现在还有一些遗留项目在使用。Webwork和Struts2这对孪生兄弟备受推崇,也因为树大招风,N多站点为他的潜在漏洞买单了(由于没有关闭OGNL,导致提交的参数被当做代码执行。其实厂家老早就有补丁,只 ...
58同城开源的轻量级web框架 https://github.com/58code/Argo
很多网站在建设初期都会选择PHP .net,随着业务规模不断扩大,开发需求增多,已经各种成本问题,逐渐得向JAVA过渡。过渡过程中,架构师们根据各自业务特点及需要,规划出技术平台的框架,然后面对着JAVA社区和各种形形色色的开源产品。
在这里不得不提的是58文化:简单、高效
同样适用于技术选型和平台搭建,每一个应用框架、RPC服务甚至是工具类,都要足够简单、高效、可依赖。
有两种代码是没有bug的:1. 逻辑复杂到没有人能明白其中的运行轨迹,而最终结果总是对的。2. 逻辑简单到每个人都 ...