- 浏览: 316304 次
- 性别:
- 来自: 长沙
最新评论
-
完善自我:
支持一下!
揭秘IT人才特点:中美印日四国程序员比较 -
悲剧了:
好文,看玩thinking in java的提到的异常处理,看 ...
高效的Java异常处理框架(转) -
yin_bp:
开源框架bbossgroups页支持组件异步方法调用哦,详情请 ...
Spring 3中异步方法调用 -
flyjava:
sun的悲哀
Apache怒了,威胁说要离开JCP
文章列表
本文介绍的
SmugMug
是一家提供付费图片托管服务的站点,在 2002 年由 Chris MacAskill 与 Don MacAskill 父子二人创建,最初提供面向游戏的视频服务,随后转型为现在的模式。网站流量现在是全球 1800 多,盈利能力自称良好。
在 MySQL Conf 2009 上,SmugMug 的
Don MacAskill
做了一次关于SmugMug 网站架构
的分享。
SmugMug 整个网站采用 LAMP 架构(其实也有 OpenSolaris),300 多台 4 核(或更多)的服务器(大多是 AMD 的 CPU) ,分散在四个机房 ...
日前参加了一场淘宝网
架构师黄裳带来的技术分享,在最后他总计了淘宝这几年来的架构经验,这里和大家分享一下:
1、适当放弃一致性
2、备份和隔离解决稳定性问题
3、分割和异步解决性能问题(类似 eBay 的 Asynchrony Everywhere)
4、自动化降低人力成本(类似 eBay 的 Automate Everything)
5、产品化管理
在这里不妨对比一下 eBay 的架构经验:
1、 Partition Everything
2、 Asynchrony Everywhere
3、 Automate Everything
4、 Remember Ev ...
异步
同步调用使得组件和组件之间紧密耦合起来,这样就使得要想伸缩应用就需要伸缩所有的组件,这不仅带来使得伸缩的成本增加,而且这种高度耦合性使得伸缩变得更加困难。因此我们需要从应用角度划分出,哪些业务操作是紧密关联的,哪些是可以异步
执行的,划分出那些可以异步
执行的操作,然后将其进行异步
化处理(比如通过JMS,事件队列,多播消息等或者线程池等),这样划分的好处就是系统可以应对更大的访问量,消弱访问峰值,比如在同步的时候A调用了B,那么用户能接受响应时间就是A处理时间+B处理的时间,而采用异步
以后,当访问量增大的时候,因为A和B异步,那么A很快返回,用户体会不到延 ...
这篇文章讲了伸缩性
和可用性方面的反模式,也按照自己的理解翻译了一下,欢迎各位探讨。1 单点失败(Single Point of Failure)
大部分的人都坚持在单一的设备上部署我们的应用,因为这样部署的费用会比较低,但是我们要清楚任何的硬件设备都会有失败的风险的,这种单点失败会严重的影响用户体验甚至是拖垮你的应用,因此除非你的应用能容忍失败带来的损失,否则得话应该尽量的避免单点风险,比如做冗余,热备等。2 同步调用
同步调用在任何软件系统中都是不可避免的,但是我们软件工程师必须明白同步调用给软件系统带来的问题。如果我们将应用程序串接起来,那么系统的可用性就会低于任何一个单 ...
我曾经DCI架构是什么?
在一文中提到Qi4j框架实现DCI
架构比较好,dzone今天就有一篇文章专门谈Implementing
DCI
in Qi4j。
DCI是一种新的构建面向对象应用的方法途径,DCI: Data数据, Context场景, Interaction交互。该文谈了如何使用DCI
构建一个REST
API。Roles
DCI核心思想是:对象不是由单个类如POJO组成的,而是使用Roles角色来组合组装功能,再具体一点,当我们在这里说“对象Object”,是指
DCI是数据Data 场景Context 交互Interactions的简称,DCI是一种特别关注行为的模式(可以对应GoF行为模式),而MVC模式是一种结构性模式,MVC模式由于结构化,而可能忽视了行为事件。我在javascript事件总线
一文中也谈过这个问题,Javascript这种函数式functional语言能够帮助我们更加注重行为事件。
DCI可以说是函数式functional编程比如Scala带来的一个理念,The
DCI
Architecture: A New Vision of Object-Oriented Programming一文(以下简称DCI
...
如今,异步 EDA是一个潮流,滚滚而来,让我们看看主流框架Spring 3.0新版本有没有顺应这新趋势,Asynchronous method invocation in Spring 3.0
介绍了异步
使用。
@Async让方法能够被异步
调用,以及定时运行。如下:
@Component
public class MailUtility {
@Async
public void sendMail(String name){
System.out.println(” I Will be formatting html mail and send ...
当设计并发策略时,要将 "what做什么"和 "how怎么做"进行分离,Prefer Futures to Baked-In "Async APIs"
一文介绍了如何使用语言的并行API通过异步
来实现这点。
普通同步性质的方法如下:
RetType DoSomething(
InParameters ins,
OutParameters outs
);
如果DoSomething 将花费很长时间执行,无论它是否耗费CPU,比如从数据库中加载一个数据就是很耗费时间的,那么是不是在DoSom ...
asyn4j 是一个java异步方法调用框架,包括了异步方法执行,异步回调执行,异步工作缓存模块.支持Spring.
让我们写异步方法不再写很多的相关多线程代码。用asyn4j轻松搞定异步方法调用.提高程序的响应能力.
使用说明详见:http://code.google.com/p/asyn4j/wiki/user_guide
Everyone loves client side templates.
They are a great way to create html
which is something JavaScript apps do all the time.
In February, a jQuery templating system was
proposed
and resulted in a tremendous amount of
discussion
, followed by an
official templating engine for jQu ...
Thursday 11 November, 2010 by justinbmeyer
Earlier this week, I realized that every
organizing-a-jQuery-application blog, article, and
conference talk misses the
most important lesson on how to organize a jQuery app.
They talk about how to organize an individual widget
or piece of functional ...
This post is part of our ReadWriteHack channel, which is a resource and guide for developers. The channel is sponsored by the Intel AppUp Developer Program
. As you're exploring these resources, check out this helpful resource from our sponsors: AIR for AppUp: What You Need To Know
Jupiter ...
你应该听过或读过不少关于测试驱动开发的讨论,测试驱动开发往往被比喻为神奇的独角兽,它能帮你照看你的软件,让大家乐得其所。于是,在写了18.000行“神奇独角兽”代码后,我想把我们的体验从整体的角度阐述一下。
...
Git
是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius
和Merb
在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano
和Vlad the Deployer
这样的部署工具所使用。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub
可以托管各种git库,并提供一个web界面,但与其它像
So ...
his post is part of our ReadWriteHack channel, which is a resource and guide for developers. The channel is sponsored by the Intel AppUp Developer Program
. As you're exploring these resources, check out this helpful resource from our sponsors: AIR for AppUp: What You Need To Know
There's a ...