摘要:
Shutdown Hook Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。JAVA中的ShutdownHook提供了比较好的方案。 JDK提供了Java.Runtime.addShutdownHook(Thread hook 阅读全文
摘要:
Future用于获取异步操作的结果,而Promise则比较抽象,无法直接猜测出其功能。 Future Future最早来源于JDK的java.util.concurrent.Future,它用于代表异步操作的结果。 可以通过get方法获取操作结果,如果操作尚未完成,则会同步阻塞当前调用的线程;如果不 阅读全文
摘要:
Netty框架的主要线程就是I/O线程,线程模型设计的好坏,决定了系统的吞吐量、并发性和安全性等架构质量属性。Netty的线程模型被精心地设计,既提升了框架的并发性能,又能在很大程度避免锁,局部实现了无锁化设计。 线程模型 一般首先会想到的是经典的Reactor线程模型,尽管不同的NIO框架对于Re 阅读全文
摘要:
阅读全文
摘要:
ChannelHandler功能介绍 ChannelHandler类似于Servlet的Filter过滤器,负责对I/O事件或者I/O操作进行拦截和处理,它可以选择性地拦截和处理自己感兴趣的事件,也可以透传和终止事件的传递。基于ChannelHandler接口,用户可以方便地进行业务逻辑定制,例如打 阅读全文
摘要:
Netty的ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器,这类拦截器实际上是职责链模式的一种变形,主要是为了方便事件的拦截和用户业务逻辑的定制。Netty的Channel过滤器实现原理与Servlet Filter机制一致,它将Channe 阅读全文
摘要:
web系统由单系统发展成多系统组成的应用群,复杂性应该由系统内部承担,而不是用户。无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也就是说,用户访问web系统的整个应用群与访问单个系统一样,登录/注销只要一次就够了。 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览 阅读全文
摘要:
谈谈互联网后端基础设施 http://www.rowkey.me/blog/2016/08/27/server-basic-tech-stack/ 为什么使用消息队列 解耦:一个事务,只关心核心的流程,需要依赖其他系统但不那么重要的事情,有通知即可,无须等待结果。 异步:指的是两个系统的状态保持一致 阅读全文
摘要:
Unsafe接口实际上是Channel接口的辅助接口,它不应该被用户代码直接调用。实际的I/O读写操作都是由Unsafe接口负责完成的。 Unsafe继承关系类图 AbstractUnsafe源码分析 1.register方法 register方法主要用于将当前Unsafe对应的Channel注册到 阅读全文
摘要:
提起Channel,JDK的NIO类库的重要组成部分,就是提供了java.nio.SocketChannel和java.nio.ServerSocketChannel,用于非阻塞的I/O操作。 类似于NIO的Channel,Netty提供了自己的Channel和其子类实现,用于异步I/O操作和其他相 阅读全文