企业级开发
文章平均质量分 73
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring4.0实用教程-4.x初体验
1、配置Spring Maven仓库。发布版: io.spring.repo.maven.release http://repo.spring.io/release/ false 里程碑版: io.spring.repo.maven.milestone http://repo.原创 2014-02-23 00:38:04 · 11273 阅读 · 2 评论 -
redis学习笔记八之主从复制
转自:http://www.cnblogs.com/xhan/archive/2011/02/07/1949660.html redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。下面是关于redis主从复制的一些特点1.master可以有多个slave2.除了多个slave连到相同的maste转载 2013-08-25 19:16:12 · 943 阅读 · 0 评论 -
redis学习笔记五之pipeline
转自:http://www.cnblogs.com/xhan/archive/2011/02/05/1949276.htmlredis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常 会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给c转载 2013-08-25 19:06:56 · 1518 阅读 · 0 评论 -
redis学习笔记四之事务
转自:http://www.cnblogs.com/xhan/archive/2011/02/04/1949151.htmlredis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个client发转载 2013-08-25 19:03:00 · 950 阅读 · 0 评论 -
缓存设计,LIRS,cache锁粒度
互联网架构中缓存无处不在,某厂牛人曾经说过:”缓存就像清凉油,哪里不舒服,抹一下就好了”。高品质的存储容量小,价格高;低品质存储容量大,价格低,缓存的目的就在于”扩充”高品质存储的容量。本文探讨缓存相关的一些问题。LRU替换算法缓存的技术点包括内存管理和替换算法。LRU是使用最多的替换算法,每次淘汰最久没有使用的元素。LRU缓存实现分为两个部分:Hash表和LRU链表,Hash表用转载 2013-08-24 16:50:23 · 1968 阅读 · 0 评论 -
C++谜点大揭秘
1.引用声明之谜:Code: //Program// #include using namespace std; int Max(int &a,int &b){ return (a>b)?a:b; } int main(){原创 2010-09-28 09:29:00 · 733 阅读 · 1 评论 -
Vc6.0的那些事儿
虽然很久以前的文章了,但是对大家都应该很有帮助。文章出处: http://hqtech.nease.net/Article/VC_V6IDE.htm 作者:陆其明 原文: 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必转载 2010-11-05 08:16:00 · 838 阅读 · 2 评论 -
ESB 企业服务总线
整理的OSChina 第 38 期高手问答 —— ESB 企业服务总线,嘉宾为@肖俊_David 。@肖俊_David 恒拓开源架构师,热衷于JAVA开发,有多年的企业级开发经验。曾参和设计和开发基于FuseESB 企业级服务总线系统,对FuseESB企业级服务总线以及内嵌的Camel/ActiveMQ 有深刻的理解。ESB 全称为Enterprise Servic原创 2013-08-24 10:36:41 · 18709 阅读 · 2 评论 -
JS常见疑点点睛(不定期更新)
1、eval解析json时为什么要强制添加()?var sts=eval("("+data+")"); 强制转化成json对象为什么eval这里要添加 “("("+data+")");?原因:这是eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。加上圆括号的目的是原创 2013-05-14 11:07:46 · 978 阅读 · 0 评论 -
js日期操作
js日期操作myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay()转载 2013-05-30 15:55:36 · 832 阅读 · 0 评论 -
XMPP协议
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。 XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;转载 2013-07-03 11:21:33 · 1825 阅读 · 0 评论 -
深入理解JVM内幕:从基本结构到Java 7新特性
每个Java开发者都知道Java字节码是执行在JRE(Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Java转载 2013-04-11 08:38:18 · 845 阅读 · 0 评论 -
MD5算法分析
MD5算法分析MD5算法的RFC网址:http://www.faqs.org/rfcs/rfc1321.htmlword表示32-bitbyte表示8-bitX_i表示XiX^i表示XiXnot(X)表示~XXvY表示X|YXY表示X&Y假设有消息m,则b = m.getBytes().length * 8转载 2013-05-30 15:56:31 · 1023 阅读 · 0 评论 -
redis学习笔记九之虚拟内存
转自:http://www.cnblogs.com/xhan/archive/2011/02/07/1949717.html首先说明下redis的虚拟内存与os的虚拟内存不是一码事,但是思路和目的都是相同的。就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的 内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够用的。除了可以将数据分割到多个redis转载 2013-08-25 19:18:21 · 887 阅读 · 0 评论 -
使用BeanUtils来进行对象的组装
对于BeanUtils这个工具,我也用的不是很多,但是还是有点心得和大家分享下,呵呵~~用过spring的都知道spring的MVC框架中有一个BaseCommandController对象,利用这个对象我们就可以很方便的将从客户端传递过来的参数封装到一个JavaBean对象中去,而不需要我们request.getParameter("name");bean.setName(name);了,从而也转载 2013-08-25 16:36:55 · 1771 阅读 · 0 评论 -
Spring4.0实用教程-IOC容器(一)
一、轻量级容器1、何为容器?容器:应用代码的运行框架,提供对业务对象的管理。重量级容器EJB,曾经是管理J2EE业务对象最常用的容器。因为Spring的出现,它辉煌不再。J2EE的Web容器是比较特殊的,它用于管理servlet及其相关依赖对象。容器作为程序的运行框架,应该提供生命周期管理,查找服务,配置管理和依赖决策等基础服务,当然还可以提供企业级服务(事务管理等),线程管理,对原创 2014-02-26 21:32:12 · 2893 阅读 · 4 评论 -
报告老板,摊上大事了!
报告老板,摊上大事了,我们负责的联通某系统(系统A)出现客服大量断线的情况,导致用户投诉量激增,客服业务量受到严重影响!!——2014-01-16日,联通大厦。山雨欲来风满楼临近新年,手头上的工作也处于结尾状态,每天来到公司做些小的需求,修改些小的bug。该过年了,为了安安心心过大年,我们要确保系统的稳定性,所以年前是不会有大的升级改造的,这是我们打的如意算盘。昨天晚上升级系统B,升级过程原创 2014-01-19 22:30:00 · 1901 阅读 · 1 评论 -
在ServletContextListener实现类中获取spring注入对象
由于项目需要,需在ServletContextListener监听接口实现类中调用spring注入的对象,以获取系统初始化参数.代码如下: import java.io.IOException;import java.util.List;import javax.servlet.ServletContextEvent;import javax.servlet.ServletC原创 2013-05-30 16:08:41 · 10202 阅读 · 0 评论 -
消息队列服务
整理的OSChina第37期高手问答——消息队列服务,嘉宾为 @shaneyuan 。@shaneyuan 现就职于广州 UC 公司,是 UCMQ 的作者,以下简称SY。UCMQ是一款轻量的HTTP协议级消息队列服务组件,项目的最初原型来自 @张宴 的HTTPSQS。基本特性:支持标准的HTTP协议( GET/POST方法),支持长连接(keep-alive);原创 2013-12-13 15:18:59 · 4186 阅读 · 0 评论 -
redis学习笔记二之数据类型
转自:http://www.cnblogs.com/xhan/archive/2011/02/02/1948891.html本文介绍下redis支持的各种数据类型包括string,list ,set ,sorted set 和hash 1. keysredis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中转载 2013-08-25 18:57:12 · 1072 阅读 · 0 评论 -
Java 缓存介绍:Ehcache、Hazelcast、Infinispan
对于这样的一个问题:最好的 Java 缓存解决方案是哪个? 很难有一个简单的答案,这依赖于不同的应用场景:是否只需要一个本地的缓存,或者是需要在应用集群中使用的缓存分区在数据一致性和延迟方面的权衡是不是在固定的硬件架构上的静态发布,或者是不断增长的应用服务器数量下面我们会介绍 Java 应用服务器方面的一些缓存解决方案,包括 Ehcache、Hazelcast 和 Infinisp转载 2013-08-25 19:45:27 · 5728 阅读 · 0 评论 -
redis学习笔记六之发布订阅
转自:http://www.cnblogs.com/xhan/archive/2011/02/06/1949473.html 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server转载 2013-08-25 19:09:58 · 1134 阅读 · 0 评论 -
redis学习笔记一之环境搭建
转自:http://www.cnblogs.com/xhan/archive/2011/02/01/1948751.html1.简介 redis是一个开源的key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说li转载 2013-08-25 18:51:30 · 1011 阅读 · 0 评论 -
redis学习笔记三之排序
转自:http://www.cnblogs.com/xhan/archive/2011/02/03/1948970.html在了解完各种redis类型后,这次介绍下redis排序命令.redis支持对list,set和sorted set元素的排序。排序命令是sort 完整的命令格式如下:SORT key [BY pattern] [LIMIT start count] [GET pa转载 2013-08-25 19:02:02 · 1142 阅读 · 0 评论 -
URL编码
每个 Web 开发者都应该知道的关于 URL 编码的知识本文首先阐述了人们关于统一资源定位符(URL)编码的普遍的误读,其后通过阐明HTTP场景下的URL encoding 来引出我们经常遇到的问题及其解决方案。本文并不特定于某类编程语言,我们在Java环境下阐释问题,最后从Web应用的多个层次描述如何解决URL编码的问题来结尾。目录简介通用 URL语法HTTP转载 2013-07-02 10:20:35 · 1234 阅读 · 0 评论 -
数据库锁
1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。2 锁的种类共享锁(Shared lock)。例1:--------转载 2013-07-02 21:14:33 · 770 阅读 · 0 评论 -
新浪微博技术架构问题解析
你要问我新浪微博有什么技术压力。我觉得,本质上: 第一,如何快速共享数据,如何快速的将new message在网状社区中传递开来。 第二,长期大量积累下来的数据如何分布,分散储存,保证性能。数据库的横纵切分。 第三,机房的多备份,多备份机房之间的同步策略。 第四,业务上的转载 2013-07-02 23:18:20 · 934 阅读 · 0 评论 -
又拍网架构中的数据库分库设计
又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们在技术上的积累。相关厂商内容方兴:基于安全漏洞的攻防对抗技术陈良国:击败人类万事通的Watson AI系统架构剖析相关赞助商网络架构疑难杂症解析,百度网页搜索新技术研讨!8折转载 2013-07-02 22:55:52 · 1014 阅读 · 0 评论 -
Mina介绍
基本介绍:Apache MINA 2是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步API,可以使用TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2可以作为开发网络应用程序的一个良好基础。Mina 的API 将真正的网络通信与我们的应用程序隔离开来,你只需要关心你要发送、接收的数据以及你的业务逻转载 2013-07-02 19:55:39 · 4516 阅读 · 0 评论 -
Amazon平台架构
http://www.linuxeye.com/architecture/1679.html一、系统概述1、Amazon平台概述 Amazon平台是一个由数百服务组成的面向服务的架构,其秉承高度去中心化、松散耦合、完全分布式的原则,具体架构参考下图1。图1 Amazon系统架构在这种环境中,尤其需要一个始终可用的存储系统,由此,Dynamo诞生了。转载 2013-07-17 23:53:59 · 6264 阅读 · 0 评论 -
Log4j 2架构
主要组件Log4j 2中所使用的类如下图所示。ImportNew注:如果你对Log4j 2不了解,建议阅读这篇文章《Log4j 2 介绍》。使用Log4J 2 API的程序可以根据特定名称向LogManager请求Logger。LogManager将会定位到合适的LoggerContext,然后从中取得Logger。如果需要创建Logge转载 2013-07-17 23:41:05 · 1228 阅读 · 0 评论 -
Hibernate分片
当关系数据库企图将TB级的数据存储在单一表中时,整体性能通常都会下降。对所有数据进行索引显然对读写都带来巨大代价。而NoSQL数据存储则特别适用于 大数据存储(想想Google的BigTable)。但NoSQL显然是非关系型的方案。对于偏爱关系数据库的ACID特性和固定结构的开发者。或者面对 不得不使用关系数据库项目时,分片将是一个令人激动的选项。分片(Sharding)作为数据库分区转载 2013-07-17 23:14:26 · 912 阅读 · 0 评论 -
Hibernate ThreadLocal讲解
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate ThreadLocal,包括介绍Hibernate官方开发手册标准示例等方面。Hibernate ThreadLocal它会为每个线程维护一个私有的变量空间。实际上, 其实现原理是在JVM 中维护一个Map,这个Map的key 就是当前的线程对象,而value则是 线程通过Hibernate ThreadL转载 2013-06-30 17:46:52 · 950 阅读 · 0 评论 -
多版本并发控制(MVCC)在分布式系统中的应用
问题 最近项目中遇到了一个分布式系统的并发控制问题。该问题可以抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 … Ln组成;D本质上是一个key-value存储,它对外提供基于HTTP协议的CRUD操作接口。L的业务逻辑可以抽象为下面3个步骤:read: 根据keySet {k1, … kn}从D获取keyValueSet {k1:v1, … kn:vn}转载 2013-07-16 08:54:50 · 810 阅读 · 0 评论 -
Struts2 Preparable接口
Preparable接口中有一个void prepare() throws Exception方法,实现该接口的Action类,将在执行这个action所以方法之前执行prepare(),称为action准备方法。也可以按其格式自己写,如一个Action方法为input,则可以实现prepareInput()方法,prepareInput()会在input()方法执行前调用。关于s转载 2013-07-10 09:38:07 · 1036 阅读 · 0 评论 -
获取ServletContext方法
获取ServletContext方法1.在javax.servlet.Filter中直接获取ServletContext context = config.getServletContext();2.在HttpServlet中直接获取this.getServletContext()3.在其他方法中,通过转载 2013-05-30 14:39:48 · 1507 阅读 · 0 评论 -
Java的序列化和反序列化
Java的序列化和反序列化1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化a)当你想把的内存中的对象状态保存到一个转载 2013-05-30 16:14:08 · 1236 阅读 · 0 评论 -
JS中使用JSTL标签
JS中使用JSTL标签只要把jstl标签放到内就可以使用,解析过程是jsp先去服务器端取数据(解析jstl),然后返回生成js文件.具体没研究,有空再研究吧,有点忙!!! jifens[${jfgz.gzId}] = new Array(${jfgz.jifen},"${jfgz.description}");转载 2013-05-30 15:58:56 · 15888 阅读 · 2 评论 -
记使用JSTL时的一次愚蠢错误
今天使用jstl的foreach,平时没问题,今天出现如下错误:javax.el.PropertyNotFoundException: Property 'id' not found on type java.lang.String javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) javax.el.原创 2013-05-08 11:52:06 · 3857 阅读 · 0 评论 -
客户端跳转与服务器端跳转的区别
一、客户端跳转客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的。这两者之间的区别主要体现在三个方面:1. 使用服务器端跳转时,客户浏览器的地址栏并不会显示目标地址的URL,而是用客户端跳转时,地址栏当中会显示目标资源的URL;2. 服务器端跳转是由客户端发送转载 2013-03-14 11:08:43 · 1046 阅读 · 0 评论
分享