• 分布式配置中心


    diamond架构图:

     

    图1

    图2

    对该图进行一些说明:

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

    以上内容摘抄自:

    diamond架构

    同类型的产品还包括:

    百度的disconf

    对于一些分布式配置的选型介绍:

    开源分布式配置中心选型


    总结:

    一、分布式配置中心的需求(功能)

    1)配置的发布、订阅,有发布的管理界面,订阅可以考虑轮询“拉取”,或设置watch更新。

    2)配置的持久化处理。

    3)分布式配置中心自身也是一个集群,具有容灾的特点。

    再参考disConf的一张图

  • 相关阅读:
    利用ffmpeg获取视频帧
    GCN(Graph Convolutional Network)的简单公式推导
    在导入pytorch时libmkl_intel_lp64.so找不到
    pytorch学习: 构建网络模型的几种方法
    pytorch: 准备、训练和测试自己的图片数据
    pytorch学习:准备自己的图片数据
    Pytorch入门实例:mnist分类训练
    tensorflow 1.0 学习:十图详解tensorflow数据读取机制
    概率分布之间的距离度量以及python实现(四)
    Attribute application@allowBackup value=(true) from AndroidManifest.xml:7:9-35
  • 原文地址:https://www.cnblogs.com/huangfox/p/4453452.html
Copyright © 2020-2023  润新知