瞬息之间

写下,记下,留下

排序:
默认
按更新时间
按访问量

Timing Wheel 定时轮算法

最近自己在写一个网络服务程序时需要管理大量客户端连接的,其中每个客户端连接都需要管理它的 timeout 时间。 通常连接的超时管理一般设置为30~60秒不等,并不需要太精确的时间控制。 另外由于服务端管理着多达数万到数十万不等的连接数,因此我们没法为每个连接使用一个Timer,那样太消耗资源...

2012-09-29 21:52:51

阅读数:17646

评论数:14

网站安全认证系统的设计变迁

网站在从小到大的发展历程中,安全认证系统是如何变迁的?      下面我们从其发展的几个阶段来分下:            阶段1:      起步,注册用户很少,两台服务器,一台应用服务器,一台数据库服务器。      用户登陆后在应用服务器记录用户 session (通常就是 tom...

2012-08-24 18:17:29

阅读数:2920

评论数:0

Lease 机制在分布式系统中的应用

Lease 中文叫租约,是一种广泛应用于分布式系统领域的协议,它是一种维护分布式系统一致性的有效工具。 Lease 通常定义为:颁发者在一定期限内給予持有者一定权利的协议。 Lease 表达了颁发者在一定期限内的承诺,只要未过期颁发者必须严格遵守 lease 约定的承诺。 Lease 的持有...

2012-08-24 11:47:58

阅读数:9093

评论数:4

rsync入门

rsync是Linux/unix下一个用于远程文件(目录)同步的一个精巧的小工具程序,有很多文章讨论了其功能和实现原理,本文主要就不赘述了。 主要介绍下实践时使用的一些方法和细枝末节留作工作笔记以便日后参考。 大部分的Linux发布包中基本都默认包含了rsync这个小工具,这里就不介绍其安装了...

2012-05-29 20:03:42

阅读数:7597

评论数:1

IM设计思考:XMPP多用户文本聊天协议(MUC:Multi User Chat)

XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、QQ群等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分IM产品模型,而现实中的IM产品基本都只实现了XMPP定义的模型中的一个子集。 XMPP定义的一些基本概念: 房间:房...

2012-04-10 12:53:23

阅读数:15098

评论数:4

IM设计思考:基于同步HTTP双向流(BOSH)的web im机制

在XMPP扩展协议XEP-0124中定义了一个传输协议来模拟两个实体 (例如一个客户端和一个服务器) 之间的长连双向TCP连接的语义,它有效地运用多个同步的HTTP"请求/应答"对,而不需要使用频繁的轮询或者分块响应。该协议简称BOSH(Bidirectional-stream...

2012-04-09 17:16:11

阅读数:10352

评论数:4

NIO系列5:事件模型

前文讲述了NIO数据读写处理,那么这些数据最终如何被递交给上层业务程序进行处理的呢? NIO框架一般都采用了事件派发模型来与业务处理器交互,它与原生NIO的事件机制是模型匹配的,缺点是带来了业务处理的碎片化。需要业务程序开发者对事件的生命周期有一个清晰的了解,不像传统方式那么直观。 事件派发器...

2012-04-01 08:10:48

阅读数:3048

评论数:0

NIO系列4:TCP服务数据读写

注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP服务的过程及细节设计。 上文讲到当客户端完成与服务端的连接建立后,为其SocketChannel封装了一个session对象代表这个连接,并...

2012-04-01 08:10:31

阅读数:3202

评论数:0

NIO系列3:TCP服务接入

注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP服务的过程及细节设计。 前文讲述了NIO TCP服务绑定过程的实现机制,现在可以开始讲述服务监听启动后如何和处理接入和数据传输相关的细节设计...

2012-04-01 08:10:14

阅读数:2787

评论数:0

NIO系列2:TCP监听绑定

注:本文适合对象需对java NIO API的使用及异步事件模型(Reactor模式)有一定程度的了解,主要讲述使用java原生NIO实现一个TCP监听绑定的过程及细节设计。 我们一开始设计了一个TCP接入服务类,这个类提供了一个API方法提供对本地一系列地址(端口)的监听绑定,类初始化...

2012-04-01 08:09:45

阅读数:3076

评论数:0

NIO系列1:框架拆解

最近一年用NIO写了不少网络程序,也研究了一些开源NIO网络框架netty、mina等,总结了一下NIO的架构特点。 无论是netty还是mina它们都在java原生NIO的基础上进行了完善的封装,虽然细节有所不同,但总体架构思路一致,都大概划分出了以下几个组成部分: - - transpor...

2012-04-01 08:09:30

阅读数:6558

评论数:0

IM设计思考:点对点消息交换

IM最基本的功能就是即时消息交换,那么一个送出的消息将经历哪些过程才能最终送达目的地? 下面给出一个过程描述: 1. 消息从客户端发出经过网络由客户端所直接连接的服务器接收 2. 接入服务器接收到网络字节流后重组消息包(协议解包的过程) 3. 合法性判断 - - 只有已登陆的用户才能发送...

2012-03-27 16:17:08

阅读数:3214

评论数:0

IM设计思考:XMPP消息格式

交换消息是XMPP的一个基本用途并且随之而来的是一个用户生成一个发给另一个实体的消息节。 XMPP定义的消息节语法完整格式如下: <message from='juliet@example.com/balcony' to='romeo@example.net' ...

2012-03-27 12:46:45

阅读数:13853

评论数:2

IM设计思考:试问

用过IM很多年了,直到最近才开始好好想想IM的实现需要考虑哪些方面? 特别是在海量用户的IM环境下,需要考虑哪些方面,自己大概思考了下总结如下: 1.  海量接入 QQ的最高在线用户超过了1亿,那么大约每台服务器能接入多少用户? 如何将海量的登陆用户平均负载到接入服务器集群? 某...

2012-03-24 21:17:38

阅读数:2984

评论数:0

IM设计思考:XMPP安全机制

XMPP(Extensible Messaging and Presence Protocol)是一个应用于实时通信的开放协议,定义了有关即时消息通信的各方面内容,本文主要是关于XMPP安全机制的介绍以及设计实现思考。 XMPP包含一个保证流安全的方法来防止篡改和偷听,包括两个层次的安全机制...

2012-03-24 21:17:01

阅读数:7337

评论数:2

IM设计思考:XMPP资源绑定

XMPP协议设计中引入了一个抽象的资源绑定过程,何为资源,如何绑定? 首先这得从JID的格式设计说起,JID是XMPP前身Jabber协议ID的简写,用于唯一标识一个客户身份。一个合法的 JID 包括一组排列好的元素,包括域名(domain identifier),节点名(node iden...

2012-03-24 21:16:03

阅读数:3777

评论数:0

细细审视的你代码:异步消息处理

在工作中经常会碰到需要进行异步消息处理的业务场景,根据消息性质的不同有完全不同的处理方式。 1、消息不独立 不独立的消息通常是有顺序依赖关系,这时消息处理机制将退化为线性队列处理模式,只能由一个消费者去单线程处理消息。 2、消息完全独立 完全独立的消息,可以由多个消费者(线...

2011-12-18 21:38:25

阅读数:1504

评论数:0

细细审视的你代码:一点编程理解

通常有经验的程序员写出来的代码一开始可读性都是不错的,但随着需求变更,维护人员变化,慢慢架构开始腐化,代码开始变的混乱起来。 还有就是有时仅仅为了完成功能,而完全忽略了代码的可读性(非功能性需求)。 编程时如何保持对代码可读性的持续关注呢,举个小小的例子吧。 有一个简单的需求,写一个方法生成...

2011-12-07 16:21:42

阅读数:1555

评论数:0

TCP/IP学习笔记:RIP

RIP 内部路由协议 路由器以主动方式使用RIP,主机以被动方式使用 RIP定义直连网络的距离为1,通常其他协议定义为0 RIP规定在得到费用更小的路由之前保持原有路由不变,避免路由振荡。 RIP路由通告的有效时间为180秒,180秒后没有收到下一次通告则置为无效路由 RIP固有的慢收敛...

2011-11-09 11:35:37

阅读数:1263

评论数:0

TCP/IP学习笔记:组播

组播 单播和广播可以看作是特定类型的组播,但组播可以跨多个物理网络。 组播保留地址段: 224.0.0.0 ~ 239.255.255.255 224.0.0.1 ~ 224.0.0.255 专用于组播路由协议和群组维护协议 组播地址只可用作目的地址,因此组播地址不会出现在数据报的源...

2011-11-09 11:33:39

阅读数:1617

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭