自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Struts2标签 %{ } %{# }

struts2中的标签     s:a            中的href 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“”     s:select      中的list 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“”     s:if          中的test 什么时候使用“# ” 什

2012-12-05 13:42:05 303

转载 分库分表的设计思路让大系统变简单

以铁路的售票系统来说明分库分表对架构的影响。  一、问题:铁路的售票系统的数据量是海量吗?   不是。因为数据量不大,真不大。  每一个车次与车次间是独立的,每车次不超过2000张票,一天发车不超过50万车次; 以预售期15天来讲,15*0.1亿张不超过1.5亿笔的热线数据,称不上海量数据的。 再加上可以按线路分库,更是不到千万级的单表容量。已经发车完成的进

2012-12-05 09:54:48 654 1

转载 网站大并发处理解决方案

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是

2012-12-05 09:29:15 419

转载 MYSQL分库分表,打造千万pv大并发的网站

当一个网站有很多用户的时候,我们的服务器已经吃不消了,数据库的增删改查会变的非常痛苦,基本死掉了其实这时候早就需要重新设计数据库了不能再用以前的那个mysql数据库的结构我们需要分库(把一个数据库分成多个数据库),分表(把一张表按照一定规律分成N张结构相同的表)bbs_user 表规则怎么处理?bbs_user_1bbs_user_mscbbs_user_2011

2012-12-04 14:51:25 669

转载 Mysql 存储引擎中InnoDB与Myisam的主要区别

1, 事务处理innodb 支持事务功能,myisam 不支持。Myisam 的执行速度更快,性能更好。2,select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB

2012-12-04 14:20:01 541

转载 mysql 的数据类型

类型字节最小值最大值  (带符号的/无符号的)(带符号的/无符号的)TINYINT1-128127  0255S

2012-12-04 13:52:09 189

转载 mysql 的一些大小限制

由于mysql可以使用不同的存储引擎,所以,不同的存储引擎有不同的区别(以下内容都是基于mysql 5.1)。1,myisamMySQL 3.22限制的表大小为4GB。由于在MySQL 3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567 – 1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由

2012-12-04 13:48:17 470

转载 大型网站数据库架构分析

涉及知识点:1,主从复制,读写分离  对主库修改数据,查询使用从库。一主多从,来降低数据库读取压力。2,分库分表  查看详情根据实体业务来分库,分表。如,根据数据的活跃性,根据用户uid等。3,mysql 不同存储引擎区别  查看详情InnoDB 用于数据完整性/写性能要求比较高的应用. MyISAM 适合查询应用。一个简单的图例:

2012-12-04 13:40:16 302

原创 mysql 分库分表

分表是分散数据库压力的好方法。分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库。当然,首先要知道什么情况下,才需要分表。个人觉得单表记录条数达到百万到千万级别时就要使用分表了。1,分表的分类1>纵向分表将本来可以在同一个表的内容,人为划分为多个表。(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的。

2012-12-04 13:37:02 605

转载 分库分表策略的可实现架构

分库分表是解决mysql水平扩展的主要手段。网上有关策略的讨论很多,主要是hash扩展、按时间扩展、按范围扩展等等。但真正想实施分库分表的朋友们往往觉得“策略听来终觉浅,觉知此事要代码”,因此本文的主要目的是给朋友们提供一个可实现架构。JDBCTemplate和Hibernate大家都知道Hibernate是ORM(对象-关系数据库 mapping)意义上的第一个真正的“统治级”产品。JD

2012-12-04 13:23:40 1990

转载 三十而衰?-中国程序员成长误区

程序员是否面临“30岁问题”? 古语云:"三十而立",意即三十岁是人生的一个黄金时段,是事业初成,蓬勃兴起的起点。然而在中国程序员这个团体中,很多到了30岁,或者还没有到30岁的开发者对以后的发展便感到了盲目。同时我们也注意到国内的很多软件公司在招收程序开发人员时往往将30岁界定成为了招收程序员的年龄上限,不仅如此,在很多聚会的场合或网上的论坛,程序员是否存在30岁这个“坎”的问题只要一出

2012-12-04 11:13:01 538

原创 MYSQL分库分表总结

单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读

2012-12-04 10:48:19 572

转载 淘宝网架构师岳旭强的年度展望

“一场危机赢得高度关注的时候,它已经不是危机,人们是要处理这个危机。”——马云2009年是挑战和机遇并存的一年,对大部分人来说,已经习惯了金融危机,并努力解决危机。在技术圈子也一样,被裁员的肯定也找到了工作,所以都在踏实做技术。言归正传,先念叨念叨2009年的一些故事,寻个回忆,找个乐子。数据扩展性探讨和总结金融危机是电子商务的机遇,所以09年是淘宝高速发展的一年。当一个网

2012-12-04 09:30:55 749

转载 分库&拆表方案

基本认识用分库&拆表是解决数据库容量问题的唯一途径。分库&拆表也是解决性能压力的最优选择。分库 – 不同的数据表放到不同的数据库服务器中(也可能是虚拟服务器)拆表 – 一张数据表拆成多张数据表,可能位于同一台服务器,也可能位于多台服务器(含虚拟服务器)。去关联化原则摘除数据表之间的关联,是分库的基础工作。摘除关联的目的是,当数据表分布到不同服务器时,查询请求容易分发

2012-12-03 14:59:01 951

转载 淘宝下单高并发解决方案

周末参加了@淘宝技术嘉年华 主办的技术沙龙, 感觉收获颇丰,非常感谢淘宝人的分享。这里我把淘宝下单高并发解决方案的个人理解分享一下。我不是淘宝技术人员,本文只是写自己的理解,所以肯定是会有一些出入的。在session中牧劳为我们介绍了淘宝下单部分的技术方案变迁,我不介绍变迁,而只对现有系统做介绍。要优化下单,提高下单的TPS (Transaction per second),我们首先要做的

2012-12-03 13:40:36 2345 1

原创 用Ibatis实现分库分表

自从ibatis 2.0.9以后,ibatis支持动态表名。 以下为用Map做参数的动态表名实现方法:示例代码如下: Sample : remapResults ="true" resultMap ="resultRighe"  parameterClass ="java.util.Map" > select * from $tablePrefix$

2012-12-03 10:34:09 1081

转载 MongoDB学习笔记(六) MongoDB索引用法和效率分析

MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致。由于集合中的键(字段)可以是普通数据类型,也可以是子文档。MongoDB可以在各种类型的键上创建索引。下面分别讲解各种类型的索引的创建,查询,以及索引的维护等。一、创建索引   1. 默认索引  MongoDB有个默认的“_id”的键,他相当于“主键”的角色。集合创建后系统会自动创建一

2012-11-30 11:25:20 317

转载 MongoDB学习笔记(五) MongoDB文件存取操作

由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个BJSON的最大长度不能超过4M,所以限制了单个文档中能存入的最大文件不能超过4M。为了提供对大容量文件存取的支持,samus驱动提供了“GridFS”方式来支持,“GridFS”方

2012-11-30 11:06:23 214

转载 MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系

MongoDB的集合(collection)可以看做关系型数据库的表,文档对象(document)可以看做关系型数据库的一条记录。但两者并不完全对等。表的结构是固定的,MongoDB集合并没有这个约束;另外,存入集合的文档对象甚至可以嵌入子文档,或者“子集合”。他们最终都可以用类似于BJSON的格式描述。我们今天就来分析MongoDB这一特性带来的独特数据管理方式。我们还是以samus驱动为例来分

2012-11-30 10:47:12 250

转载 MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB。nosql虽然概念新颖,但是MongoDB基本应用实现起来还是比较轻松的,甚至代码比基本的ADO.net访问关系数据源还要简洁。由于其本身的“非关系”的数据存储方式,使得对象关系映射这个环节对于MongoDB来讲显得毫无意义,因

2012-11-30 10:21:15 301

转载 MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。一、关于MongoDB的驱动  MongoDB支持多种语言的驱动,在此我们只介绍

2012-11-30 10:14:52 268

转载 MongoDB学习笔记(一) MongoDB介绍及安装

一、前言  最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下。本人不才,借着自学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论。部分资源出自其他博客,旨将零散知识点集中到一起,如果有侵犯您的权利,请联系[email protected]。大部分内容均系原创,欢迎大家转载分享,但转载的同时别忘了注明作者和原文链接哦。二、M

2012-11-30 10:07:37 213

原创 SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架

一、SiteMesh项目简介      OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。       Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目

2012-11-29 16:34:10 396

原创 Mysql海量数据存储和解决方案之二----Mysql分表查询海量数据

前面已经讲过Mysql实现海量海量数据存储查询时,主要有几个关键点,分表,分库,集群,M-S,负载均衡。其中分库分表是很重要的一点。分库是如何将海量的Mysql数据放到不同的服务器中,分表则是在分库基础上对数据现进行逻辑上的划分。数据划分可有多种方式,找到一个主键后,可以按号段分,也可以Hash取模分,也可以选择在认证库中保存DB配置。具体如何选择具体情况具体分析。划分后,就是

2012-11-29 13:32:16 2348

原创 Mysql海量数据存储和解决方案之一—分布式DB方案

1) 分布式DB水平切分中用到的主要关键技术:分库,分表,M-S,集群,负载均衡2) 需求分析:一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载,对系统的稳定性的扩展性带来极大挑战。3) 现有解决方式:通过数据切分提高网站性能,横向扩展数据层水平切分DB,有效降低了单台机器的负载,也减小了宕机的可能性。集群方案:解决DB宕机带来的单点DB不能访问问题。读写分离

2012-11-29 11:17:39 1186

原创 java中break以及continue

在开发中,break和continue中断语句用的比较多,下面来具体看看两者的区别: break语句: 在我前面的博文里面有提到switch语句,其实在每个case里面的break的作用就是当该case为true,则跳出整个switch循环 由此可见,break的作用简单说就是跳出当前的整个循环,下面有个简单说明: break语句可以强迫程序中断循环,当程序执行到break语句时,

2012-11-28 13:16:06 229

转载 软件开发流程

软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。开发流程  第一步:需求调研分析  1相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大

2012-11-27 17:25:10 314

原创 如何使用Log4j

1、 Log4j是什么?Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧: http://jakarta.apache.org/log4j 。2、Log4j的概念Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥

2012-11-22 13:46:44 203

原创 catalina.home和catalina.base

catalina.home和catalina.base这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。以Tomcat6.0为例,其Tomcat目录结构如下:bin (运行脚本)conf (配置文件)lib (核心库文件)logs (日志目录)temp (临时目录)webapps (自动装载的应用程序的目录)work

2012-11-22 11:17:38 277

转载 Spring contextConfigLocation

spring如何使用多个xml配置文件 1, 在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有逗号分割的xml.如果没有这个参数,spring默认加载web-inf/applicationContext.xml文件.例如:contextConfigLocationclasspath*:conf/spring/app

2012-11-22 10:49:53 226

转载 Spring中ClassPathXmlApplicationContext类的简单使用

一、简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用:ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");RegisterDAO registerDAO = (RegisterDAO)ac.getBean("R

2012-11-21 11:27:00 221

转载 让Apache Shiro保护你的应用

在尝试保护你的应用时,你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用,只会让你更糊涂?本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目标、架构理念以及如何使用Shiro为应用安全保驾护航。Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)

2012-11-19 10:36:39 429

转载 java中的context

用于在 Request 操作中指定上下文对象的对象,上下文字符串在与请求调用一起被发送之前,必须在该指定的上下文对象中进行解析。Context 对象包含 NamedValue 对象形式的属性列表。这些属性表示关于客户端、环境或请求情形的信息,它们通常是一些可能不方便作为参数传递的属性。Context 对象是通过先调用 ORB 方法 get_default_context,然后在默认上下

2012-11-14 11:18:23 1238

原创 java权限管理与用户角色权限设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权

2012-11-12 16:52:15 1266

空空如也

空空如也

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

TA关注的人

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