Java
baidu_26022431
这个作者很懒,什么都没留下…
展开
-
对于应用高并发,DB千万级数量该如何设计系统哪?
[b]背景:[/b] 博客类型的应用,系统实时交互性比较强。各种统计,计数器,页面的相关查询之类的都要频繁操作数据库。数据量要求在千万级,同时在线用户可能会有几万人活跃。系统现在是基于spring + hibernate + jstl + mysql的,在2千人在线,几十万记录下没有什么压力。可对于千万记录以及数万活跃用户没什么经验和信心。 对于这些,我的一点设计想法与问题,欢迎大家指导: ...2006-12-13 14:54:01 · 210 阅读 · 0 评论 -
淘宝的秒杀我感觉并不复杂,用二次事务模式可以很容易的实现
有个帖子说了,太长了另起一楼。大部分的观点都是“硬碰硬”,其实没有必要,如果仅仅是秒杀,我觉得没有那么复杂。 系统架构: 秒杀程序实现: 关键点: 将事务分开,在应用层的事务并不严格,可以快速的处理大量并发,不需要db,也需要网络cache,唯一的操作就是本机内存操作,效率肯定非常高。 应用成功后,在将事务发到DB,这个时候可能由于并发会出现多拍的用...2010-11-15 10:39:30 · 180 阅读 · 0 评论 -
工作几年,回头看看,发现做的东西都没啥技术含量……
从工作第一天开始,就开始用spring。有了spring和MVC这套东西,系统最复杂的初始化和组件关联被彻底隔离,剩下的就是日复一日的增删改查,添砖加瓦。纯粹的体力劳动,发现做多少系统都一样,毫无意思。后来系统规模大了,发现读写分离,分库分表还是挺有技术含量的,折腾这些觉得自己进步了;然后做了guzz;现在发现团队里面是个人都把表分的散散的,好像只给他一台数据库都不知道怎么干活了。...2011-03-08 12:43:27 · 153 阅读 · 0 评论 -
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 · 115 阅读 · 0 评论 -
数据库分切设计何必纠结于hibernate shard模式,应该简单化了
最近讨论db shard的帖子比较多,感觉很多都是在参考hibernate shard的思路,但hibernate分表真的那么好吗?我觉得它最少有2个问题: 1. 改成shard后,代码的API调用要变。代码改动很大。 2. 设计很复杂,不清晰,逻辑关系难以理解。hibernate shard基本上就是为了shard而对hibernate做的增增补补,凑合用还行,根本不具备设计...2010-10-21 09:27:37 · 121 阅读 · 0 评论 -
halo-cloud私有云开源啦,构建小型的平民级的云计算平台
可由1到100台机器组成,并用普通编程方式扩展的小型云计算平台。[b]干什么用的?[/b]不是每个公司都像google、像淘宝、像新浪微博一样庞大,需要复杂的成千上万台机器组成的大型云计算平台,那样成本太高。更没有多少中国公司会使用GAE、Amaze之类公共云平台,那样网络吃不消。对于普通的公司,100台以内机器组成的私有云是最好的选择。规模适中、容易开发、易于维护...2011-05-04 08:14:33 · 687 阅读 · 0 评论 -
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 · 765 阅读 · 0 评论 -
JPA规范设计的太弱智了!
做guzz的annotation,看了一遍规范,又实现了一遍规范,最后在项目里面试了一把,简直忍无可忍,没有一点点扩展性可言……。尤其是主键生成策略@Id部分,想设置为assigned都没有办法。基本上JPA定义的annotation,所有实现者都要重复定义一套进行功能扩展,而开发者基本上2个都要写。@GenerateValue为容器管理预留设计太明显了,搞得除了以后买WebLogic...2010-04-20 17:52:35 · 216 阅读 · 0 评论 -
分享2个java j2ee培训的ppt
[size=medium]前些年内部培训写的ppt.一个介绍j2ee基础,包括Servlet/Filter/Session Listener的启动和编写方法,以及他们为什么会在这个世界上存在的道理。这个ppt copy了先人的一些知识,我在里面隐藏了很多小故事,适合用来讲解(讲解的话大概2个小时)。另外一个介绍mvc的原理,主要是说MVC为什么要可以在这个世界存活下来,他帮助解决了...原创 2010-01-29 15:58:09 · 475 阅读 · 0 评论 -
对主要数据库Clob/Blob操作的总结
Clob和blob的操作主要分为3种:插入,更新和读取显示。对于插入,可以分为两类。一类是可以直接按照正常的字段处理,一类为必须先插入空clob/blob再更新为真正的内容。[b]插入:[/b]对于大部分的数据库,在插入lob时都可以通过PreparedStatement.setAsciiStream或PreparedStatement.setBinaryStream直接写入,...原创 2010-01-27 10:38:59 · 510 阅读 · 0 评论 -
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 · 164 阅读 · 0 评论 -
guzz1.2.7 beta3 发布,完成自动分表和自定义属性表
可以让1个对象自动分切存储到不同的表中,并且允许每个表有自己特殊的字段和属性。详细介绍:[url]http://guzz.org/wiki/GuzzGuide[/url] 的第14和15节。2010-03-18 09:09:27 · 127 阅读 · 0 评论 -
InstallAnywhere 2008破解与自定义PlugIn陷阱经验分享
IA安装破解: 最近要给软件做个安装包,尝试了一把InstallAnywhere(IA)最新的2008版。这个版本刚出不久,破解还不是很多,其实破解也不难,本文附件是详细的破解步骤和需要的包(转载的),希望有助于需要人的学习和研究:)本人亲自验证了一下,破解支持到最新的IA 2008 SP1,你要下的是2008...2008-10-22 10:34:07 · 264 阅读 · 0 评论 -
a different object with the same identifier...
这个问题,我把对象赋值为NULL,也是很好用的.在我的系统中,更新好用了,可是插入不好用了.没改前,是插入好用,而更新不好用.本来是系统中的问题,可是,catch只是捕捉到,从但是,没有把log打印出来,找原因实在是难找.在高度数据库时,最好把异常捕捉中的信息打印出来.org.springframework.orm.hibernate.HibernateSystemException: a...原创 2009-04-20 15:05:49 · 167 阅读 · 0 评论 -
想设计一种实用的有效的hibernate查询缓存设计,欢迎讨论
hibernate自带缓存的情况介绍hibernate提供了两种缓存,一个是基于对象主ID的一级缓存和一个为缓存查询结果而设计的二级缓存(姑且叫作查询缓存),一级缓存是默认开启的, 而且似乎也是很难关闭的;查询缓存默认是关闭的,而在我的印象中则一直觉得这个东西是“没有价值的”,至今没有看到典型的使用案例和使用模式。<o:p></o:p>hiber...2007-12-16 15:56:57 · 205 阅读 · 0 评论 -
对于12306,我的完整技术方案
12306主要就是卖票比较复杂,注册登录之类的功能就不说了。有网友说,12306卖票系统比航空复杂,因为要分段卖,航空只有起点和终点,火车中间还有好多站。不过好消息是,这些站在售票时是连续的,不会出现1张票跳着站买的情况,这样就可以把一张票拆成N张只有起点和终点的票,和航空售票一样了。(我不了解航空售票,也不了解火车售票业务具体模型,下面都是基于推测和假设之类的。)卖票分为两部分,...2012-01-13 14:35:02 · 479 阅读 · 0 评论