Hadoop服务配置热替换框架的设计实现
文章目录 前言 服务热替换更新需要解决的问题点 Hadoop服务热替换更新配置框架代码实现 引用 前言 在分布式系统中,根据不同的运行情况进行服务配置项的更新修改,重启是一件司空见惯的事情了。但是如果说需要重启的服务所需要的cost非常高的时候,配置更新可能就不能做出频繁非常高的操作行为了。比如某些分布式存储系统比如HDFS NameNode重启一次,要load元数据这样的过程,要花费小时级别的启动时间,当其内部存储了亿级别量级的文件数的时候。那很显然对于这种高cost重启的服务来说,我们不能每次依赖重启做快速的配置更新,使得系统服务能使用新的配置值进行服务。于是一个新的名词在这里诞生了:服务的配置热替换更新。简单理解即我们可以通过RPC命令来动态地更改服务内部加载的某项配置值,然后让其使用新的配置值生效运行。本文笔者来聊聊Hadoop内部是如何实现了这么一套配置热替换更新的框架实现的。 服务热替换更新需要解决的问题点 要实现服务配置的热替换更新,我们首选需要知道有哪些主要的问题点,需要我们去考虑到。 第一点,如何让服务能够感知到那些“更新”了的配置。 这里一般有下面两种做法: 1)以命令行参数的形式,传入需要动态更新的配置key以及对应的value。 2)修改服务本地配置文件,然后触发一个动态刷config的命令到服务。 上述方案第二种比第一种更好一些,因为第一种命令行执行完后