浅谈分布式系统的基本问题:可用性与一致性

摘要 该文章来自于阿里巴巴技术协会(ATA)精选文章。 背景         可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖...

[......]

阅读全文

fourinone

FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协同和故障处理。如果仅仅是为了实现这个简单的初衷,为什么一切会那么复杂,我觉的自己可以写一个更简单的东西,它不需要过度设计,只需要看上去更酷一点,更小巧一点,功能更强一点。于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。[......]

阅读全文

用Redis实现分布式锁与实现任务队列

这一次总 结和分享用Redis实现分布式锁 与 实现任务队列 这两大强大的功能。先扯点个人观点,之前我看了一篇博文说博客园的文章大部分都是分享代码,博文里强调说分享思路比分享代码更重要(貌似大概是这个意思, 若有误请谅解),但我觉得,分享思路固然重要,但有了思路,却没有实现的代码,那会让人觉得很浮夸的,在工作中的程序猿都知道,你去实现一个功能模块,一 段代码,虽然你有了思路,但是实现的过程也是很耗时的,特别是代码调试,还有各种测试等等。所以我认为,思路+代码,才是一篇好博文的主要核心。[......]

阅读全文

支撑分布式Scrum团队的5项最佳实践

分布式 Scrum,从来都不简单。

Scrum 的基石 —— 透明性、开放性、自组织 —— 在分布式 Scrum 团队的环境下的实践难度均有着不同程度的提高,沟通协作障碍重重、团队建设难上加难。但与此同时,受成本节约的影响,很多公司又认为分布式 Scrum 是大势所趋。[......]

阅读全文

Jedis使用总结 [pipeline][跨jvm的id生成器][跨jvm的锁实现[watch][multi]][redis分布式]

【pipeline】【跨jvm的id生成器】【跨jvm的锁实现【watch】【multi】】【redis分布式】
好了,一个一个来。
一、 Pipeline
官方的说明是:starts a pipeline,which is a very efficient way to send lots of command and read all the responses when you finish sending them。简单点说pipeline适用于批处理。当有大量的操作需要一次性执行的时候,可以用管道。[......]

阅读全文

分布式系统的事务处理

当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:

1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。

2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。

于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:[......]

阅读全文

分布式存储系统Tachyon

Tachyon 是一个高容错的分布式文件系统,允许文件以内存的速度在集群框架中进行可靠的共享,类似Spark和 MapReduce。通过利用lineage信息,积极地使用内存,Tachyon的吞吐量要比HDFS高300多倍。Tachyon都是在内存中处理缓存文件,并且让不同的 Jobs/Queries以及框架都能内存的速度来访问缓存文件。[......]

阅读全文

徐汉彬:亿级Web系统搭建——单机到分布式集群

摘要:随着数据暴增,单服务器开始疲于应对海量用户的访问。自本期《问底》,徐汉彬将带大家开启异地跨集群分布式系统打造,本次关注的重点则是架构从单机到分布式集群的转变。
Web系统的缓存机制的建立和优化[......]

阅读全文