Spring cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能。

Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端组件,能够非常方便地将服务注册到 Spring Cloud Eureka 中进行统一管理。

服务治理是微服务架构中必不可少的一部分,阿里开源的 Dubbo 框架就是针对服务治理的。服务治理必须要有一个注册中心,除了用 Eureka 作为注册中心外,我们还可以使用 Consul、Etcd、Zookeeper 等来作为服务的注册中心。

用过 Dubbo 的读者应该清楚,Dubbo 中也有几种注册中心,比如基于 Zookeeper、基于 Redis等,不过用得最多的还是 Zookeeper 方式。

至于使用哪种方式都是可以的,注册中心无非就是管理所有服务的信息和状态。若用我们生活中的例子来说明的话,笔者觉得 12306 网站比较合适。

首先,12306 网站就好比一个注册中心,顾客就好比调用的客户端,当他们需要坐火车时,就会登录 12306 网站上查询余票,有票就可以购买,然后获取火车的车次、时间等,最后出发。

程序也是一样,当你需要调用某一个服务的时候,你会先去 Eureka 中去拉取服务列表,查看你调用的服务在不在其中,在的话就拿到服务地址、端口等信息,然后调用。

注册中心带来的好处就是,不需要知道有多少提供方,你只需要关注注册中心即可,就像顾客不必关心有多少火车在开行,只需要去 12306 网站上看有没有票就可以了。

为什么 Eureka 比 Zookeeper 更适合作为注册中心呢?主要是因为 Eureka 是基于 AP 原则构建的,而 ZooKeeper 是基于 CP 原则构建的。

在分布式系统领域有个著名的 CAP 定理,即 C 为数据一致性;A 为服务可用性;P 为服务对网络分区故障的容错性。这三个特性在任何分布式系统中都不能同时满足,最多同时满足两个。

Zookeeper 有一个 Leader,而且在这个 Leader 无法使用的时候通过 Paxos(ZAB)算法选举出一个新的 Leader。这个 Leader 的任务就是保证写数据的时候只向这个 Leader 写入,Leader 会同步信息到其他节点。通过这个操作就可以保证数据的一致性。

总而言之,想要保证 AP 就要用 Eureka,想要保证 CP 就要用 Zookeeper。

Dubbo 中大部分都是基于 Zookeeper 作为注册中心的。Spring Cloud 中当然首选 Eureka。

上一篇 Spring Boot Starter的介绍及使用《七》

下一篇介绍 使用Eureka编写注册中心服务

相关springboot实战项目推荐

基于java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于java ssm springboot+mybatis酒庄内部管理系统设计和实现

基于JAVA springboot+mybatis智慧生活分享平台设计和实现

基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现

基于JAVA SSM springboot实现的抗疫物质信息管理系统设计和实现

查看更多首页实战项目 >>>

《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》相关推荐

  1. 《SpringCloud超级入门》使用Eureka编写注册中心服务《九》

    首先创建一个 Maven项目,取名为 eureka-server,在 pom.xml 中配置 Eureka 的依赖信息,代码如下所示. <!-- Spring Boot --> <p ...

  2. 《SpringCloud超级入门》使用Eureka编写服务消费者《十一》

    我们先从 Nginx 说起,了解为什么需要微服务.最初的服务化解决方案是给相同服务提供一个统一的域名,然后服务调用者向这个域发送 HTTP 请求,由 Nginx 负责请求的分发和跳转. 这种架构存在很 ...

  3. 《SpringCloud超级入门》使用Eureka编写服务提供者《十》

    创建项目注册到 Eureka 将一个服务提供者 eureka-client-user-service 注册到 Eureka 中,并提供一个接口给其他服务调用. 创建一个 Maven 项目,在 pom. ...

  4. 《SpringCloud超级入门》使用Eureka集群搭建《十三》

    前面我们搭建的注册中心只适合本地开发使用,在生产环境中必须搭建一个集群来保证高可用.Eureka 的集群搭建方法很简单:每一台 Eureka 只需要在配置中指定另外多个 Eureka 的地址就可以实现 ...

  5. 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》

    了解为什么需要微服务.最初的服务化解决方案是给相同服务提供一个统一的域名,然后服务调用者向这个域发送 HTTP 请求,由 Nginx 负责请求的分发和跳转. 这种架构存在很多问题:Nginx 作为中间 ...

  6. 《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七》

    目录 Spring Boot Starter项目创建 自动创建客户端 使用 Starter 使用注解开启 Starter 自动构建 使用配置开启 Starter 自动构建 配置 Starter 内容提 ...

  7. Spring Cloud Eureka 入门 (三)服务消费者详解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "真正的进步 ...

  8. Spring Cloud Eureka 入门 (二)服务提供者详解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "优秀不是过 ...

  9. Spring cloud eureka 入门使用及指导说明(单机篇)

    Spring cloud eureka 入门使用及指导说明(单机篇) 基本概念和方案 Eureka是基于REST(Representational State Transfer,代表性状态传输)的服务 ...

最新文章

  1. vs2010打不开vs2017的.sln文件,出现错误提示 “选择的文件是解决方案文件 但是用此应用程序的较新版本创建的,无法打开”
  2. cad图纸目录自动生成插件_如何自动生成论文目录?
  3. es用canals怎么和mysql同步_搬运基础服务到kubernetes,遇这3类大坑怎么破?
  4. agilebpm脑图_设计开发平台前端框架介绍 | AgileBPM 敏捷工作流开发平台—开源免费-基于 Activiti 工作流引擎、Flowable...
  5. 【模板】快速排序(洛谷-P1177)
  6. php论坛有哪些_2020面向PHP的5个最佳框架,解释了为什么选择它们
  7. CamtasiaStudio如何导出视频上传优酷实现高清
  8. 滤波器基础06——滤波器设计软件
  9. 多个excel工作簿合并_Excel用VBA代码一键合并汇总多个工作簿,省时省力必学!...
  10. 三角形度数计算机公式,三角形角度计算公式
  11. SQL语句的五大类:DQL、DML、DDL、DTL、DCL
  12. 两个分数相加(结果最简)
  13. 基于单片机的升力检测仪系统设计
  14. CTF练题(5)word隐写基础题,jpg图片隐写,敲击码解密
  15. 上位机plc编程入门_【新手入门】西门子PLC编程入门学习
  16. 使用php 实现生成Excel文件并导出
  17. java 获取短日期date_Java中的最短日期
  18. 西班牙旅行笔记(I)
  19. 海滩景色Mac高清动态壁纸
  20. sqlsever2019:控制流全解

热门文章

  1. php获取页面中的指定内容,php 获取页面中指定内容的实现类
  2. 1500度的近视能学计算机吗,1500度近视考驾照,近视多少度不能考驾照
  3. mysql储存过程把集合并_MySQL 多日志表结果集合拼接存储过程
  4. 单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...
  5. linux bc命令全称,Linux bc 命令
  6. JAVA实现inotify一样的功能_WPF实现INotifyPropertyChanged
  7. php发卡8.0源码_素材资源解析平台PHP源码 V8.0运营版+会员功能+代理功能+卡密充值...
  8. Win7旗舰版系统开启硬盘ahci模式的方法
  9. win7系统丢失文件的处理方法
  10. 要Java显示script文字_Javasrcipt---HTML中使用Javascript