- 博客(25)
- 资源 (8)
- 收藏
- 关注
原创 websocket与comet的性能对比
对于comet长连接来说,服务端如有内容需要发送给客户端时,服务端将原本占用的连接进行回复,此时原有的连接断开,重新发起长连接,直到服务端有内容响应。从每次消息发送到收到服务端消息应答,平均需要两次HTTP请求,一次请求将消息内容提交到服务端,另外还需保持一个长连接,当服务端有内容响应时,及时发回响应,可以通过一个简单的案例来进行介绍:GET /testwebsocket/conn?cmd...
2016-01-02 14:34:11 366
漫谈大型网站架构
---应CSDN编辑钱曙光先生之邀请,发表了一些对于网站架构设计的看法,也是最近的一些感悟,欢迎留言交流 大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中式应用架构,再演变成时下的分布式应用架构,随着网站用户规模的扩大,架构也在不断演进。从实体机到虚拟机再...
2015-12-20 22:42:59 163
复活贴
有人在问,个人博客为何很长一段时间没有更新了,这是由于13年和14年主要的业余时间放在新书上,而15年因为家庭的原因及工作的调整,平时除学习之外的自由时间有限,后续将满血复活,继续保持博客的更新,大家敬请期待。...
2015-12-20 22:36:10 112
原创 新书-大型分布式网站架构设计与实践
第1章 面向服务的体系架构(soa) 1 本章主要介绍和解决以下问题,这些也是全书的基础: http协议的工作方式与http网络协议栈的结构。 如何实现基于http协议和tcp协议的rpc调用,它们之间有何差别,分别适应何种场景。 如何实现服务的动态注册和路由,以及软负载均衡的实现。 1.1 基于tcp协议的rpc 3 1.1.1 rpc名词解释 3 1.1.2...
2014-08-28 19:51:59 171
原创 eclipse中文注释文字较小解决办法
解决办法: Window --> Preferences --> General --> Appearance --> Colors and Fonts --> Basic --> Text Font --> Edit 然后!为什么注释变小了呢?原来不是字体大小问题,是字体问题! eclipse新版的字体是Consolas,而老版本的是Courier Ne...
2013-08-07 09:44:00 449
原创 浅析http平台的安全稳定性架构
--转载自《程序员》2013年第2期前言:随着移动互联网的兴起以及restful和web service的大规模使用,http协议因其使用方便以及跨平台的特性,在web开发以及SOA领域得到了广泛使用。但其所涵盖的信息,大都是未经加密的明文,信息获取门槛的降低,也为应用架构的安全性及稳定性带来了挑战。 对于常规的web攻击手段,如xss、crsf、sql注入等等,防范措施相对来说也...
2013-03-01 14:47:34 338
原创 java 应用的并发与流量控制
前段时间在团队内部做了一次关于并发以及流量控制原理与实施的分享,今天花时间整理了下,分享给大家,同时也希望大家多提宝贵意见,共同进步。 说到java并发,不得不提一下java的线程模型 Java的线程模型Java的并发实际上是在thread的基础上实现的,因此,说到并发限流的原理,不得不谈到java线程的五种状态之间的转换图1 java线程的五种状态从new状态...
2012-12-24 21:50:53 672
原创 转: Base64编码
什么是Base64? 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be h...
2012-09-21 16:39:56 65
Behind The Cloud--浅析分布式系统背后的基础设施
前言:WEB2.0的时代格局下,信息越来越发散,搜索越来越智能,内容越来越丰富,互动越来越频繁。随着团购、社区、微博不断崛起,互联网已经深入人心。用户规模的不断扩大,新业务的不断开拓,直接导致系统规模不断膨胀。在这种情况下,如何来保障分布式系统构建的稳定性与高性能呢? --本文作者chenkangxian,引用请标明出处 http://chenkangxian.iteye.com/b...
2012-09-09 10:26:01 151
原创 awk用法
awk用法通用格式:awk 'pattern {action}' file cmd | awk 'pattern {action}'如果没有pattern,则对所有行都采用action,如果没有action,则打印匹配行。在pattern中可以使用各种定义的变量$0,,NF,NR等. 工作原理:awk 扫描一行,放入变量$0中,然后行被分隔成各个域,以指定的分隔符...
2012-07-07 22:15:05 84
原创 ThreadLocal的使用及实现
在java中,如果一个变量需要被多个线程访问,可以使用volatile来声明它为“易变的”。而假如一个变量要被持有它的某个线程独享,在java中,它可以使用java.lang.ThreadLocal类来实现线程本地存储的功能。这样,数据便只在同一个线程内可见和共享,因此,即便不同步也能保证线程之间不出现数据争用。ThreadLocal使得各线程能够保持各自独立的一个对象,通过Thread...
2012-05-22 15:28:21 141
原创 一个简单的rpc框架的实现
为了降低开发成本,提升已有系统的利用率,企业往往会构建自己的SOA体系结构,SOA构建的手段有多种,可以通过webservice,restful,rmi,socket等等,笔者通过java socket,来构建一个简单的SOA体系结构,以下代码仅供参考。 1. 需要实现SOA的服务接口 package com.chenkangxian.rpc.impl;/**...
2012-05-15 21:58:02 106
原创 zookeeper下的分布式锁
zookeeper是hadoop下面的一个子项目, 用来进行分布式系统之间的相互协调。在zookeeper源码包的recipe目录下有一个互斥锁lock的实现范例,笔者对其简要包装,以便看起来更为明了: package org.apache.zookeeper.recipes.lock;import java.io.IOException;import org.a...
2012-05-12 21:58:56 101
原创 一致性hash
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 ha...
2012-04-12 20:46:14 65
原创 zookeeper使用简介
一、 zookeeper是什么官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。好抽象,我们改变一下方式,先看看它都提供了哪些功能,然后再看看使用它的这些功能能做点什么。 二、 ...
2012-03-27 18:10:29 82
原创 创建支持eclipse的多模块maven项目
通过maven可以创建多个关联模块的项目(Multiple Module Projects)。由一个总的模块,下面包含多个子模块(子模块还可以包含子模块)。这种maven功能能支持大型的项目构建,往往大型项目由很多子模块组成。以下说明在eclipse下如何创建多模块的maven项目。创建总的POM mvn archetype:create -DgroupId=com.taobao....
2011-12-02 13:42:19 174
原创 NIO 之 选择就绪模式
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。 Java NIO非堵塞...
2011-12-01 22:34:56 133
原创 spring整合ibatis事务管理
Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建。 与hibernate类似,Spring 提供了SqlMapClientDaoSupport对象,我们的DAO可以继承这个类,通过它所提供的SqlMapClientTemplate对象来操纵数据库。看起来...
2011-11-17 14:52:09 63
原创 转: ftp的主动和被动模式
开场白 处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。 本文也许不像题目声称的那样是一个权威解释,但我已经听到了很多好的反馈意见,也看到了本文在许多地方被引用,知道了很多人都认为它很有用。虽然我一直在找寻改进的方法,但如果你发现某个地方讲的不够清楚,需要更多的解释,请...
2011-11-07 16:40:15 87
原创 分布式环境下session的存储的几个解决方案
企业级应用系统很少是部署在单台服务器上的,这样就带来了跨服务器如何进行session共享的问题,笔者提供了两种方案,分别适用于两种不同场合,持久化session适合于高可靠性的环境,性能上可能有所损坏,而基于memcache的解决方案相对来说性能较好,但一旦memcache重启,数据丢失。 分布式session之持久化以mysql举例 1.建立数据库 create da...
2011-10-15 11:42:20 114
原创 spring mvc 解析
项目地址:http://www.springsource.org/文档地址:http://www.springsource.org/documentation下载:http://www.springsource.org/download springmvc简介: Spring 框架提供了构建Web 应用程序的全功能MV...
2011-10-07 10:37:06 72
mustache模板技术
项目首页:http://mustache.github.com/项目文档:http://mustache.github.com/mustache.5.htmlDemo: http://mustache.github.com/#demo简介:Mustache 是一个 Logic-less templates,原本是基于javascript 实现的模板引擎,类似于 freemar...
2011-06-28 11:37:58 293
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人