Below you will find pages that utilize the taxonomy term “分布式”
October 18, 2019
一致性哈希算法及其在分布式系统中的应用(推荐)
"\u003ch1 id=\"摘要\"\u003e摘要\u003c/h1\u003e\n\u003cp\u003e本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。\u003c/p\u003e\n\u003ch1 id=\"分布式缓存问题\"\u003e分布式缓存问题\u003c/h1\u003e\n\u003cp\u003e假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Memcached作为缓存机制。现在我们一共有三台机器可以作为Memcached服务器,如下图所示。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1.png\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003e很显然,最简单的策略是将每一次Memcached请求随机发送到一台Memcached服务器,但是这种策略可能会带来两个问题:一是同一份数据可能被存在不同的机器上而造成数据冗余,二是有可能某数据已经被缓存但是访问却没有命中,因为无法保证对相同key的所有访问都被发送到相同的服务器。因此,随机策略无论是时间效率还是空间效率都非常不好。\u003c/p\u003e\n\u003cp\u003e要解决上述问题只需做到如下一点:保证对相同key的访问会被发送到相同的服务器。很多方法可以实现这一点,最常用的方法是计算哈希。例 …\u003c/p\u003e"
November 11, 2010
分布式数据库拆表拆库的常用策略
"\u003cp\u003e在大容量,高负荷的web系统中,对数据库进行一系列拆分,可有效提升数据库容量和性能。在初学程序的早期,程序员通常都喜欢按传统数据库设计模式,设计为单库和单一功能表的结构,这样的结构在数据量和并发量达到一定程度之后,会出现严重性能问题和维护问题。在出现问题的时候才着手进行优化,会非常痛苦,所以应该在系统架设之初就考虑好之后会出现的问题。\u003c/p\u003e\n\u003cp\u003e目前有些数据库策略是采用单库结构,然后通过同步分发到数台服务器实现读写分离。个人觉得这样的策略非常笨拙,还是想办法将其分隔开来好,否则每台机器的内存都很容易超支。\u003c/p\u003e\n\u003cp\u003e一般只对数据量比较大的表进行拆分,这应该没有什么异议;还有一种是有可能会进行维护的比较重要的表,比如文章目录表,如果有从其它系统倒数据进来的可能的话,也要拆掉,不然倒数据时一不小心把目录表弄坏了,发现忘了备份,那真是欲哭无泪。\u003c/p\u003e\n\u003cp\u003e下面来分析一下:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、时间结构\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果业务系统对时效性较高,比如新闻发布系统的文章表,可以把数据库设计成时间结构,按时间分有几种结构:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e平板式\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e表类似:\narticle_200901\narticle_200902\narticle_200903\u003c/p\u003e\n\u003cp\u003e用年来分还是用月可自定, …\u003c/p\u003e"
September 26, 2010
MooseFS分布式文件系统安装向导
"\u003cp\u003e中文版下载: \u003ca href=\"/wp-content/uploads/2010/09/moosefs-step-by-step-tutorial-cn-v.1.1.rar\"\u003eoosefs-step-by-step-tutorial-cn-v.1.1.rar\u003c/a\u003e\u003c/p\u003e"
September 1, 2010
开源软件keepalived实现分布式数据分发
"\u003cp\u003e大家都看到过在支付宝架构图里面一个分布式数据分发中心(Gara系统),这个分布中心为了完成每天的数据抽取和向多个Oracle Rac集群和Greenplum集群分布数据的心脏,数据仓库系统是一切系统数据来源。其中功能是为了完成异构数据抽取和装载。\u003c/p\u003e\n\u003cp\u003e为了使Gara实现高效性和线性扩展能力,现在alipay dw是用4台高性能PC Dell R900(4*4core,128GB memory)来实现,但是Gara原来开发的程序不能实现分布式,只能通过调度系统来控制,灵活性不够强。\u003c/p\u003e\n\u003cp\u003e最近发现一个开源软件 Keepalived,能很好来实现Gara高效性和线性扩展能力,很多人用来 Keepalived网站的负载均衡,Keepalived还有一个重要的特性就是实现高可用性,就利用这个特性来实现Gara分布式管理\u003c/p\u003e\n\u003cp\u003eKeepalived可以提供IP层的高可用性, 一旦某一台机器的网络出现问题, 另一台服务器会立即(几秒或者更少的时间)使用出故障的服务器的IP进行工作。\u003c/p\u003e\n\u003cp\u003ekeepalived体系架构图:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/09/1252109344_11666ae6.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1252109344_11666ae6.jpg\" alt=\"\"\u003e\u003c/a\u003e\nkeepalived体系架构很清晰,都模块化的,跟我们目前开发的调度系统架构非常相像,大家可以去 …\u003c/p\u003e"
September 1, 2010
分布式key/value存储系统比较
"\u003cp\u003e先介绍一下绍一些流行的分布式key/value存贮系统,并做一些简单的比较。\u003c/p\u003e\n\u003cp\u003e词汇与背景阅读:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Distributed_hash_table\"\u003eDistributed Hash Table (DHT)\u003c/a\u003e and algorithms such as Chord or Kadmelia\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html\"\u003eAmazon’s Dynamo Paper\u003c/a\u003e, and \u003ca href=\"http://www.readwriteweb.com/archives/amazon_dynamo.php\"\u003ethis ReadWriteWeb article about Dynamo\u003c/a\u003e which explains why such a system is invaluable\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://aws.amazon.com/simpledb/\"\u003eAmazon’s SimpleDB Service\u003c/a\u003e, and \u003ca href=\"http://gigaom.com/2007/12/14/amazon-simple-db/\"\u003esome\u003c/a\u003e \u003ca href=\"http://www.satine.org/archives/2007/12/13/amazon-simpledb/\"\u003ecommentary\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://labs.google.com/papers/bigtable.html\"\u003eGoogle’s BigTable paper\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Paxos_algorithm\"\u003eThe Paxos Algorithm\u003c/a\u003e – read this page in order to appreciate that knocking up a Paxos implementation isn’t something you’d want to do whilst hungover on a Saturday morning.\u003c/p\u003e\n\u003cp\u003e现有比较流行的key/value存储系统:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/09/1264740160_1835db83.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1264740160_1835db83.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下评 …\u003c/p\u003e"