`
whilew
  • 浏览: 22529 次
文章分类
社区版块
存档分类
最新评论

diamond专题(三)—— diamond架构

 
阅读更多

原文地址:http://rdc.taobao.com/team/jm/archives/1606

大家好,这次为大家带来的是diamond的架构,架构如下图所示:

对该图进行一些说明:

1、作为一个配置中心,diamond的功能分为发布和订阅两部分。因为diamond存放的是持久数据,这些数据的变化频率不会很高,甚至很低,所以发布采用手工的形式,通过diamond后台管理界面发布;订阅是diamond的核心功能,订阅通过diamond-client的API进行。

2、diamond服务端采用mysql加本地文件的形式存放配置数据。发布数据时,数据先写到mysql,再写到本地文件;订阅数据时,直接获取本地文件,不查询数据库,这样可以最大程度减少对数据库的压力。

3、diamond服务端是一个集群,集群中的每台机器连接同一个mysql,集群之间的数据同步通过两种方式进行,一是每台server定时去mysql dump数据到本地文件,二是某一台server接收发布数据请求,在更新完mysql和本机的本地文件后,发送一个HTTP请求(通知)到集群中的其他几台server,其他server收到通知,去mysql中将刚刚更新的数据dump到本地文件。

4、每一台server前端都有一个nginx,用来做流量控制。

5、图中没有将地址服务器画出,地址服务器是一台有域名的机器,上面运行有一个HTTP server,其中有一个静态文件,存放着diamond服务器的地址列表。客户端启动时,根据自身的域名绑定,连接到地址服务器,取回diamond服务器的地址列表,从中随机选择一台diamond服务器进行连接。

可以看到,整个diamond的架构非常简单,使用的都是最常用的一些技术以及产品,它之所以表现得非常稳定,跟其架构简单是分不开的,当然,稳定的另一个主要原因是它具备一套比较完善的容灾机制,容灾机制将在下一篇文章中讲述。

分享到:
评论

相关推荐

    Lattice Synthesis Engine for Diamond User Guide

    《钻石用户指南——Lattice Synthesis Engine深度解析》 在集成电路设计领域,Lattice公司的Lattice Diamond工具是一款广泛使用的FPGA(现场可编程门阵列)设计与开发平台。本篇将深入探讨其中的Lattice Synthesis ...

    蓝宝ATI FirePro能否续写FireGL传奇——蓝宝ATI FirePro V5700专业显卡CAD图形应用测试.pdf

    ATI FirePro系列专业显卡是AMD旗下针对工作站用户的专业图形处理产品,主要用于CAD(计算机辅助设计)、三维建模、数字内容创建等专业图形应用领域。FirePro系列显卡与NVIDIA的Quadro系列显卡在专业图形市场上形成...

    基于Web服务的PDC钻头井底流场分析平台研究.pdf

    4. 平台架构:提出的分析平台架构从上到下分为三个层次——软件接口层、分析服务层和结果输出层。这种分层架构有助于提高系统的模块化程度,方便后续维护和扩展。 5. 知识封装技术:在服务端运用知识封装技术实现...

    通信实验论文

    东华松江校园网采用了美国极进公司的BlackDiamond和Summit系列设备,构建了核心层、汇聚层和接入层的三层网络架构。核心层和汇聚层之间通过OSPFv6实现动态路由,确保IPv6网络的高效运行。同时,利用Tunnel技术配置...

    藏经阁-EDAS—轻松搞定分布式应用服务.pdf

    【阿里云EDAS——企业级分布式应用服务】 阿里云的企业级分布式应用服务(EDAS)是专为构建大规模分布式系统的客户设计的一款强大的中间件产品。它提供了完整的应用生命周期管理、服务治理、数据化运营和高可用管控...

    2018最新阿里技术参考图册(开法篇)

    首先,书中可能涵盖了阿里巴巴的云计算平台——阿里云的相关技术。阿里云是阿里巴巴集团的重要组成部分,提供了包括计算、存储、数据库、网络等在内的一系列云服务。在这里,读者可以了解到如何利用ECS(弹性计算...

    x264最新源码 x264-snapshot-20090807-2245

    x264的架构主要分为三个层次:分析层、编码层和宏块层。分析层负责从原始像素数据中提取运动信息;编码层处理这些信息并决定最佳编码策略;宏块层则执行实际的编码操作,包括DCT变换、量化和熵编码。 1. 分析层:...

    简单JTAG(CPLD、ARM)下载板原理图.

    JTAG通过四个基本信号线——TCK(Test Clock)、TDI(Test Data In)、TDO(Test Data Out)和TMS(Test Mode Select)来控制和传输数据。此外,还有TRST(Test Reset)和SRST(System Reset)作为可选的控制信号。...

    Metamorphosis-master(metaqueue)详细手册

    Metamorphosis是一款基于Java的消息中间件,它是LinkedIn开源MQ——Kafka的Java版本,专为淘宝内部应用进行了定制和优化。这款中间件的设计遵循了几个核心原则: 1. **消息持久化**:所有消息都会被保存在磁盘上,...

    Ceph分布式存储实战

    - **安装Calamari**:包括安装`calamari-server`、`romana`、`diamond`、`salt-minion`等组件,并确保服务正常启动。 - **基本操作**:包括登录Calamari、查看WORKBENCH页面、GRAPH页面以及MANAGE页面等功能。 ##...

    ARM发布新一代调试和追踪系统解决方案CoreSightSoC-400.pdf

    近期,ARM发布了全新的调试和追踪系统解决方案——CoreSight SoC-400,旨在应对日益复杂的片上系统(SoC)设计挑战。CoreSight SoC-400为包括移动设备、平板电脑、家用电器、无线基础设施、网络和游戏等众多领域提供...

    FPGA很有价值的27实例

    1. FPGA架构:FPGA由可配置逻辑块(CLB)、输入/输出单元(IOB)、布线资源等组成。理解这些基本单元的功能和连接方式是学习FPGA的基础。 2. VHDL/Verilog:这是两种主要的硬件描述语言,用于编写FPGA的设计代码。...

    FPGA深度解析pdf

    首先,书本可能从FPGA的结构入手,介绍基本的逻辑单元——查找表(LUT)、可编程逻辑阵列(PLA)、触发器和分布式RAM等。这些构成了FPGA的基础架构,通过编程这些单元,可以构建出复杂的数字逻辑电路。 接着,书中...

    jdk-1_7_02linux-x64.rar

    在这里,我们关注的是JDK1.7.0_72的Linux版本——"jdk-1_7_02linux-x64.rar"。这个压缩包包含了在64位Linux系统上运行和开发Java应用所需的全部组件,包括Java虚拟机(JVM)、Java类库、编译器和各种工具。 JDK...

    iCore FPGA初识

    "iCore3_FPGA_1_认识FPGA"这份文档很可能是系列教程的第一部分,将介绍FPGA的基本概念,包括其架构、工作原理以及FPGA中的基本逻辑单元——查找表(LUT)、可编程互联网络(Pipelined Interconnect)、配置存储器等...

    I2C.rar_CPLD I2C vhdl_CPLD i2c_vhdl i2c

    I2C协议基于主从架构,其中有一个主设备(通常是微控制器)控制通信,并有几个从设备(如CPLD中的逻辑)响应主设备的命令。协议使用两根线——SDA(数据线)和SCL(时钟线)进行通信,支持多主设备环境,具有7位或10...

    Metaq详细手册.docx

    Metaq,源自LinkedIn的开源消息中间件Kafka的Java实现——Memorphosis,针对淘宝内部的应用需求进行了定制和优化。它遵循一系列设计原则,旨在提供高效、可靠且灵活的消息传递服务。 1. **消息持久化**:Metaq保证...

    美国钻石RMM-1612-XT技术手册(英文).rar

    为了使工程师和技术人员能够充分掌握和利用该设备的潜力,美国钻石公司提供了一份详细的技术手册——《美国钻石RMM-1612-XT技术手册》,它不仅是关于设备操作和维护的指南,更是一份深入介绍其技术特性的专业文档。...

Global site tag (gtag.js) - Google Analytics