2016年1月19日
摘要: IoHandler 当我们通过IoSession执行相关操作的时候,如写数据,这些事件会触发Mina框架抽象的IoService实例,从而调用Mina框架底层的相关组件进行处理。这时,配置的IoHandler就被用来处理Mina所触发的相关事件,处理这些事件的操作被抽象出来。实际上,IoHandle 阅读全文
posted @ 2016-01-19 20:03 duanxz 阅读(1825) 评论(0) 推荐(0)
摘要: 一、传统的BIO 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。 在基 阅读全文
posted @ 2016-01-19 19:58 duanxz 阅读(1358) 评论(0) 推荐(0)
摘要: Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 阅读全文
posted @ 2016-01-19 19:55 duanxz 阅读(95685) 评论(5) 推荐(8)
摘要: 定位、使命 清晰的定位是团队成立的前提、士气的保障、外部合作的基础,价值衡量的标尺。 阅读全文
posted @ 2016-01-19 19:51 duanxz 阅读(796) 评论(0) 推荐(0)
摘要: 一、数据表 数据库中的数据表是整个核心逻辑的载体说在,所有的记账逻辑、以及与支付前台交互的数据都是在这里 进行记录。现就主要的表进行简要说明。不同的第三方支付其数据表名称肯定也不同,这里的表名称仅作参考 gTransLog表: 支付网关交易流水表,所有通过网关的交易全部都会在此表中写入数据。 tAc 阅读全文
posted @ 2016-01-19 19:50 duanxz 阅读(3082) 评论(0) 推荐(0)
摘要: TestNG 是一个开源的自动化测试框架,其灵感来自 JUnit 和 NUnit,但它引入了一些新功能,使其功能更强大,更易于使用。TestNG 的设计目标是能够被用于进行各种类型测试:单元测试、功能测试,端到端测试、集成测试,等等。NG 是 Next Generation 的简写,表示下一代,意在 阅读全文
posted @ 2016-01-19 19:49 duanxz 阅读(1542) 评论(0) 推荐(0)
摘要: 前言 gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。 架构 主要分为三个模块来开发,comet/web/message。 comet 主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取 阅读全文
posted @ 2016-01-19 19:48 duanxz 阅读(516) 评论(0) 推荐(0)
摘要: 在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,在Spring的源码中,以Delegate结尾的地方都实现了委派模式。有前辈将其总结为代理模 阅读全文
posted @ 2016-01-19 19:46 duanxz 阅读(1364) 评论(0) 推荐(0)
摘要: 生产者-消费模式,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责具体处理生产者提交的任务。两者之间通过共享内存缓冲去进行通信。 一、架构模式图: 类图: 生产者:提交用户请求,提取用户任务,并装入内存缓冲区; 消费者:在内存缓冲区中提取并处理任务; 阅读全文
posted @ 2016-01-19 19:34 duanxz 阅读(826) 评论(0) 推荐(0)
摘要: 系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务。Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作。 使用Metrics 通过构建一个Spring Boot的基本应用来演示Metrics的工作方式。 在M 阅读全文
posted @ 2016-01-19 19:14 duanxz 阅读(5263) 评论(0) 推荐(0)
摘要: Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务;Worker进程,负责处理子任务。当Worker进程将子任务处理完成后,结果返回给Master进程,由Master进程做归纳汇总,最后得到最终的结果。 一、什么是Mast 阅读全文
posted @ 2016-01-19 19:12 duanxz 阅读(868) 评论(0) 推荐(0)
摘要: 一、什么是Future模型: 该模型是将异步请求和代理模式联合的模型产物。类似商品订单模型。见下图: 客户端发送一个长时间的请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据(相当于商品订单,不是商品本身),用户也无需等待,先去执行其他的若干操作后,再去调用服务器已经完成组装的真实数据。 阅读全文
posted @ 2016-01-19 19:08 duanxz 阅读(725) 评论(0) 推荐(1)
摘要: HaProxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的 阅读全文
posted @ 2016-01-19 18:42 duanxz 阅读(3805) 评论(0) 推荐(0)
摘要: 多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池; 锁(分为内部锁、重入锁、读写锁)、ThreadLocal 阅读全文
posted @ 2016-01-19 17:07 duanxz 阅读(1071) 评论(0) 推荐(0)
摘要: 最近学习Hadoop 时发现在本机访问 hadoop 9000 端口没有问题,但是远程机器访问 9000端口时不能访问,通过telnet 命令诊断发现发现无法访问端口,经过网上搜索解决方案结合自己实践,总结解决办法一般有以下几点。 首先,利用netstat -tpnl查看的端口开放情况 下图中900 阅读全文
posted @ 2016-01-19 17:06 duanxz 阅读(13184) 评论(0) 推荐(0)