浅谈nacos、eureka、consul、coreDNS、zookeeper

集群,微服务

   衍生出几个问题

1.什么是微服务

2.它们之间是怎么相互协调工作的

3.分别有什么注册中心

4.区别是什么

一.什么是微服务

微服务是一种用于构建应用的架构方案。之前一整个应用采用的是(单体)巨石的项目结构,功能之间互相引用,一荣俱荣,一损俱损,有时候只修改其中某一个小功能的bug,整个工程都要进行重启

微服务就是,把这个巨石项目进行拆解,然后再通过某种方式互相引用,共同构建组成一个应用,每个功能都可以独立部署,需要时能互相协调,故障时又不会影响其它功能的正常使用,具有很好的伸展性和扩张性

二.它们之间是怎么相互协调工作的

那这些微服务是怎么协调工作的呢?

同学A:那还不简单,http啊 post,get,websockt,webservice 等等等等

同学A回答的确实不错,这些方式都可以进行协调工作,但是有一个问题,这种做法是需要我们自己明确对应的URL,如果服务器模块有扩张,迁移等情况,那会出现很多问题,集群模式下,你完全不知有多少模块有引用到这个迁移模块

  1. 目标服务肯定会做扩容,扩容以后,客户端会带来一些变化
  2. 客户端对于目标服务如何进行负载均衡
  3. 客户端如何维护目标服务的地址信息
  4. 服务端的服务状态变化,如何让客户端进行感知

 那这个时候有个叫注册中心的人跑出来说:"我来".

然后经过一系列的约定,建立了一个通讯录一样的东西,你call某一串号码,就是打电话给张三,然后张三就给你提供你想要知道的东西,张三就是出差到北京,上海,都与你无关,你一样能联系到他

服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者
的一个作用。注册中心一般包含如下几个功能:
1. 服务发现:
服务注册/反注册:保存服务提供者和服务调用者的信息
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能
服务路由(可选):具有筛选整合服务提供者的能力。
2. 服务配置:
配置订阅:服务提供者和服务调用者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调用者
3. 服务健康检测:
检测服务提供者的健康情况
 

三.分别有什么注册中心

nacos、eureka、consul、coreDNS、zookeeper  听说redis也可以做注册中心

四.区别是什么

Nacos Eureka Consul CoreDNS Zookeeper
一致性协议 CP+AP AP CP CP
健康检查 TCP/HTTP/MYSQL/Client Beat Client Beat TCP/HTTP/gRPC/Cmd Keep Alive
负载均衡策略 权重/metadata/Selector Ribbon Fabio RoundRobin
雪崩保护
自动注销实例 支持 支持 不支持 不支持 支持
监听支持 支持 支持 支持 不支持 支持
多数据中心 支持 支持 支持 不支持 不支持
跨注册中心同步 支持 不支持 支持 不支持 不支持
SpringCloud集成 支持 支持 支持 不支持 支持
Dubbo集成 支持 不支持 不支持 不支持 支持
K8S集成 支持 支持 支持 支持 支持

你可能感兴趣的:(开发技术,注册中心,nacos,eureka,consul,zookeeper)