热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Zookeeper配置中心服务发现设计方案

配置中心服务注册发现方案背景配置中心football-server服务目前运行在线上环境提供给内部第三方服务调用。为保证配置中心的服务的可用性,于是决定对配置中心

配置中心服务注册发现方案


背景

配置中心football-server服务目前运行在线上环境提供给内部第三方服务调用。为保证配置中心的服务的可用性,于是决定对配置中心服务端配置进行改造,加入服务注册发现功能。


服务治理中心选型


  • Consul
  • Eureka
  • Zookeeper
  • etcd
    这里写图片描述
    单纯考虑服务治理Eureka应该是目前最合适的选型,Eureka提供了完整的Service Registry和Service Discovery实现,并且在经受了Netflix自己的生产环境考验,相对使用起来省心。
    目前公司线上环境对Eureka的支持力度不够,Zookeeper是一个比较好的替代方案,遂决定使用Zookeeper作为服务治理中心。

架构演变

Before Architecture
这里写图片描述
New Architecture
这里写图片描述


新增服务meta-server

meta-server作为对football-client提供service发现的唯一接口。


  • Q: 为什么不让football-client直接访问Zookeeper。
  • A: fooball-client作为一个lib提供给其他服务使用,应该尽量少的依赖其他的库,如何直接和Zookeeper相连,那么和服务发现相关的逻辑就必须耦合在football-client的代码里面。如果第三方服务自身也需要和Zookeeper有交互,那么可能会存在版本或者连接冲突问题。为避免复杂应该使football-client的代码更纯粹
  • Q: football-client如何获取到football-Service的服务地址
  • A: football-client只需要使用HttpClient访问meta-server提供的Restful接口。
  • Q: 如果meta-server挂掉了怎么办?
  • A: 目前meta-server只提供一个服务,这也是我们抽取meta-server的主要意义,等后面扩展使用Nginx作为负载,多个meta-server Instance运行就能保证高可用了。

football-server 新增功能

football-server需增加启动向Zookeeper提交服务信息,定时和Zookeeper保持服务心跳。


football-client lib新增功能

fooball-client需新增加定时调用meta-server获取football-server的服务地址,并将服务地址缓存起来,暂定每隔5分钟刷新一次。


全新服务上线问题

服务上线需考虑到新的服务会修改football-client的代码,目前有线上项目使用的football-client的Jar包还是老版本,要保证旧服务依旧可以正常运行。


Reference

Zookie zookie.
Apollo Apollo.
Zookeeper Zookeeper学习.


推荐阅读
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • Zookeeper 总结与面试题汇总
    Zookeeper总结与面试题汇总,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 分布式大型互联网企业架构!
    2019独角兽企业重金招聘Python工程师标准摘要:开发工具1.EclipseIDE:采用Maven项目管理,模块化。2.代码生成: ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 设计模式——模板方法模式的应用和优缺点
    本文介绍了设计模式中的模板方法模式,包括其定义、应用、优点、缺点和使用场景。模板方法模式是一种基于继承的代码复用技术,通过将复杂流程的实现步骤封装在基本方法中,并在抽象父类中定义模板方法的执行次序,子类可以覆盖某些步骤,实现相同的算法框架的不同功能。该模式在软件开发中具有广泛的应用价值。 ... [详细]
author-avatar
黄承念63772
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有