![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
1.1.1.9 分布式系统工程
文章平均质量分 75
ajian005
这个作者很懒,什么都没留下…
展开
-
生产力到软件结构的关系
一、社会结构关系因为经济基础就是占主导地位的生产关系。1、联系生产力,是因为生产力决定生产关系,生产关系对生产力有反作用。2、联系上层建筑,是因为占统治地位的生产关系即经济基础决定上层建筑,上层建筑对各种生产关系有反作用。二、生产力生产力指具有一定生产经验和劳动技能的劳动者和他们所使用的生产资料结合起来, 从而在物质资料生产过程中所发生的力量, 也就是人类在生产过程中征服和改造自然界, 并获得适合自己需要的物质资料的能力。三、生产关系生产关系指人们在物质资料.原创 2021-03-07 22:38:47 · 578 阅读 · 3 评论 -
微服务 | Martin Fowler
“微服务架构”这一术语在前几年横空出世,用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。尽管这种架构风格尚无明确的定义,但其在下述方面还是存在一定的共性,即围绕业务功能的组织、自动化部署、端点智能、以及在编程语言和数据方面进行去中心化的控制。本文目录 微服务架构的九大特性 特性一:“组件化”与“多服务” 特性二:围绕“业务功能”组织团队 特性三:“做产品”而不是“做项目” 特性四:“智能端点”与“傻瓜管道” 特性五:“去中心化”地治理转载 2020-09-04 11:24:20 · 260 阅读 · 1 评论 -
NoSQL漫谈 NoSql = Not Only Sql != No Sql
文章分类:综合技术原文出处:http://hi.baidu.com/yandavid/blog/item/bf13ee03a326b0e209fa931f.html.com.cn(原文有图)NoSQL漫谈 NoSql = Not Only Sql != No Sql什么是NoSQL?wiki上的定义是“NoSQL is a movement promoting a loosely defined class of non-relational data stores that break wit转载 2011-02-17 16:27:00 · 1951 阅读 · 0 评论 -
[摘选]memcached全面剖析—— 客户端选择(一致性哈希算法)
<br />参考:memcached完全剖析–1. memcached的基础 http://tech.idv2.com/2008/07/10/memcached-001/<br /> <br />memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。<br />memcached的分布算法一般有两种选择:<br />1、hash模余算法:<br /> 根据hash(key)的结果,模连接数的余数决定存储到哪个节点(键的整数哈希值,根据服务器个数取余来选定服务器节点),也就转载 2011-02-17 17:07:00 · 1265 阅读 · 0 评论 -
ACID, BASE和CAP
<br />关键词 ACID、 BASE、 CAP、 分布式<br /> <br />什么是CAP?<br /> CAP: Consistency 一致性;Availability 可用性; Tolerance of network Partition 分区容忍性(可理解为部分节点故障或节点之间连接故障下系统仍可正常工作)。Brewer提出的该经验理论认为这三个目标最多只能达成两个,而另一个则需 要通过其他方式来弥补。 <br /> <br />什么是ACID?<br /> DBM原创 2011-02-17 16:23:00 · 1795 阅读 · 0 评论 -
系统架构设计应考虑的问题
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。<br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在原创 2011-02-17 17:25:00 · 3749 阅读 · 0 评论 -
架构师书单
架构师书单一、Software Architecture篇<br /> 这个领域没有什么"畅销书",可能读者中本来就是开发设计人员与项目经理占了多数,真正定位为架构师而且做的也是架构师工作的不多吧,你懂的尽是偏僻的人生。<br /> 《Software Architecture in Practice,2nd Edition--软件构架实践(第2版)》<br /> 第一版是第九届JOLT作品,一本被引用很多的架构书。<br />《Documenting Software Architectu原创 2011-02-17 17:29:00 · 1460 阅读 · 0 评论 -
云计算
<br /> 关键字 云计算 、分布式、基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)、<br /><br />1什么是云计算?<br /> <br />云计算(英文:Cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。整个运行方式很像电网。<br />云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细原创 2011-02-17 16:04:00 · 1451 阅读 · 0 评论 -
大型高并发高负载web应用系统架构-缓存架构策略
<br />目前在网站的架构构成中普遍使用到缓存来提供WEB应用的性能,由于网站规模的不同,分别存在如下几种类型的缓存架构。<br />(1)单机缓存<br />(2)简单分布式缓存<br />(3)使用复制方式的缓存集群<br />(4)使用散列方式的缓存集群<br />(5)高性能高、可靠的缓存集群<br />下面对于上述几种缓存策略的实际应用的适用情况以及优缺点进行详细分析,当然并没有一个缓存的教条存在,有的只是参考案例,对于具体的应用来讲要具体分析。<br /> <br />(1)单机缓存<br转载 2011-02-17 16:57:00 · 803 阅读 · 0 评论 -
系统构架设计应考虑的因素
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。<br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在明确定义的构架环转载 2011-02-17 17:22:00 · 1294 阅读 · 0 评论 -
Jgroup
<br />服务器开发中,经常要同步几台数据库服务器的数据,同步数据要好几种,比如说在linux中,经常用rsync来同步数据或者写几个Servlet来同步服务器数据,因为我最近学习到JGroup这个通讯工具,所以利用它来更新一些不同服务器上的memcache的数据。一、JGroups 简介<br />JGroups是一个基于Java语言的提供可靠多播(组播)的开发工具包。在IP Multicast基础上提供可靠服务,也可以构建在TCP或者WAN上。主要是由Bela Ban开发,属于JBoss.转载 2011-06-01 22:42:00 · 2352 阅读 · 0 评论 -
Tomcat5集群中的SESSION复制
第一部分 原文地址:http://www.onjava.com/pub/a/onjava/2004/11/24/replication1.htmlTomcat5服务器为集群和SESSION复制提供了集成的支持。本系列的第一篇文章将为大家提供SESSION持久性以及TOMCAT集群中SESSION复制的内在工作机制一个概要认识。我将会讨论SESSION复制在TOMCAT5中是怎样进行的以及跨越多集群节点的SESSION持久性的复制机制。在第2部分,我会详转载 2011-06-01 23:09:00 · 1590 阅读 · 0 评论 -
几种常见的基于Lucene的开源搜索解决方案对比
几种常见的基于Lucene的开源搜索解决方案对比[转]http://blog.fulin.org/2010/11/search_solutions_compare.html<br />一 直接使用 Lucene ( http://lucene.apache.org )说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,转载 2011-06-01 23:27:00 · 1319 阅读 · 0 评论 -
JVM调优总结
一、相关概念 基本回收算法 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep) 此算法执行分两转载 2011-06-06 14:47:00 · 1292 阅读 · 0 评论 -
JVM调优总结(精)
转自:http://pengjiaheng.javaeye.com/blog/518622搜索JVM调优发现的好文,转载共赏 JVM调优总结-序 几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西。突然发现,基础真的很重要。学习的过程是一个由表及里,再由里及表的过程。呵呵,所谓的“温故而知新”。而真正能走完这个轮回的人,也就能称转载 2011-06-06 14:52:00 · 1864 阅读 · 0 评论 -
淘宝iDataForum归来
今天参加了淘宝的iDataForum,收获不少。详细的PPT过段时间能发在官方网站上。Topic 1:淘宝架构的变迁。这个topic主要讲淘宝这几年数据库面临的一些问题以及问题的解决。下面的数据还是老一些的数据。淘宝现在有10亿种商品。小文件和图片加起来有1000T转载 2011-06-06 16:14:00 · 1311 阅读 · 0 评论 -
说说IO - IO的分层
说说IO(一)- IO的分层 IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。IO系统转载 2011-06-07 11:00:00 · 2090 阅读 · 0 评论 -
13种提高系统伸缩性的最佳实践
1, 尽可能地使用异步通信.2, 为提供不同服务的硬件引入故障隔离.3, 在多层系统中, 使用Cache.4, 从用户角度监控你的系统性能.5, 使用数据库复制, 降低单点读压力.6, 根据用户和业务的不同, 将应用或数据库分片.7, 减少使用关系型数据库的复杂特性. 尽可能把它当做是一个持久存储设备.8, 以循序渐进的方式升级系统, 先转载 2011-06-10 22:36:00 · 1621 阅读 · 0 评论 -
分布式系统的数据结构
<br />本文链接地址: http://www.nosqlnotes.net/archives/134<br />常用的数据结构包括:数组,队列,堆栈,链表,树(平衡二叉树,B树,Trie树,堆),哈希表,图,后缀数组,等等。其中,堆,图结构,Trie树及后缀数组解决特定问题,其它数据结构解决通用的查找,新增,更新,删除操作。<br />查找,更新和删除操作一般是O(1),O(logN)或者O(N),通用的数据结果大致可分为如下三种:<br />1, 极端型;某些操作的算法复杂度为O(1),另外一些算法复转载 2011-04-28 22:46:00 · 598 阅读 · 0 评论 -
负载均衡算法大全
负载均衡的发展基础就是负载均衡算法。那么针对不同的服务器我们也会采用不同的负载均衡算法,因为他们所具备的和要求的功能各不相同。那么我们现在就来详细了解一下这方面的知识。希望能让大家从中得到需要的东西。服务器负载均衡算法有很多(持续性的和非持续性的),包括轮循算法、最少连接算法、响原创 2011-07-13 18:17:23 · 1150 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰转载 2011-08-20 10:36:04 · 1165 阅读 · 0 评论 -
关于IO的同步,异步,阻塞,非阻塞
上次写了一篇文章:Unix IO 模型学习。恰巧在这次周会的时候,@fp1203 (goldendoc成员之一) 正好在讲解poll和epoll的底层实现。中途正好讨论了网络IO的同步、异步、阻塞、非阻塞的概念,当时讲下来,大家的理解各不相同,各执己见。搜索了网络上的一些文章转载 2011-08-20 11:06:04 · 1310 阅读 · 0 评论 -
分布式设计与开发(二)------几种必须了解的分布式算法
分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加):Paxos算法一致性Hash算法Paxos算法1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发转载 2011-09-18 19:50:30 · 1092 阅读 · 0 评论 -
分布式设计与开发(三)------高一致性服务ZooKeeper
分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分布式的基础服务有以下要求:高可用性高一致性高性能对于这种有些挑战CAP原转载 2011-09-18 19:51:01 · 1188 阅读 · 0 评论 -
分布式设计与开发(一)------宏观概述
在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早转载 2011-09-18 19:49:57 · 1011 阅读 · 0 评论 -
一种可以避免数据迁移的分库分表scale-out扩容方式
种可以避免数据迁移的分库分表scale-out扩容方式目前绝大多数应用采取的两种分库分表规则mod方式dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月份的数据在一个库表)这两种方式有个本质的特点,就是离散性加周期性。例如以一个表的主键对3取余数的方式分库或分表:那么随着数据量的增大,每个表或库的数据量都是各自增长。当一个表或库的数据量增长到了一个转载 2011-11-14 18:11:42 · 1814 阅读 · 0 评论 -
伸缩性、可用性、稳定性(Scalability, Availability & Stability Patterns)
一 自我有要求的读者应该提出问题:(研习:掌握层次:)能力级别:不会(了解)——领会(理解)——熟练——精(why)——通(融汇贯通)1.1 什么是Scalability, Availability&Stability Patterns ? 1.2 以上各个模式都说了些什么? 1.2.1 Scalability Patterns 从State和Behavior都说了些什么? 是简单介原创 2011-05-31 19:06:00 · 5241 阅读 · 0 评论 -
大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行转载 2011-11-02 18:11:40 · 730 阅读 · 0 评论 -
Web容量规划的艺术-要点
twitter上@fire9给我推荐了这本书,花了一些时间把这本书看了两遍,总结性的点评语就是:“书的质量非常的高,一方面这本书中的内容来源于 flickr.com实际的经验,另一方面是作者采用了很多生活中的例子来讲解一些复杂的技术,让人很快就明白了。”下面就具体来看看这本书传达的容量规划该怎么做。容量规划主要分为四个步骤来进行:1、设定容量的目标:例如网站需要在3秒内响应,达到99.99转载 2011-11-03 19:24:02 · 1260 阅读 · 0 评论 -
常用缓存算法简介
没有人能说清哪种缓存算法优于其他的缓存算法。(以下的几种缓存算法,有的我也理解不好,如果感兴趣,你可以Google一下)Least Frequently Used(LFU):大家好,我是 LFU,我会计算为每个缓存对象计算他们被使用的频率。我会把最不常用的缓存对象踢走。Least Recently User(LRU):我是LRU缓存算法,我把最近最少使用的缓存对象给踢走。我总是转载 2011-11-07 15:44:10 · 1054 阅读 · 0 评论 -
开源数据库 Sharding 技术 (Share Nothing)
作者: Fenng| 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/database/database_sharding.html注:此文首发于 《程序员》杂志 2008 年 7 月刊。从 Shard 到 Sharding "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,转载 2011-11-29 21:16:16 · 1280 阅读 · 0 评论 -
Handler-Socket Plugin for MySQL – SQL的功能、NoSQL的性能
记得半年多前写过MySQL vs NoSQL ,且一直以来我比较坚持用数据库存储K/V数据,因为不只是对数据安全等能提供保障,主要是发现大部分系统的qps根本就没那么高,能上4k的水平已经很少了,这点MySQL完全可以满足,因为优化好的K/V请求,在MySQL的SQL层上能实现每核心5k左右的qps,而这一数据在HandlerSocket出来之后,得到了更大的提升。HandlerSocket转载 2011-11-29 21:47:05 · 923 阅读 · 0 评论 -
The C10K problem翻译
The C10K problem如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了。 现在的计算机也很强大了,你只需要花大概$1200就可以买一个1000MHz的处理器,2G的内存, 1000Mbit/sec的网卡的机器。让我们来看看--20000个客户,每个为50KHz,100Kbyes和 50Kbit/sec,那么没有什么比为这两万个转载 2011-12-01 13:40:08 · 1649 阅读 · 0 评论 -
集群中几种session同步解决方案的比较
集群中session安全和同步是个最大的问题,下面是我收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。1. 客户端cookie加密这是我以前采用的方式,简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。问题:session中数据不能太多,最好只有个用户id。参考实现:http://roll转载 2011-06-01 23:24:00 · 1239 阅读 · 0 评论 -
Thrift 是什么?
Thrift 是什么? Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如: C++, C#, Cocoa, Erlan转载 2012-06-02 00:08:26 · 740 阅读 · 0 评论 -
Hadoop相关基础
1 基于Eclipse和hadoop平台应用开发入门手册转载 2012-06-02 10:21:54 · 475 阅读 · 0 评论 -
分布式计算开源框架Hadoop介绍
── 分布式计算开源框架Hadoop入门实践(一)在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章《Tiger Concurrent Practice --日志分析并行分解设计与实现》中有所提到。但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器,结合MySQL就完成了访问控制以及统计的工作。转载 2012-06-02 18:12:43 · 1060 阅读 · 0 评论 -
Apache Avro 与 Thrift 比较
http://www.tbdata.org/archives/1307Avro和Thrift都是跨语言,基于二进制的高性能的通讯中间件. 它们都提供了数据序列化的功能和RPC服务. 总体功能上类似,但是哲学不一样. Thrift出自Facebook用于后台各个服务间的通讯,Thrift的设计强调统一的编程接口的多语言通讯框架(IDL). Avro出自Hadoop之父Doug Cutti转载 2012-06-01 23:53:01 · 628 阅读 · 0 评论 -
网站架构相关PPT、文章整理(更新于2009-7-15)
网站架构相关PPT、文章整理(更新于2009-7-15) http://www.blogjava.net/BlueDavy在这篇blog中放置了我收集的一些网站架构相关的PPT和文章,提供给大家下载,如果大家有相关的好的PPT、文章的话,也欢迎推荐给我,非常感谢,:),这篇blog的内容也会随着我收集的东西增加而变化,同时也会增加我对于这些PPT、文章的看法和评价。1、amazon转载 2012-06-03 00:12:08 · 793 阅读 · 0 评论 -
Google App Engine技术架构资料大盘点
从前,有一个“伤不起”的人(就是我啦)在园子里分享过Google的架构,老是老了点,但对不少新手还是有点帮助的。今天看到几篇有关Google App Engine的技术架构文章,觉得比那个“伤不起”孩子总结得要全得多,索性就全部弄过来,一起分享给大家,没看到过的同学赶紧惊喜一下吧,看到过了的同学也假装惊喜一下嘛,呵呵。全部文章有点长,请耐心看下去,相信程序员都是有耐心的,除了我.......转载 2012-06-06 15:26:33 · 1487 阅读 · 0 评论