diamond专题(三)—— 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的架构非常简单,使用的都是最常用的一些技术以及产品,它之所以表现得非常稳定,跟其架构简单是分不开的,当然,稳定的另一个主要原因是它具备一套比较完善的容灾机制,容灾机制将在下一篇文章中讲述。
本文来源于"阿里中间件团队播客",原文发表时间" 2012-04-18 "
相关文章
- Spark:超越Hadoop MapReduce
- 高可用大数据计算服务如何持续发布和演进
- 一文看懂数据可视化:从编程工具到可视化表现方式
- 数据分析与可视化,你靠什么搞定?
- Hadoop常见错误和处理方式
- 微信高可用分布式数据库PhxSQL设计与实现
- 如何做好数据精细化分析,让你的运营效果指数级增长?
- 借hbase-rdd二次开发谈如何在Spark Core之上扩建自己的模块
- 中国不允许信息数据随意离境,可能会影响不少跨国公司
- 数据分析的一些常见问题
- 数据监测驱动下的信息流广告优化
- 百万自媒体大V的数据分析师成长线路,薪水过万难吗?
- 十个建议,你的报表也可以高大上
- 关于移动互联网产品的指标分析初探
- Spark名词解释及关系
- 数据获取不畅通,中国科学家做研究也受影响
- 数据科学家 / 统计学家应该养成哪些好习惯?
- Hive、MapReduce、Spark分布式生成唯一数值型ID
- 玩笑到现实,大数据涉足文学研究–用数据模型分析莎翁著作
- 如何将枯燥的大数据呈现为可视化的图和动画?