Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分, 它基于 Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功能。 Spring Cloud 通过为 Eureka 增加了 Spring Boot 风格的自动化配置,我们只需通过简单引入依赖和注解配置就能 让 Spring Boot 构建的微服务应用轻松地与 Eureka 服务治理体系进行整合。

在本章中, 我们将指引读者学习下面这些核心内容, 并构建起用于服务治理的基础设施。

• 构建服务注册中心

• 服务注册与服务发现

• Eureka 的基础架构

• Eureka 的服务治理机制

• Eureka 的配置

服务治理

服务治理可以说是微服务架构中最为核心和基础的模块, 它主要用来实现各个微服务 实例的自动化注册与发现。 为什么我们在微服务架构中那么需要服务治理模块呢?微服务系统没有它会有什么不好的地方吗? 在最初开始构建微服务系统的时候可能服务并不多, 我们可以通过做一些静态配置来 完成服务的调用。 比如,有两个服务 A 和 B, 其中服务 A 需要调用服务 B 来完成一个业务 操作时, 为了实现服务 B 的高可用, 不论采用服务端负载均衡还是客户端负载均衡, 都需 要手工维护服务 B 的具体实例清单。 但是随着业务的发展, 系统功能越来越复杂, 相应的 微服务应用也不断增加, 我们的静态配置就会变得越来越难以维护。 并且面对不断发展的• Spring Cloud微服务实战 业务, 我们的集群规模、 服务的位置 、 服务的命名等都有可能发生变化, 如果还是通过手 工维护的方式, 那么极易发生错误或是命名冲突等问题。 同时, 对于这类静态内容的维护也必将消耗大量的人力。

为了解决微服务架构中的服务实例维护问题, 产生了大量的服务治理框架和产品。 这些框架和产品的实现都围绕着服务注册与服务发现机制来完成对微服务应用实例的自动化管理。

• 服务注册:在服务治理框架中, 通常都会构建一个注册中心, 每个服务单元向注册中心登记自己提供的服务, 将主机与端口号、 版本号、 通信协议等一些附加信息告知注册中心, 注册中心按服务名分类组织服务清单。 比如, 我们有两个提供服务A 的进程分别运行于 192.168.0.100:8000和192.168.0.101:8000位置上, 另外还有三个 提供服务B的进程分别运行千192.168.0.100:9000 、 192.168.0.101:9000、 192.168.0.102:9000位置上。 当这些进程均启动, 并向注册中心注册自己的服务之后, 注册中心就会维护类似下面的一个服务清单。

另外, 服务注册中心还需要以心跳的方式去监测清单中的服务是否可用, 若不可用需要从服务清单中剔除, 达到排除故障服务的效果。

• 服务发现:由于在服务治理框架下运作, 服务间的调用不再通过指定具体的实例地址来实现, 而是通过向服务名发起请求调用实现。 所以, 服务调用方在调用服务提 供方接口的时候, 并不知道具体的服务实例位置。 因此, 调用方需要向服务注册中 心咨询服务, 并获取所有服务的实例清单, 以实现对具体服务实例的访问。 比如, 现有服务C希望调用服务A, 服务C就需要向注册中心发起咨询服务请求, 服务注册中心就会将服务A的位置清单返回给服务C, 如按上例服务A的情况,C便获得

了服务A的两个可用位置 192.168.0.100:8000和192.168.0.101:8000。 当服务C要发起调用的时候, 便从该清单中以某种轮询策略取出一个位置来进行服务调用, 这就是后续我们将会介绍的客户端负载均衡。 这里我们只是列举了一种简单的服务治理逻辑, 以方便理解服务治理框架的基本运行思路。 实际的框架为了性能等因素, 不会采用每次都向服务注册中心获取服务的方式, 并且不同的应用场景在缓存和服务剔除等机制上也会有一些不同的实现策略。

SpringCloud Eureka服务治理相关推荐

  1. SpringCloud微服务治理技术入门

    1.集群.分布式.微服务 首先先理解三个感念 什么是集群?: 同一个业务,部署在多个服务器上,目的是实现高可用,保证节点可用! 什么是分布式?: 一个业务分拆成多个子业务,部署在不同的服务器上,每个子 ...

  2. 基于Springcloud的服务治理落地实践

    前言 在微服务盛行的今天,提起服务治理,相信大家都已经不再陌生,许多公司都有自己内部的一套定制化的实现方案, Access也不例外, 接下来, 我来为大家介绍一下我们的一套基于Springcloud的 ...

  3. SpringCloud---搭建Eureka服务治理和发现

    你未必出类拔萃,但一定与众不同 SpringCloud–服务治理Eureka 目录 SpringCloud--服务治理Eureka 搭建Eureka服务治理中心 1.创建springboot项目,这里 ...

  4. 【学习笔记】Eureka服务治理代码实例、相关配置和原理机制详解

    文章目录 代码示例 启动一个服务注册中心 注册服务提供者 高可用注册中心 服务的发现与消费 Eureka的一些配置 服务注册类配置 服务实例类配置 实例名配置 端点配置 Eureka服务治理基础架构原 ...

  5. SpringCloud eureka服务状态监听

    一.前言 近期由于公司不同平台项目之间的业务整合,需要做到相互访问! 每个平台均有自己的注册中心和服务,且注册中心相互之间并没有相互注册! 借助spring的事件监听,在eureka-server端监 ...

  6. SpringCloud——Eureka服务注册和发现

    一.SpringCloud和Dubbo SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题. content Dubbo SpringCloud ...

  7. 基于Eureka服务治理的高可用性注册中心搭建

    高可用注册中心 在微服务这样的分布式环境中,我们需要充分考虑故障发生的情况,所以在生产环境中必须对各个组件进行高可用部署,对于微服务如此,对于微服务注册中心也是一样.上一篇文章我们搭建了单节点的服务治 ...

  8. Spring Cloud Eureka服务治理

    一.介绍 1.背景 在早期,由于系统一般业务简单,涉及到的服务比较少,我们可以通过设计静态的配置来完成服务之间的调用.比如服务A和服务B,我们通过配置,让他们相互通信.但是随着业务不断发展和数据量不断 ...

  9. springcloud Eureka服务注册和发现

    一,Eureka基本介绍: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...

最新文章

  1. 你的简历到底问题在哪?
  2. 如何检查服务是否在Android上运行?
  3. perl学习之(not install YAML)解决
  4. 【转载+软件实际操作 OpenHW12参赛手记】ZedBoard-裸机下运行Hello,World【常见错误解决方案】++...
  5. 基于matlab水轮机期刊,基于MATLAB/SIMULINK的水轮机调节系统寻优
  6. InfluxDB中文文档
  7. C/C++ strtod函数 - C语言零基础入门教程
  8. 使用双指针可能只需要遍历一趟哦(洛谷P1147题题解,Java语言描述)
  9. 雪花开发者中心地府云自适应1号模板 雪花xueidc插件
  10. sandy学习笔记:Sprite2D 对象
  11. Unity项目中的资源管理
  12. js 动态生成HTML,并加载事件遇到的问题
  13. PHPmail 亲测可用
  14. 视觉中国被连夜约谈后再次致歉;京东高管:下一步将向总监“开刀”;华为P30价格公布 | 雷锋早报...
  15. Centos5.5服务器ROOT密码破解
  16. 工作站性能测试软件,国产工作站“王炸”来了! 曙光桌面工作站评测
  17. 阿里云 ECS迁移数据至腾讯云云服务器
  18. Unity 年度总结:一款游戏的从0到1
  19. 挂站服务器什么意思?挂站服务器可以挂多少网站?
  20. Hackergame 2020

热门文章

  1. 爬虫必备反爬技能:使用动态ip
  2. Python--JSON基础
  3. 鸿蒙系统中的 JS 开发框架
  4. 代码实现tan graph model for classification_几行代码搞定ML模型,低代码机器学习Python库正式开源...
  5. pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...
  6. 两步路轨迹文件位置_最新Uber ATG的轨迹预测方法LiRaNet介绍
  7. 大于3小于4的整数bleem_比三大,比四小的整数是存在的吗?
  8. TensorFlow1-张量
  9. mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
  10. 2059 - authentication plugin 'caching_sha2_password' -navicat连接异常问题解决