业界常用的服务注册与发现组件对比

了解服务注册与发现的基本原理后,如果你要在项目中使用服务注册与发现组件,当面对众多的开源组件该如何进行技术选型?

在互联网公司里,有研发实力的大公司一般会选择自研或者基于开源组件进行二次开发,但是对于中小型公司来说直接选用一款开源软件会是一个不错的选择。

常用的注册与发现组件有eureka,zookeeper,consul,etcd等,由于eureka在2018年已经宣布放弃维护,这里就不再推荐使用了。

业界开源组件

下面结合各个维度对比一下各组件。

组件优点缺点接口类型一致性算法zookeeper1.功能强大,不仅仅只是服务发现;
2.提供watcher机制可以实时获取服务提供者的状态;
3.广泛使用,dubbo等微服务框架已支持;1.没有健康检查;
2.需要在服务中引入sdk,集成复杂度高;
3.不支持多数据中心;sdkPaxosconsul1.开箱即用,方便集成;
2.带健康检查;
3.支持多数据中心;
4.提供web管理界面;不能实时获取服务变换通知restful/dnsRaftetcd1.开箱即用,方便集成;
2.可配置性强1.没有健康检查;
2.需配合三方工具完成服务发现功能;
3.不支持多数据中心;restfulRaft

从整体上看consul的功能更加完备和均衡。接下来以consul为例详细介绍一下。

Consul——值得推荐的服务注册与发现开源组件

简单认识一下Consul

Consul是HashiCorp公司推出的开源工,使用Go语言开发,具有开箱即可部署方便的特点。Consul是分布式的、高可用的、 可横向扩展的用于实现分布式系统的服务发现与配置。

Consul有哪些优势?

  • 服务注册发现:Consul提供了通过DNS或者restful接口的方式来注册服务和发现服务。服务可根据实际情况自行选择。
  • 健康检查:Consul的Client可以提供任意数量的健康检查,既可以与给定的服务相关联,也可以与本地节点相关联。
  • 多数据中心:Consul支持多数据中心,这意味着用户不需要担心Consul自身的高可用性问题以及多数据中心带来的扩展接入等问题。

Consul的架构图

Consul架构

Consul 实现多数据中心依赖于gossip protocol协议。这样做的目的:

  • 不需要使用服务器的地址来配置客户端;服务发现是自动完成的。
  • 健康检查故障的工作不是放在服务器上,而是分布式的。

Consul的使用场景

Consul的应用场景包括服务注册发现服务隔离服务配置等。

服务注册发现场景中consul作为注册中心,服务地址被注册到consul中以后,可以使用consul提供的dns、http接口查询,consul支持health check。

服务隔离场景中consul支持以服务为单位设置访问策略,能同时支持经典的平台和新兴的平台,支持tls证书分发,service-to-service加密。

服务配置场景中consul提供key-value数据存储功能,并且能将变动迅速地通知出去,借助Consul可以实现配置共享,需要读取配置的服务可以从Consul中读取到准确的配置信息。

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注后,点击这里免费获取!

淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注后,点击这里免费获取!

java接口作用和好处,持续更新大厂面试笔试题相关推荐

  1. java的集合框架中重要的接口,持续更新大厂面试笔试题

    第一篇Linux基础学习篇 目录 第零章﹑计算机概论关于电脑的硬件组成部分﹐其实你可以观察你的台式机来分析一下﹐依外观来说这家伙主要可分为三部分﹐分别是∶ 输入单元∶包括键盘﹑鼠标﹑读卡机﹑扫描仪﹑手 ...

  2. java培训机构排名前十,持续更新大厂面试笔试题

    四面阿里 面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer. 一面: 自我介绍 项目中做了什么,难点呢. Java的线 ...

  3. 互联网大厂面试笔试题大全

    阿里篇 1.1.1 如何实现一个高效的单向链表逆序输出? 1.1.2 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BST) ...

  4. 2022年最新安卓大厂面试笔试题分享,Android进阶

    前言 在今年六月份,我萌生了跳槽的打算,在过去的7,8月份我经历了差不多两个月左右的面试.最终拿到了平安人寿.TCL电子.投哪儿网以及几个不太知名公司的offer.于是就写下这篇文章,一来记录总结自己 ...

  5. 阿里最新面试必备项之Java的String类,持续更新中!

    最新腾讯面试必备项之Java的String类,持续更新中! 1.1 String的特性 String类:代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例 ...

  6. 最全python爬虫面试笔试题及答案汇总,三万多字,持续更新,适合新手,应届生

    目录 一些经典的Python爬虫和网络编程面试题... 1 1.动态加载又对及时性要求很高怎么处理?... 1 2.分布式爬虫主要解决什么问题?... 1 3.什么是 URL?... 1 4.pyth ...

  7. 前端面试笔试题总结【持续更新~】

    前端面试笔试题总结 1.说说你对react的理解?有哪些特性? 2.说说Real diff算法是怎么运作的 3.说说React生命周期有哪些不同的阶段?每个阶段对应的方法是? 4.说说你对React中 ...

  8. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  9. java面试笔试题大汇总

    java面试笔试题大汇总 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题 ...

最新文章

  1. ckks方案优化最好的_果断收藏:SEO高级优化技能升级策略!
  2. hadoop NameNode HA 和ResouceManager HA
  3. 适合STM32的三大嵌入式操作系统
  4. 【Android 修炼手册】常用技术篇 -- 聊聊 Android 的打包
  5. android wifi 静态地址设置_安卓手机连接wifi故障的6种常见解决方法
  6. 2017.3.18 糖果 思考记录
  7. Django表中的字段
  8. 【Unity】NGUI下载与导入
  9. 300字总结计算机flash,Flash学习心得体会范文
  10. 侠客风云传服务器维护,侠客风云传服务器地址
  11. 测评EasyRecovery的数据恢复效果与多种功能
  12. 特斯拉神器-TeslaMate
  13. Tricore学习-芯片启动流程
  14. 富文本编辑器ueditor 自定义工具栏配置
  15. iapp将音量调至最大
  16. 电脑win10系统如何开定位服务器,win10系统下如何打开/关闭定位?windows10打开/关闭定位图文教程...
  17. 思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义...
  18. OpenCV二值化图像像素操作
  19. 华为交换机配置SSH
  20. 大二一个学期学这么点内容,没有概念,只有实操

热门文章

  1. 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
  2. 以太网 数据包速率计算方法
  3. java sundry tips
  4. java 二维数组奇数金字塔_二维数组:奇数阶魔方 | 新思维:C语言程序设计
  5. elasticsearch 条件去重_elasticsearch 笔记四 之聚合查询之去重计数、基础统计、百分位、字符串统计...
  6. android 7.0编译报错,编译android7.0 sdk错误解决方法
  7. php 四维数组_PHP 多维数组
  8. 矩阵分解 java_使用矩阵分解为推荐系统
  9. 红旗linux 进不去图形界面,进不了红旗Linux6.0的图形界面请高手帮忙
  10. java自动投票代码,Java 投票(自动添一)