- 博客(113)
- 资源 (15)
- 收藏
- 关注
转载 新浪微博技术架构分析-转载
新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是非常快的,我们可以非常快的实现我们的模块。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推的消息模式,假如说我们一个明星用户他有10万个粉丝,那就是说用户发表一条微博的时候,我们把这个微博消息攒成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第
2014-03-22 13:57:35 683
转载 JTA 深度历险 - 原理与实现
在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的
2014-03-22 13:16:47 547
转载 Spring对JTA的支持
引言: Spring 通过AOP技术可以让我们在脱离EJB的情况下享受声明式事务的丰盛大餐。 通过配合使用ObjectWeb的JOTM开源项目,在不需要Java EE应用服务器的情况下,Spring也可以提供JTA事务。Sping对JTA支持的三种方式: 1. 直接集成JOTM提供JTA事务管理(无应用服务器支持,常用于单元测试) 2. 引用应用服务器(如Tomca
2014-03-22 13:03:22 581
转载 MyBatis 缓存机制深度解剖
缓存概述 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持;一级缓存基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存
2014-03-20 20:16:50 987
转载 MyBatis源码研究-缓存
在学习Hibernate中,经常有看到一级缓存和二级缓存的概念,并且有了解到,一级缓存是session级别的缓存一般缓存在内存中,二级缓存是指sessionfactory级别的缓存,一般缓存在内存或者物理介质中。但是在MyBatis中,这两天看源码的时候,好像MyBatis中的缓存的定义和Hibernate中的有所不同。 一级缓存是在BaseExecutor中的通
2014-03-20 20:14:13 564
转载 Mybatis源代码分析之类型转换
ORM框架最重要功能是将面向对象方法中的对象和关系型数据库中的表关联了起来,在关联过程中就必然涉及到对象中的数据类型和数据库中的表字段类型的转换,Mybatis中的org.apache.ibatis.type包主要就是实现这个功能。一、org.apache.ibatis.type的基础类在mybatis的官网中(http://mybatis.github.io/mybatis-3/
2014-03-20 20:08:45 638
转载 Mybatis源代码分析之包间依赖介绍(一)
通常而言,作为一个系统中的类、接口和注解,或多或少都会被该系统中其他的类、接口或者注解所引用,相互间存在着被我们称为继承、实现、组合、关联、依赖等关系。但是有时出于系统版本的迭代升级,一些类、接口和注解慢慢的不再被系统中的其他类所调用;或者是其提供的功能相对独立,与系统中其他类、接口和注解没有关系。一个正式商用的系统中的类文件没有上万也有数千个,但如何才能发现这些类间的关系?难道要一个一个
2014-03-20 20:08:09 515
转载 组合模式
一、组合模式简介(Brief Introduction)组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 二、解决的问题(What To Solve)解决整合与部分可以被一致对待问题。三、组合模式分析(Analysis)1、组合模式结构Component类:组合中的对象声明接口,
2014-03-20 19:31:41 549
转载 双重检查锁定及单例模式(ibm社区)
本文来自ibm社区 单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java
2014-03-20 19:12:00 577
转载 数据库事务隔离级别与锁
数据库事务隔离级别与锁关键字: 事务 一,事务的4个基本特征 Atomic(原子性): 事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要 么全部成功,要么全部失败。 Consistency(一致性): 只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初 状态。 Isolation(隔离性): 事务允许多个用户对同一个数据进行并发
2014-03-20 19:03:10 518
转载 SQL优化大全
1. 优化SQL步骤1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。 如显
2014-03-20 18:58:43 598
转载 《深入浅出 Java Concurrency》目录
J.U.C 整体认识原子操作 part 1 从AtomicInteger开始原子操作 part 2 数组、引用的原子操作原子操作 part 3 指令重排序与happens-before法则原子操作 part 4 CAS操作锁机制 part 1 Lock与ReentrantLock锁机制 part 2 AQS锁机制 part 3 加锁的原理 (Lock.lock)锁机制 part 4 锁释放与条件变
2014-03-18 21:44:11 642
转载 关于面试、简历之类的某人聊天的观点
在CSDN上看到的,感觉说的蛮好的,转过来收藏一下,原文地址:http://topic.csdn.net/u/20120629/17/d130a88b-54fc-4402-8d12-b573872d96b3.html2012/2/2 15:13:23 有一个原则 2012/2/2 15:13:29 如果我投简历给你 2012/2/2 15:13:36 就代表我接受
2014-03-18 21:39:39 610
转载 Java Cache系列之Cache概述和Simple Cache
前记:最近公司在做的项目完全基于Cache(Gemfire)构建了一个类数据库的系统,自己做的一个小项目里用过Guava的Cache,以前做过的项目中使用过EHCache,既然和Cache那么有缘,那就趁这个机会好好研究一下Java中的Cache库。在Java社区中已经提供了很多Cache库实现,具体可以参考http://www.open-open.com/13.htm,这里只关注自己用到的几个C
2014-03-18 21:31:02 2544
转载 深入JUnit源码之Runner
初次用文字的方式记录读源码的过程,不知道怎么写,感觉有点贴代码的嫌疑。不过中间还是加入了一些自己的理解和心得,希望以后能够慢慢的改进,感兴趣的童鞋凑合着看吧,感觉JUnit这个框架还是值得看的,里面有许多不错的设计思想在,更何况它是Kent Beck和Erich Gamma这样的大师写的。。。。。写在前面的话不知道是因为第一份工作的影响还是受在博客园上看到的
2014-03-18 21:28:10 1181
转载 深入源码之JDK Logging
JDK从1.4开始提供Logging实现,据说当初JDK打算采用Log4J的,后来因为某些原因谈判没谈拢,然后就自己开发了一套,不知道是为了报复而故意不沿用Log4J的命名方式和抽象方式,还是开发这个模块的人水平不够,或没用心,亦或是我用Commons Logging和Log4J习惯了,看JDK的Logging实现怎么看怎么不爽~~~吐个槽额~~~~JDK Logging将日志打印抽象
2014-03-18 21:17:45 827
转载 深入Log4J源码之Log4J Core
毕业又赶上本科的同学会,还去骑车环了趟崇明岛,六月貌似就没消停过,不过终于这些事情基本上都结束了,我也可以好好的看些书、读些源码、写点博客了。Log4J将写日志功能抽象成七个核心类/接口:Logger、LoggerRepository、Level、LoggingEvent、Appender、Layout、ObjectRender。其类图如下:更详细的,实现Log4J
2014-03-18 21:14:24 1196
转载 ScheduledThreadPoolExecutor与System#nanoTime
一直流传着Timer使用的是绝对时间,ScheduledThreadPoolExecutor使用的是相对时间,那么ScheduledThreadPoolExecutor是如何实现相对时间的?先看看ScheduledThreadPoolExecutor中实现定时调度的模型,很简单,内部用了无界的DelayQueue作为线程池的队列,而DelayQueue的内部又使用的是一个PriorityQ
2014-03-18 18:08:29 630
转载 [翻译]JSR 133 (Java Memory Model) FAQ
JSR 133 (Java Memory Model) FAQJeremy Manson and Brian Goetz, February 2004内容列表究竟什么是内存模型?其它语言,像C++,有内存模型吗?JSR133是什么?重排序意味着什么?老的内存模型有什么问题?未正确同步是什么意思?同步做了什么?final字段的值是如何看起来会变的?在新的JMM下final
2014-03-18 18:04:26 681
转载 happens-before俗解
学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。synchronized、大部分锁,众所周知的一个功能就是使多个线程互斥/串行的(共享锁允许多个线程同时访问,如读锁)访问临界区,但他们的第二个功能 —— 保证变量的可见性 —— 常被遗忘。
2014-03-18 17:58:47 710
转载 ScheduledThreadPoolExecutor实现原理
自jdk1.5开始,Java开始提供ScheduledThreadPoolExecutor类来支持周期性任务的调度,在这之前,这些工作需要依靠Timer/TimerTask或者其它第三方工具来完成。但Timer有着不少缺陷,如Timer是单线程模式,调度多个周期性任务时,如果某个任务耗时较久就会影响其它任务的调度;如果某个任务出现异常而没有被catch则可能导致唯一的线程死掉而所有任务都不会再被调
2014-03-18 17:41:09 830
转载 Java Timer&TimerTask原理分析
如果你使用Java语言进行开发,对于定时执行任务这样的需求,自然而然会想到使用Timer和TimerTask完成任务,我最近就使用 Timer和TimerTask完成了一个定时执行的任务,实现得没有问题,但当在TimerTaks的run()方法中使用 Thread.sleep()方式时,可能会出现奇怪的现象,好像Timer失效了,网上查了一下,倒是有人遇到了相同的问题,但是并没有找到一篇解释为什么
2014-03-18 16:58:24 754
转载 Java 编程的动态性,第 1 部分: 类和类装入
研究类以及 JVM 装入类时所发生的情况这一有关 Java 编程动态方面的新的系列文章研究了执行 Java 应用程序时幕后所发生的事情。企业 Java专家 Dennis Sosnoski 提供了 Java 二进制类格式以及在 JVM 内部类所发生的情况的内幕。接着,他将讨论类装入问题,其范围涉及从运行简单的 Java 应用程序所需的类的数量到可能造成 J2EE 及类似的复杂
2014-03-18 00:07:26 568
转载 结合反射与 XML 实现 Java 编程的动态性
反射是 Java 语言被视为动态或准动态语言的一个关键性质,结合反射和 XML 会帮助我们更快、更方便地实现一些动态代码,从而解决编程中可能遇到的不确定问题。本文将结合反射与 XML 对 Java 编程的动态性进行深入浅出的讨论。在理解本文的思想之后,您可以将其应用到程序中以创建灵活的代码。0 评论:张 立达, 实习生2009 年 12 月 30 日
2014-03-17 23:56:48 498
转载 Java 日志缓存机制的实现
本文介绍了 Java 日志机制,并通过扩展日志功能,实现日志缓存。同时,可以动态控制日志信息打印到日志文件的级别,从而提高了日志的灵活性,给产品质量带来更大的帮助。文章主要围绕 MemoryHandler 类和 logging.properties 文件进行扩展,给出了对应的示例代码。0 评论:盛 江涛, 软件工程师, IBM China李 思舒, 软件工程
2014-03-17 23:50:33 1834
转载 Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
这个分为两个部分的系列文章研究了 Apache Tomcat 服务器的系统架构以及其运用的很多经典设计模式。第 1 部分 分析了 Tomcat 的工作原理,第 2 部分将分析 Tomcat 中运用的许多经典设计模式,如模版模式、工厂模式和单例模式等。通过学习它们的实践运用能给我们以后的软件设计起到一定的借鉴作用。3 评论:许 令波, Java 开发工程师, 淘宝网
2014-03-17 22:44:38 515
转载 Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是
2014-03-17 22:42:09 463
转载 大型高性能网站的十项规则
在我们公司 ChinaNetCloud,见 过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的 问题,不能良好运行,也无法变得更流行。在中国, 开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上。它是个可 靠的平台
2014-03-17 21:28:15 529
转载 Java并发基础构建模块简介
在实际并发编程中,可以利用synchronized来同步线程对于共享对象的访问,用户需要显示的定义synchronized代码块或者方法。为了加快开发,可以使用Java平台一些并发基础模块来开发。 注:关于容器类中的常见并发容器和同步容器的类图,详见另一篇文章《Java集合框架图》一 同步容器类 同步容器类主要包括Vector和Hashtable,都是通过Coll
2014-03-17 21:27:02 526
转载 Java 理论与实践: 并发在一定程度上使一切变得简单
util.concurrent 包简介对于每个项目,象许多其它应用程序基础结构服务一样,通常无需从头重新编写并发实用程序类(如工作队列和线程池)。这个月,Brian Goetz 将介绍 Doug Lea 的 util.concurrent包,这是一个高质量的、广泛使用的、并发实用程序的开放源码包。可以通过本文的 论坛提出您对本文的想法,以飨笔者和其他读者。(您也可以单击本文
2014-03-17 21:26:46 511
转载 Apache Tomcat AJP 实现负载均衡
大部分一开始接触WEB服务器的人可能和我一样对为什么有Apache又有Tomcat服务器感到奇怪(它们还都是Apache开发的呵呵),其实他们不是冗余的服务器,虽然他们都能对外提供WEB服务器,但总的来说还是各有侧重点。下面做个简单介绍。 1. Apache是世界排名第一的Web服务器;在Apache基金会里其永远被第一支持。而开源的Apache Tomcat也非常关注
2014-03-17 21:26:23 745
转载 Apache+JK+Tomcat 负载平衡配置
网 上关于 Apache + JK + Tomcat 的集群配置例子很多,按着例子配置下来,基本都能运行,不过,在一些重要的地方却没有进一步的说明。这次公司一个产品就是采用Apache+JK+Tomcat 集群,在整个配置、测试过程中,遇到了许多的问题,经过不断测试、摸索,最后总算是搞定了,性能也达到了预期的目标。针 对网上的例子,感觉有必要再详细的介绍一下我的配置过程,对一些要特别注意的地方进行
2014-03-17 21:26:06 528
转载 apache做负载均衡器 配置
将Apache作为LoadBalance前置机分别有三种不同的部署方式,分别是:1 )轮询均衡策略的配置进入Apache的conf目录,打开httpd.conf文件,在文件的末尾加入:ProxyPass / balancer://proxy/ #注意这里以"/"结尾 BalancerMember http://192.168.
2014-03-17 21:25:35 698
转载 apache+jk+tomcat集群+session同步
apache2+tomcat5.5集群+session同步作者:刘宇 liuyu.blog.51cto.commsn群:[email protected] (linuxtone) 说明:借前人之鉴,写一篇关于tomcat集群及session同步的问题,首先介绍tomcat集成及做集群的原因和必要性,session同步的作用。然后包括各软件的安装配置。 原理:to
2014-03-17 21:25:13 857
转载 apache tomcat 6集群负载和session复制
无意间看到tomcat 6集群的内容,就尝试配置了一下,还是遇到很多问题,特此记录。apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。本文主要介绍最为常见的JK。环境:PC2台:pc1(IP 192.168.88.118)安装了apache和tomcat pc2(IP 192.168.88.
2014-03-17 21:24:41 543
转载 基于nginx的tomcat负载均衡和集群(超简单)
今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点。略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法。 要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了。 你可以自己写tomcat的扩展来保存
2014-03-17 21:24:05 718
转载 图文解说:Nginx+tomcat配置集群负载均衡
作者:niumd Blog:http://ari.iteye.com 转载请注明出处,谢谢 开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,曾有个小小的疑问为何不采用开源的apache、Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一
2014-03-17 21:22:58 571
转载 JUC (Java Util Concurrency) 基础内容概述
目录[-]转自:http://www.goldendoc.org/2011/05/juc/1. JUC概况2. 原子操作3. 指令重排4. Happens-before法则:(Java 内存模型)JMM的特性:volatile语义:5. CAS操作6. Lock 锁7. AQSAQS实现:Atomically managing synchro
2014-03-17 21:22:20 683
转载 设计模式之中介者模式(Mediator)
一、初识中介者模式那些年,我们一起上过的大学,班级里有班长,有团书记。想一想如果没有QQ这种通讯工具的话,那么班长或者团支书该怎样下达消息呢??同时,班级上两个同学之间也可惜沟通啊,沟通一下,院里哪个女生,哪个帅哥呀~~~如果没有QQ的话,大概就是下面的情景:哎呀呀,看看这个乱那。如果同学的数目多起来就会变成网状的结构啦。原本把一个系统分割成一些对象是可以增强复用性的,但是
2014-03-17 11:13:44 464
转载 JAVA虚拟机体系结构
JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。 Java虚拟机实例通过调用某个初始类的main()方法来运行
2014-03-17 10:59:55 500
libgen网站 数据库备份
2023-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人