摘要:
1. 单元测试 不: 1. 不测试输入输出相关的代码,比如数据库操作、文件操作、网络IO等 2. 不需要上下文。仅测最小可执行单元的逻辑 3. 不是冒烟测试或者功能测试。 4. 不依赖于环境。不需提前准备程序运行环境,如数据库等,仅需基本程序编译运行环境及框架支持。 (上述测试也是重要并不可或缺的) ... 阅读全文
摘要:
1. httpd启动、停止以及重启启动:apachectl –f $PATH_TO_CONF/httpd.conf停止及重启apachectl –k stop/restart/graceful-stop/graceful其中 graceful-stop及graceful会将当前处理中的请求处理完毕,而不是直接关闭并丢弃所有连接。2. 配置项解释 如果在httpd启动时给定了特定的参数,则生效。比如... 阅读全文
摘要:
背景 代理(Proxy),位于客户端与实际服务端之间,当客户端需要请求服务端内容时,先向代理发起请求,代理将请求转发到实际的服务器,再原路返回。也可以在代理服务器设置缓存,将实际服务器上不常变化的内容进行缓存,当客户端请求到达时,直接返回,可以提高响应速度,减少不必要的网络访问。 正向代理(Forw 阅读全文
摘要:
问题的背景: 在传统银行的软件中心,随着移动互联网的飞速发展,互联网公司给传统银行带了巨大的冲击,很多机会往往转瞬即逝,传统的开发方式难以适应互联网时代的飞速变化。传统银行开始引入敏捷的开发模型,试图解决这个问题。 然而,目前在银行内部,有类似核心系统的大型集中式架构系统,也有在互联网发展洪流中创建 阅读全文
摘要:
在网络通信中,Socket通信的双方分为服务端与客户端,在Java NIO 的实现中采用Socket/ServerSocket, SocketChannel/ServerSocketChannel分别表示客户端与服务端对象及程序与所操作的Socket间的连接通道。 在Mina框架中采用IoAccep 阅读全文
摘要:
在Java NIO 中,ByteBuffer通常作为通信中传递消息的载体。而在Mina中,采用了IoBuffer代替ByteBuffer。Mina给出了不用ByteBuffer的两个主要理由: 1. ByteBuffer未提供一些常用到的get/set方法,如:fill, get/putString 阅读全文
摘要:
MINA是一套成熟的JAVA NIO 框架,在用到Socket通信的Java应用场景中经常会得到使用。其作者还有一套更加知名的框架Netty,其应用程度更加广泛。虽然不及Netty知名,Mina也是一套成熟的NIO框架,有一定的应用,比如Dubbo框架在底层通信上将Mina作为备选方案。引用MINA 阅读全文
摘要:
Selector是SelectableChannel的多路选择器,配合SelectableChannel实现非阻塞IO. 详见代码 Selector 和 SelectableChannel间通过SelectionKey表示注册关系: SelectorProvider SelectorProvider 阅读全文
摘要:
在Java NIO中用Channel来对程序与进行I/O操作主体的连接关系进行抽象,这些IO主体包括如文件、Socket或其他设备。简而言之,指代了一种与IO操作对象间的连接关系。 按照Channel接口的定义,Channel只有open和closed两种状态,只有在channel处于open状态下 阅读全文