摘要:/* Example: SpinLock Description: SpinLock is the lock implementation using AtomicInteger as a primitive synchronizer. The contracts is based on the... 阅读全文
支持正则或通配符的hashmap
2015-10-19 14:30 by Loull, 3080 阅读, 0 推荐, 收藏, 编辑
摘要:RegexpKeyedMaphttp://wiki.apache.org/jakarta/RegexpKeyedMapRegexHashMaphttps://heideltime.googlecode.com/hg-history/a354341d349e75262884706b830f237fd9... 阅读全文
HTTP报文
2015-07-05 19:01 by Loull, 626 阅读, 0 推荐, 收藏, 编辑
摘要:HTTP报文分为请求报文(request message)与响应报文(response message)。一、报文的组成部分 一个HTTP报文由3部分组成,分别是: (1)、起始行(start line) (2)、首部(header) (3)、主体(body) 示例:HTTP/1.0 2... 阅读全文
Protostuff序列化
2015-07-01 10:31 by Loull, 19136 阅读, 1 推荐, 收藏, 编辑
摘要:前言: Java序列化是Java技术体系当中的一个重要议题,序列化的意义在于信息的交换和存储,通常会和io、持久化、rmi技术有关(eg:一些orm框架会要求持久化的对象类型实现Serializable接口)。 本文将提供Java自带序列化机制和ProtoStuff的序列化(仅仅当作一种数据... 阅读全文
【转】轻量级分布式 RPC 框架
2015-06-26 23:30 by Loull, 501 阅读, 0 推荐, 收藏, 编辑
摘要:第一步:编写服务接口 第二步:编写服务接口的实现类 第三步:配置服务端 第四步:启动服务器并发布服务 第五步:实现服务注册 第六步:实现 RPC 服务器 第七步:配置客户端 第八步:实现服务发现 第九步:实现 RPC 代理 第十步:发送 RPC 请求 总结 附录:Maven 依赖 RPC,即 Rem 阅读全文
Servlet 3特性:异步Servlet
2015-02-15 10:30 by Loull, 503 阅读, 0 推荐, 收藏, 编辑
摘要:解异步Servlet之前,让我们试着理解为什么需要它。假设我们有一个Servlet需要很多的时间来处理,类似下面的内容:LongRunningServlet.javapackage com.journaldev.servlet; import java.io.IOException;import j... 阅读全文
Web服务器的工作原理
2015-02-15 10:16 by Loull, 398 阅读, 0 推荐, 收藏, 编辑
摘要:Web服务器工作原理概述很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如ServletContext,ServletRequest,ServletRe... 阅读全文
《恰如其分的软件架构:风险驱动的设计方法》——读书笔记
2014-09-26 16:48 by Loull, 1925 阅读, 0 推荐, 收藏, 编辑
摘要:个人觉得本书概念太多,软件的架构和开发不是概念拼成的,一些经验性的东西用合适的词描述就行。所谓风险驱动,其实就根据项目情况选择合适的设计力度,避免过度设计。而对于复杂的软件系统,精心设计还是非常重要的,在开发前和开发中都会有设计的问题。另外,对于一个软件工程师,对一些架构模式需要有些了解,在脑海中构... 阅读全文
Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
2014-08-31 15:56 by Loull, 6628 阅读, 0 推荐, 收藏, 编辑
摘要:声明:该博文以socket中,关闭输出流为例进行说明。为了方便讲解,我们把DataOutputstream dout = new DataOutputStream(new BufferedOutputStream(mySocket.getOutputStream()));中的dout做为Socket... 阅读全文
Java Socket常见异常处理 和 网络编程需要注意的问题
2014-08-31 15:48 by Loull, 3628 阅读, 0 推荐, 收藏, 编辑
摘要:在java网络编程Socket通信中,通常会遇到以下异常情况: 第1个异常是 java.net.BindException:Address already in use: JVM_Bind。 该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整... 阅读全文
Java NIO 读数据处理过程
2014-08-31 15:45 by Loull, 3380 阅读, 0 推荐, 收藏, 编辑
摘要:这两天仿hadoop 写java RPC框架,使用PB作为序列号工具,在写读数据的时候遇到一个小坑。之前写过NIO代码,恰好是错误的代码产生正确的逻辑,误以为自己写对了。现在简单整理一下。使用NIO,select()到读事件时,要处理4种情况:1. channel还有数据,继续读。2. channe... 阅读全文
max-min fairness 最大最小公平算法
2014-08-25 17:16 by Loull, 15911 阅读, 5 推荐, 收藏, 编辑
摘要:我们经常面临给一组用户划分稀有资源的问题,他们都享有等价的权利来获取资源,但是其中一些用户实际上只需要比其他用户少的资源.那么我们如何来分配资源呢?一种在实际中广泛使用的分享技术称作“最大最小公平分享”.直观上,公平分享分配给每个用户想要的可以满足的最小需求,然后将没有使用的资源均匀的分配给需要‘大... 阅读全文
【转】分布式理论-CAP理论
2014-08-24 00:23 by Loull, 549 阅读, 0 推荐, 收藏, 编辑
摘要:一 CAP理论简述 CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础。 强一致性:等同于所有节点访问同一份最新的数据副本 可用性:每一个操作总是能够在一定的时间内返回结果,这里需要注意的是"一定时间内 阅读全文
CPU虚拟化技术(留坑)
2014-08-18 20:54 by Loull, 1014 阅读, 0 推荐, 收藏, 编辑
摘要:留坑~~~不知道这个是这么实现的CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技... 阅读全文
同一个主机上的JVM实例之间通信
2014-08-15 21:47 by Loull, 1422 阅读, 1 推荐, 收藏, 编辑
摘要:hadoop yarn里用了RPC调用。NM里面文件本地化类ContainerLocalizer用RPC心跳方式跟本机的ResourceLocalizationService通信。用shared memory还要调到native层去,不知道会不会比tcp/ip快?可以用文件,考虑锁的问题。但是文件貌... 阅读全文