自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LMAX架构(转)

 LMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单. 业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(event sourcing). 业务逻辑处理器的核心是Disruptors,这是一个并发组件,能够在无锁的情况下实现网...

2013-12-31 17:48:01 261

原创 如何让Java以光的速度跨线程通信?

一个比Disruptor吞吐量等性能指标更好的框架,使用Railway算法,将线程之间的消费发送参考现实生活中火车在站点之间搬运货物。目标起始于一个简单的想法:创建一个开发人员友好的,简单的,轻量级线程间的通信框架,无需使用任何锁,同步器,信号量,等待,通知以及没有队列,消息,事件或任何其它并发特定的语法或工具。只是一个Java接口接受到POJO以后在其背后实现这个通信,这个主意很类似Akk...

2013-12-31 14:52:43 119

原创 搜索引擎 Nutch

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益.这显然 不利于广大Internet用户. Nutch为我们提供了这样一个不同的选择....

2013-12-31 14:52:27 119

原创 Java开源缓存框架

   JBossCache/TreeCache JBossCache 是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行Jboss服务器之间的集群工作。 JBossCache能够通过Jboss应用服务或其他J2EE容器来运行一个Mbean服务,当然,它也能独立运行。 JBossCache包括两个模块:TreeCache和TreeCa...

2013-12-31 14:52:08 121

原创 Node.js 的 Web 框架 KrakenJS

Kraken 是 Paypal 公司的一个开源的 Node.js 的 Web 框架。目录结构:/config - Application and middleware configuration/controllers - Controllers/lib - Custom developer libraries and other code/locales - L...

2013-12-31 14:51:40 110

原创 epoll

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。     不管是文件,还是套接字,还是管道,我们都可以把他们看作流。     之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读...

2013-12-30 09:23:45 80

原创 libevent入门教程:Echo Server based on libevent

ent_set_timeouts(bev, struct timeval *READ, struct timeval *WRITE)来设置读写超时, 在error_cb里面处理超时。    *. read_cb和write_cb的原型是        void read_or_write_callback(struct bufferevent *bev, void *arg)      err...

2013-12-30 09:23:04 88

原创 新一代Java模板引擎 jetbrick-template 1.1.3 发布

全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 1.1.3 正式版发布。   jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性。 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板。 指令和 Velocity 相似,表达式和 Java 保持一致,...

2013-12-30 09:22:37 120

原创 Github 中被 Fork 最多的库

 Boilerplate(H5BP) 一个HTML/CSS/JS模板(技巧集合),包含了HTML5以及许多其他最佳实践。 Fork:2337Star:14468Pull Request:2分支:37.  Node(Joyent) 一套用来编写高性能网络服务器的JavaScript工具包。 Fork:2300Star:17197Pull Request:84...

2013-12-30 09:22:09 167

原创 GitHub中最火的开源项目及编程语言

GitHub目前已经成为全球最流行的开源项目托管平台,目前托管在GitHub上的项目数量已经达到了1000万,而达到这一里程碑只用了不到4年的时间,这足以见得开源的趋势以及GitHub的受欢迎程度。 2012年8月,GitHub在每个项目主页面中加入了Star功能,允许用户通过标注Star的形式来标记自己感兴趣的项目。  最火的开源项目 本文就来看看目前GitHub中S...

2013-12-29 12:41:50 125

原创 Java性能监控的一些记录

本篇所有内容都是基于JDK5,如使用JDK6会有差别。  在前些日子,我们做了一些性能监控的工作,有一些值得记录的地方:  JDK自身提供了很多工具,基于命令行和GUI的都有,学会合理应用它们是很有用处的。  首先是jmap,这是一个命令行程序,用来查看JVM中对象数量情况,直接输入jmap会显示用法,下面是两个常用的功能:  Java代码 jmap -histo '...

2013-12-29 12:40:22 94

原创 Spring4新特性——注解、脚本、任务、MVC等其他特性改进

 一、注解方面的改进spring4对注解API和ApplicationContext获取注解Bean做了一点改进。获取注解的注解,如@Service是被@Compent注解的注解,可以通过如下方式获取@Componet注解实例:Java代码  Annotation service = AnnotationUtils.findAnnotation(ABS...

2013-12-29 12:39:38 192

原创 可伸缩性最佳实践:来自eBay的经验(转)

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消...

2013-12-29 12:36:08 74

原创 从Twitter到Tinder,看社交媒体在2013年的沉浮(转)

http://www.csdn.net/article/2013-12-27/2817949-social-medias

2013-12-29 11:20:49 154

原创 java服务,cpu高,内存高,telnet不通排查及分析

一个java服务的异常排查及分析过程,以备将来参考。 java服务的异常主要表现为3点:1.cpu使用率高;2.内存占用较大;3.本机telnet访问服务被拒绝 具体情况:1.cpu高。启动时会打到800%以上,访问量不大的时段,top看到使用率在100-400%之间,基本稳定在100%-200%左右。 2.内存高。启动后java服务占用的内存不断增大,服...

2013-12-26 22:21:09 245

原创 MYSQL启用日志,和查看日志

mysql有以下几种日志:    错误日志:     -log-err    查询日志:     -log    慢查询日志:   -log-slow-queries    更新日志:     -log-update    二进制日志: -log-bin 是否启用了日志 mysql>show variables like 'log_%'; 怎样知道当前的日志 mysql> show m...

2013-12-26 22:12:39 113

原创 mysql优化: 内存表和临时表

由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法。但内存表和临时表的区别且并不熟悉,需要查找资料了。 一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时表是存在于磁盘上的。而实际操作中发现临时表创建后去目录下查看发现并没有发现对应的临时表文件(未断开链接).因而猜测临时表的数据和结构都是存放在内存中,而不是在磁盘中. 这样一想内存表不是也是存在在...

2013-12-26 22:08:49 105

原创 BTrace用户手册<转>

BTrace(https://btrace.dev.java.net/) 是一个非常不错的java诊断工具, 最近试着用了一下, 文档比较少, 主要是看例子吧. BTrace 中的B表示bytecode, 表明它是在字节码层面上对代码进行trace 用来在运行中的java类中注入trace代码, 并对运行中的目标程序进行热交换(hotswap) 术语 Probe Point 在何处执行trace...

2013-12-26 10:52:01 103

原创 maven生成war包的两种方式

war包即对WEB应用程序进行打包,用于应用容器的部署。如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了。打包方式有很多中,很多工具本身就支持此功能。下面主要介绍通过maven来操作的两种方式: 方法一:   即第一反应的那种啦,就是利用maven的maven-war-plugin。 Xml代码  &lt;build&gt;     ...

2013-12-26 09:58:45 87

原创 基于Java技术的大型网站架构方案

Web层 主体架构可以基于 Struts 1.X/2.X,当然有很多更好的控制层框架供选择,以快速敏捷为准则吧。抽象出核心库封装 控制器和中间层 的操作。在大规模集群环境下,session复制会引起严重的性能问题。考虑用 集群缓存 + cookie验证 代替session实现权限控制吧。Cache层配置 Memcache 组成集群缓存 对 Memcache 客...

2013-12-25 10:35:25 69

原创 建立一个公共仓库

建立一个公共仓库假设你个人的仓库在目录 ~/proj. 我们先克隆一个新的“裸仓库“,并且创建一个标志文件告诉git-daemon这是个公共仓库.$ git clone --bare ~/proj proj.git$ touch proj.git/git-daemon-export-ok上面的命令创建了一个proj.git目录, 这个目录里有一个“裸git仓库" -- ...

2013-12-25 10:35:00 273

原创 Git下的冲突解决

冲突的产生很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突。而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突。git pull会自动merge,repo sync会自动rebase,所以git pull和repo sync也会产生冲突。当然git rebase就更不用说了。冲突的类型逻辑冲突git自动处理(...

2013-12-25 10:34:38 84

原创 使用 Gitk 跟踪 Git 项目源代码

看源代码是学习编程最快、最有效的方法之一,在 Linux 开源的大环境下,研究源代码就更加容易了。面对一个大一点的项目,我们可能无从下手,那么,何不从其雏形阶段开始研究呢?我现在就在研究 Tualatrix 兄的 ubuntu-tweak 的源代码,以前 ubuntu-tweak 托管于 Google Code 的时候,Google Code 对各版本差异分析得很清楚,然而转向 git...

2013-12-25 10:34:11 184

原创 git diff

在git提交环节,存在三大部分:working tree, index file, commit这三大部分中: working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。 index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变...

2013-12-25 10:32:13 51

原创 哪些用户指标值得关注?(转)

假设你想用尽量简洁有效的数据了解一个网站或产品的用户情况,你会问哪几个用户数据?其实一个聪明的提问者永远不会问网站的累计用户数有多少,甚至不会问网站的UV是多少,因为这些指标都不能从真正意义上去反映网站的价值和发展状况。 用户的细分方式我不建议把用户细分成许许多多的类型,目前为止见过的用户细分的类别也不在少数,罗列出来应该有一大串:当前用户、新老用户、活跃用户、流失用户、 留存用户...

2013-12-24 09:42:26 158

原创 JavaScript 通讯框架 NowJS

NowJS 是一个实现了 JavaScript 服务器端进行通讯的框架,基于 Node.js 开发。示例代码:服务器端:&lt;script src="/nowjs/now.js"&gt;&lt;/script&gt;var everyone = require("now").initialize(httpServer);everyone.now.getServerIn...

2013-12-24 09:42:10 196

原创 ThreadLocal工作原理

 1.概述    ThreadLocal为我们解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。    ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名ThreadLocalVariable更容易让人理解一些。    当使用Thr...

2013-12-24 09:41:53 87

原创 JSP布局框架 JSP Layout

JSP Layout 是一个用来实现 JSP 布局支持的简单示例项目。该项目只需要一个 Servlet 类,一些配置即可。下载的压缩包中包含一个完整的项目,可直接导入 Eclipse 进行编译。运行时只需要在 Tomcat 或者其他应用服务器上配置一个web应用,并将路径指向解压后的webapp目录即可。例如:&lt;Context path="" docBase="D:\WORKDIR\...

2013-12-24 09:41:30 2353

原创 rebase

假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b mywork origin现在我们在这个分支做一些修改,然后生成两个提交(commit).$ vi file.txt$ git commit$ vi otherfile.txt$ git commit...但是与此同时,有些人也在"origi...

2013-12-24 09:40:47 103

原创 一步步构建大型网站架构

谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但makesi告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。架构演变第一步:物理分离webserver和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能...

2013-12-23 12:38:15 82

原创 How to Manage Maven Third Party Jars

bin/mvn-install.sh view sourceprint?01.#!/usr/bin/env bash02.#03.# Install local jar files into Maven repository. The artifact name would be same04.# as the filename minus the exte...

2013-12-23 12:37:06 124

原创 Twitter网站架构介绍(转)

作为140个字的缔造者,twitter太简单了,又太复杂了,简单是因为仅仅用140个字居然使有几次世界性事件的传播速度超过任何媒体,复杂是因为要为2亿用户提供这看似简单的140个字的服务,这真的是因为简单,所以复杂。可是比较遗憾的是目前在中国大陆twitter是无法访问的,但作为一个爱好架构的程序猿,这道墙是必须得翻的,墙外的世界更精彩。今天就结合网络上的一些资料,来浅谈一下我对twitter...

2013-12-23 12:36:45 320

原创 zookeeper使用和原理探究

zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的&lt;The Chubby lock service for loosely-coupled distributed systems&gt;论文来实现的,接下来我们首先来安装使用下这个软件,然后再来探索下其中比较重要一致性算法。  zookeep...

2013-12-23 12:35:57 146

原创 Distributed RPC

Distributed RPCThe idea behind distributed RPC (DRPC) is to parallelize the computation of really intense functions on the fly using Storm. The Storm topology takes in as input a strea...

2013-12-23 12:34:59 126

原创 框架、模式、架构、构件、组件、中间件概要

简单来说:框架(Framework) 解决某一方面应用问题的半成品软件模式(Pattern) 为解决某一类问题而提出的一种解决方案,是方法论。架构(Architecture) 整体解决方案构件(Component) 可复用的软件组成成份组件 对象(封装数据和方法)中间件 基于分布式处理的一类软件(位于网络和应用程序之间)一、框架(Framework)框架,即Framework。其实就是某种应用...

2013-12-21 14:12:27 365

原创 二进制、八进制、十进制、十六进制之间转换

一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(101...

2013-12-21 14:11:38 81

原创 git tutorial

introductionI’ve been working with a group of people known as qworky making some cool meeting software for all y’all. A few people on the team aren’t too familiar with distributed version control ...

2013-12-21 14:11:13 80

原创 Git错误non-fast-forward后的冲突解决

当要push代码到git时,出现提示:error:failed to push some refs to ...Dealing with “non-fast-forward” errorsFrom time to time you may encounter this error while pushing:$ git push origin master  To ../re...

2013-12-21 14:10:10 80

原创 How to merge remote changes at GitHub?

http://stackoverflow.com/questions/1713137/how-to-merge-remote-changes-at-github

2013-12-21 14:09:35 87

原创 Facebook 网站架构总结

Facebook是一个社会化网络站点,它于2004年2月4日上线。每个用户在facebook上有自己的档案和个人页面,用户之间可以通过各种方式发生互动:留言、发站内信,评论日志。虽然目前在国内无法访问facebook,但其强悍的技术架构还是值得我们去研究分析和总结的,或许我们可以从中得到一点启发。 facebook的设计原则是模块化原则、整合化原则、清晰化原则,其架构设计的目标是简单、...

2013-12-19 10:05:18 102

空空如也

空空如也

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

TA关注的人

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