手写分布式配置中心

4 篇文章 0 订阅
2 篇文章 0 订阅

一.引言

   随着微服务架构的兴起,分布式配置中心越来越必不可少。目前比较流行的有携程的Apollo,阿里的disconf,淘宝的diamond。

二.原理

     其实实现原理可以简单的概括如下:客户端先集成框架,在启动的时候已经将客户端的ip和端口发送到了注册中心(比如zookeeper),再设置具体某个值得时候,发送给服务器端,服务器端接收到请求后,依次通知之前注册的机器。这样随便一台机器只要某个值被更改了,其他集群中的机器都可以获取到最新的值(当然一般会有一个延迟,性能和实现方式有关)。

    这个基本上就是最简单的分布式配置中心了,基于此,一步步来讲解如何手写一个分布式配置中心。

三.步骤

   1.选择注册中心

        这里就使用大家比较熟悉的zk。

   2.实现核心框架完成基本的客户端ip+端口的注册

   3.客户端和服务器端集成框架

   4.通知

      通知主要分两块,一块是client发送key设置值得请求到服务端,一块是server获取zk中该集群下的全部机器进行通知。目前采用的是http协议请求。

四.框架讲解

  

注解 PConfigType  
mode  :
server  表明是服务器
client: 表明是客户端(默认值)
/**
   * 该服务会去调用远程的服务
   */
  @Autowired
  private PConfigClientServiceImpl pConfigClientService;


  /**
   * 该服务是引用本地的core服务
   */
  @Autowired
  private BaseService baseService;

 

需要client端做数据接收

@RestController

@Slf4j

public class ChangeValueController {

@Autowired

private BaseService baseService;

@PostMapping("/changeData")

public String changeData(@RequestBody DataModel dataModel) {

log.info("===============================");

log.info("enter changeData data:{}", dataModel);

log.info("===============================");

baseService.put(dataModel);

return "success";

}

}

具体请参考框架地址

https://gitee.com/YiHaiFeng/pconfig/

五.题外话

   该pconfig是一个最简单的分布式配置中心的框架,安全和权限啥的都没有扩展,当然传输协议,网络通讯也是使用最基本的方式实现的。如果想应用到生产,还需要做很多工作,但是对于理解分布式配置原理应该是足够了。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值