自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 问答 (1)
  • 收藏
  • 关注

对于12306,我的完整技术方案

12306主要就是卖票比较复杂,注册登录之类的功能就不说了。有网友说,12306卖票系统比航空复杂,因为要分段卖,航空只有起点和终点,火车中间还有好多站。不过好消息是,这些站在售票时是连续的,不会出现1张票跳着站买的情况,这样就可以把一张票拆成N张只有起点和终点的票,和航空售票一样了。(我不了解航空售票,也不了解火车售票业务具体模型,下面都是基于推测和假设之类的。)卖票分为两部分,...

2012-01-13 14:35:02 470

原创 通用操作日志系统设计。一次编写,所有项目共同使用!

基于分表和自定义表结构的日志系统。真正足够灵活的,实现成本较低的通用日志架构。新浪微盘下载PDF文档:[url]http://t.cn/aY8XIT[/url]

2011-08-01 11:57:45 834

原创 谈谈IBatis的动态SQL应该改进的架构设计!

[b]SqlMap?的动态SQL是什么?[/b]SqlMap?的动态SQL就是一条sql语句,根据传入的参数情况动态拼装出sql。这也是IBatis引以自豪的强大功能。IBatis文档称“。如果你有使用JDBC或其他相似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。”。IBatis的Sq...

2011-07-11 15:13:38 180

halo-cloud私有云开源啦,构建小型的平民级的云计算平台

可由1到100台机器组成,并用普通编程方式扩展的小型云计算平台。[b]干什么用的?[/b]不是每个公司都像google、像淘宝、像新浪微博一样庞大,需要复杂的成千上万台机器组成的大型云计算平台,那样成本太高。更没有多少中国公司会使用GAE、Amaze之类公共云平台,那样网络吃不消。对于普通的公司,100台以内机器组成的私有云是最好的选择。规模适中、容易开发、易于维护...

2011-05-04 08:14:33 679

大型系统设计第1课--可扩展的数据库层架构设计 PDF分享

《手把手,教你编写1个可以并行运行在5台数据库上的留言板》[b]前言:[/b]对于大规模系统而言,最复杂,往往也是最大的性能瓶颈,主要都产生在数据层。对于大型系统数据层的设计,主要包括缓存系统和数据库的可扩展性两方面。缓存系统比较简单,网上讨论的也比较多,方案也相对成熟,一般来说只要部署一大堆memcached之类的缓存服务器就可以解决了,扩展性也好;但对于可扩展的数据库层架构...

2011-03-24 21:03:49 129

做SNS的,一起来猜猜新浪微博的核心Feed系统是怎么设计的吧

要是不清楚什么是feed,google之。Feed是sns类应用的核心和最复杂的部分,就是sina微博中看到的“我关注的人”的消息。像人人网中的“新鲜事”等等,都是一个东西。你想啊,你关注了几千人,又被几千人关注,你发了一个消息,另外几千人怎么看到哪?拿数据库做join和in操作肯定立刻挂。而且像sina weibo,数据和访问量庞大,怎么实现哪?这其实就是传说中的推和拉的选择,人人网写过...

2011-03-09 10:57:32 368

工作几年,回头看看,发现做的东西都没啥技术含量……

从工作第一天开始,就开始用spring。有了spring和MVC这套东西,系统最复杂的初始化和组件关联被彻底隔离,剩下的就是日复一日的增删改查,添砖加瓦。纯粹的体力劳动,发现做多少系统都一样,毫无意思。后来系统规模大了,发现读写分离,分库分表还是挺有技术含量的,折腾这些觉得自己进步了;然后做了guzz;现在发现团队里面是个人都把表分的散散的,好像只给他一台数据库都不知道怎么干活了。...

2011-03-08 12:43:27 147

guzz 1.2.9 英文版发布新闻,求好心人转发

guzz 1.2.9 released--split & distribute big tables into many databases to solve the db bottleneck in large systems. Table-distribute feature is released in guzz1.2.9 named VirtualDB. In Virt...

2011-02-14 09:36:41 114

轻松将一张大表分切到不同的机器中

将一张大表分切成N张小表,在将这些小表分布到不同的数据库机器中。 guzz完成了此设计,目前正在做线上测试,欢迎尝鲜并提供反馈意见。 希望我们的设计是最合理的,如果不是,发表观点~~  设计方式:http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans  附件是压好的最新jar包,...

2011-01-18 11:03:25 112

GuzzServices发布PHP客户端

已经实现了:IP反查,敏感词审查,以及从html代码中抽取纯文本和图片。需要php服务器支持json,配置方式:http://php.net/manual/en/book.json.php客户端的使用方式请参看examples.php中的例子。http://www.guzzservices.com/2010/php_client_download/   ...

2010-12-23 12:25:30 109

淘宝的秒杀我感觉并不复杂,用二次事务模式可以很容易的实现

有个帖子说了,太长了另起一楼。大部分的观点都是“硬碰硬”,其实没有必要,如果仅仅是秒杀,我觉得没有那么复杂。 系统架构: 秒杀程序实现: 关键点: 将事务分开,在应用层的事务并不严格,可以快速的处理大量并发,不需要db,也需要网络cache,唯一的操作就是本机内存操作,效率肯定非常高。 应用成功后,在将事务发到DB,这个时候可能由于并发会出现多拍的用...

2010-11-15 10:39:30 176

Netbean做swing太爽了,开源一个还算实用的swing程序

功能:¶1. 统一管理在各个注册商注册的不同域名2. 不用开N多浏览器,输入N遍密码去登录各个域名管理网站,就能在一个终端程序上,添加修改DNS记录3. 免费获得“动态域名”支持,将普通电脑变成一台外网服务器。  贴图: 顶级域名管理: 添加子域名: 绑定动态域名: 动态域名管理:下载源代码之类的:...

2010-11-01 10:57:13 448

原创 3行代码,实现高效的敏感词管理与内容过滤模块

一.功能介绍提供对一段内容的敏感词检查与标红服务。对于涉及内容安全与审核的系统,对文字进行敏感词过滤是一项必要功能,敏感词服务即用于完成此项功能。本服务提供敏感词的分组在线管理,词汇分级,内容过滤,涉及词汇提取,以及正文标红等功能。在过滤时,附加支持:不区分大小写 + 可检测在词汇中插入特殊字符 + 不破坏HTML和UBB代码。二.示例代码//第1行,获取服务(JSP中...

2010-10-26 08:35:21 793

数据库分切设计何必纠结于hibernate shard模式,应该简单化了

最近讨论db shard的帖子比较多,感觉很多都是在参考hibernate shard的思路,但hibernate分表真的那么好吗?我觉得它最少有2个问题: 1. 改成shard后,代码的API调用要变。代码改动很大。 2. 设计很复杂,不清晰,逻辑关系难以理解。hibernate shard基本上就是为了shard而对hibernate做的增增补补,凑合用还行,根本不具备设计...

2010-10-21 09:27:37 117

3行代码,实现IP到地理位置的反查功能

[size=large][b]一.功能介绍[/b][/size]通过传入的IP地址,返回IP所在的地理位置。如传入“58.16.209.19”,返回“贵州省六盘水市 ”。返回的地理位置又分为3种精确度,程序可以按照自身需要选择。三种精确度分别为:地区(省直辖市级),城市(地市级),详细位置。例如对于“58.16.209.19”,三种精度的值为:[code="java"]...

2010-06-22 11:04:31 326

原创 建议一起成立个移动开发工会联盟组织,规范国内终端市场

[size=large][b]公会联盟产生背景:[/b][/size]1. 大部分国内手机软件市场和android市场被“免费”侵蚀,开发者大力砸自己饭碗,如此下去和PC桌面软件一样,以后就没人能做了,大好的市场就被破坏了。2. 手机软件开发成本还比较高,出现有技术没钱(亏本)买测试环境;写好了软件,没法卖;卖了收不了账的尴尬。毕竟身处欧美的还是少数。[size=large...

2010-06-12 11:27:58 186

guzz顺利完成千万级社区网站线上运行

[size=large][b]系统介绍:[/b][/size]某大型互动类系统,日均PV2000万左右,总数据量约400G,关系数据库大小30G(不含内容正文)。大约有100多张表。主要是文字业务。主业务表数据为百万级(100万->800万),归档内容和日志表为千万级。系统基于Mysql数据库,主从分离部署(1主多从),以前采用hibernate做持久层。[size...

2010-06-11 11:52:22 170

原创 wget命令忽略fmt标签formatNumber的maxFractionDigits问题的解决

使用linux wget命令下载页面时,wget没有传入地区,使得fmt:formatNumber标签无法按照“本地化”要求格式化输出,造成maxFractionDigits属性无效,导致原本格式化小数点位数的数字又回复到格式化前的样子。参考:http://mail-archives.apache.org/mod_mbox/jakarta-taglibs-dev/200508.mbox...

2010-06-07 11:47:05 753

原创 如何动态增加系统swap空间?

[size=large]方法一[/size]一、查看系统当前的分区情况:>free -m二、创建用于交换分区的文件:>dd if=/dev/zero of=/whatever/swap bs=block_size count=number_of_block三、设置交换分区文件:>mkswap /whatever/swap四、立即启用交换分区文件:>swapon ...

2010-06-07 11:38:33 195

Memcached 安装配置手册

[b]一、安装所需文件[/b]memcached-1.4.4.tar.gz下载地址:http://memcached.org/libevent-1.4.13-stable.tar.gz下载地址:http://www.monkey.org/~provos/libevent/[b]二、安装libevent[/b]# tar zxvf libevent-1.4.13-st...

2010-06-07 11:34:30 92

原创 guzz1.2.8 beta2发布--支持动态加载在线调试SQL

[url]http://www.iteye.com/news/16208-guzz128_beta2_dynamic_sql[/url]

2010-05-26 14:56:35 129

改进架构,实现动态数据源,结束java开发生活

[b]如何不用写java代码来完成开发?[/b]对于大部分的产品和项目来说,页面变化是非常头痛的事情。每次小功能上线,新客户到来,都需要进行定制改造,不断的开发维护。每次开发一方面要改动页面,一方面要改动服务器代码,然后部署。而借助动态数据源,可以不用开发后端应用,直接完成功能开发。新功能开发时,只需要定义需要的数据格式和获取方法,如通过xml上传1个sql语句,系统根据sql语句...

2010-05-26 14:55:06 113

guzz1.2.8 beta1核心测试覆盖率达60%

coverage report:[img]http://dl.iteye.com/upload/attachment/244184/329b77f9-63c9-3c89-ad09-d10f5398c591.png[/img]

2010-05-04 14:26:23 112

guzz1.2.8 beta1基本就绪,开始支持annotation~~

终于支持(JPA的)annotation了。编写与测试已经通过,线上运行也还行(没有伤筋动骨的改动)。看到nutz发布了新版本,不争人气,等两天再发 :D 帮助这次全部放到了google的wiki上,不用2个网站一起捣腾了。Guzz Annotation使用介绍:[url]http://code.google.com/p/guzz/wiki/TutorialHbmA...

2010-04-27 17:51:34 88

JPA规范设计的太弱智了!

做guzz的annotation,看了一遍规范,又实现了一遍规范,最后在项目里面试了一把,简直忍无可忍,没有一点点扩展性可言……。尤其是主键生成策略@Id部分,想设置为assigned都没有办法。基本上JPA定义的annotation,所有实现者都要重复定义一套进行功能扩展,而开发者基本上2个都要写。@GenerateValue为容器管理预留设计太明显了,搞得除了以后买WebLogic...

2010-04-20 17:52:35 209

欢迎加入guzz的圈子,一起探讨大型网站数据层设计

欢迎加入:[url]http://guzz.group.iteye.com/[/url]

2010-04-09 17:27:22 136

guzz使用效果和经验技巧分享

我们主要是web应用,web规模也不能确定,有可能一天几千万甚至上亿的PV,也有可能根本没人用。最初设计guzz的目的就是让大型网站和小型网站一样设计编写,因为谁也不知道这个应用上去以后有多少人用,同时解决系统被要求页面天天改来该去的问题。[b]使用guzz以来的效果:[/b]1. 框架性能上没有看得出的快慢区别。我觉得不会比hibernate和biatis慢,我看过他们的一些代码...

2010-04-09 10:50:51 388

guzz1.2.7 rc1 发布,1个对象映射多张不同的表

[size=large][b]1.2.7 完整新功能介绍:[/b][/size][list][*] [b]支持表分切[/b]。允许同一对象按照业务规则,分别存储在不同的表中。如新闻评论:新闻频道的评论存放在 tb_c1,娱乐:tb_c2,体育tb_c3,其他:tb_c4,满足同类在线数据的数据表平行扩展需要。表分切命名为:Shadow Table。 [*][b]支持自定义属性表[/...

2010-03-24 13:31:46 157

When the subselect runs faster (zt)

A few weeks ago, we had a query optimization request from one of our customer.The query was very simple like:PLAIN TEXTCODE:SELECT * FROM `table` WHERE (col1='A'||col1='B') ORDER BY id...

2010-03-23 11:32:38 81

java版仿QQ聊天软件,大量贴图,开放代码~~

[size=large]无图无真相,先贴运行截图:[/size][b]客户端:[/b]登录:[img]http://dl.iteye.com/upload/attachment/222096/d2e247ac-b6f4-3c59-81d2-1220cf501ba2.gif[/img]注册:[img]http://dl.iteye.com/upload/attachm...

2010-03-22 09:51:29 488

guzz1.2.7 beta3 发布,完成自动分表和自定义属性表

可以让1个对象自动分切存储到不同的表中,并且允许每个表有自己特殊的字段和属性。详细介绍:[url]http://guzz.org/wiki/GuzzGuide[/url] 的第14和15节。

2010-03-18 09:09:27 123

guzz1.2.7 beta1 发布,支持异步网络服务调用

[size=medium]异步调用服务是指服务在执行的同时,不阻塞当前线程的继续执行,当服务的计算完成时,再返回给当前线程使用,实现并行计算。假设程序需要跨越网络读取3个服务器数据,按照传统模式,需要1个1个的进行网络阻塞读取,线性执行,操作总时间为3个网络服务需要时间之和。使用异步服务时,应用依旧顺序的调用3个网络服务,但返回的不是直接结果,而是FutureResult对象。用户...

2010-03-01 11:15:32 146

原创 分享2个java j2ee培训的ppt

[size=medium]前些年内部培训写的ppt.一个介绍j2ee基础,包括Servlet/Filter/Session Listener的启动和编写方法,以及他们为什么会在这个世界上存在的道理。这个ppt copy了先人的一些知识,我在里面隐藏了很多小故事,适合用来讲解(讲解的话大概2个小时)。另外一个介绍mvc的原理,主要是说MVC为什么要可以在这个世界存活下来,他帮助解决了...

2010-01-29 15:58:09 470

原创 对主要数据库Clob/Blob操作的总结

Clob和blob的操作主要分为3种:插入,更新和读取显示。对于插入,可以分为两类。一类是可以直接按照正常的字段处理,一类为必须先插入空clob/blob再更新为真正的内容。[b]插入:[/b]对于大部分的数据库,在插入lob时都可以通过PreparedStatement.setAsciiStream或PreparedStatement.setBinaryStream直接写入,...

2010-01-27 10:38:59 503

原创 Handling CLOBs - Made easy with Oracle JDBC 10g

Handling CLOBs - Made easy with Oracle JDBC 10gDate: 17-Mar-2004This document will help you understand: • How to easily handle the CLOB dataat the JDBC layer using enhanced...

2010-01-18 11:06:39 106

原创 guzz框架设计目标和功能介绍(新闻帖子补充)

[size=large]功能目标概述:[/size]guzz(谷子)是一套用来解决ORM、多数据源数据管理、以及通用数据处理的数据层框架。guzz可以看作是ibatis/hibernate的一个延伸。[b]ORM:[/b]guzz的ORM功能参考ibatis和hibernate的设计而来,同时具备ibatis的复杂查询在xml中配置以及简单的CRUD类似hibernate全部对象化...

2010-01-06 16:34:53 214

资料更新:http://www.guzz.org/

 所有资料以及资料更新转至:http://www.guzz.org/   

2009-11-12 14:17:51 151

guzz的版权以及更多资料

The Guzz is released under Apache License 2.0.The Source code is not released yet, advanced usage according to the source implementation is not recommended. The code would change every moment....

2009-11-10 14:46:35 142

6. guzz taglib

安装:两步:配置好guzz环境,让guzz跑起来。在需要的jsp页面上引入标签库:<%@ taglib uri="http://www.guzz.org/tags" prefix="g" %>标签tld的定义在guzz的jar包,META-INF中。提供的标签:标签种类: 标签 用途 标签体内可否写其他代码 ...

2009-11-06 17:26:53 152

5. 数据库查询操作

GuzzBaseDao如果继承GuzzBaseDao,可以使用basedao中提供的常用查询方法进行查询。ReadonlyTranSessionReadonlyTranSession为guzz对外提供的查询操作入口,获取方法:TransactionManager tm = guzzContext.getTransactionManager() ;Readon...

2009-11-06 17:25:50 196

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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