服务治理


上面的例子中,是有风险的,有以下几个问题

问题1:一旦服务提供者的信息变化了,就不得不去修改服务调用者的代码
问题2:一旦服务提供者做了集群,服务调用者一方无法实现负载均衡去调用
问题3:一旦微服务变得越来越多,如何来管理服务清单就成了问题


这就需要通过注册中心动态的实现服务治理

什么是服务治理?

服务治理是微服务架构中最核心最基本的模块,用于实现各个微服务的自动化注册和发现

服务注册

  在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息,并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务

nacos之心跳机制
nacos的心跳机制,现有A、B两个服务 调用关系 B->A,心跳步骤如下:

启动nacos服务

启动A、B服务,并向nacos发送http请求连接
连接成功后发送心跳连接,nacos记录心跳最新时间
nacos会起定时任务向AB服务发送心跳包,来验证服务是否健康
如果B调用A时,A服务挂掉,nacos这边A的最后心跳时间已经过去15s就标记A服务不健康
如果超过30s还是不健康那就直接干掉A服务

nacos与eureka的区别

1 Nacos的阈值是针对某个具体Service的,而不是针对所有服务的,但Eureka的自我保护阈值是针对所有服务的
2.Nacos支持服务列表变更的消息推送模式,服务列表更新更及时,Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式。Nacos支持服务端主动检测提供者状态,临时实例采用心跳模式,非临时实例采用主动检测模式,临时实例心跳不正常会被剔除,非临时实例则不会被剔除。
3.nacos在自动或手动下线服务,使用消息机制通知客户端,服务实例的修改很快响应;Eureka只能通过任务定时剔除无效的服务。nacos可以根据namespace命名空间,DataId,Group分组,来区分不同环境(dev,test,prod),不同项目的配置

nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式(一般情况下都使用临时实例,主动检测消费的服务器资源较大,服务器压力大)
临时实例心跳不正常会被剔除,非临时实例则不会被剔除
nacos支持服务列表变更的消息推送模式,服务列表更新及时
nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;eureka采用AP方式

服务发现

服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实例的访问

注册中心一般包含以下几个功能

1 服务发现
服务注册:保存服务提供者和调用者的信息
服务订阅:服务调用者订阅服务提供者的信息,注册中心向订阅者推送提供者的信息
2 服务配置
配置订阅:服务提供者和服务调用者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调用者
3 服务健康监测(心跳机制)
检测服务提供者的健康情况,如果发现异常执行服务剔除

常见的注册中心

Nacos之服务治理相关推荐

  1. Spring Cloud Alibaba——Nacos实现服务治理

    引言 本博客总结微服务开发中各个微服务调用的实现,并使用 Nacos 完成服务注册和发现. 文章中会涉及到 maven 的使用,以及 spring boot 的一些知识.开发工具采用 IDEA 202 ...

  2. SpringCloudAlibaba - Nacos (1) 服务治理

    服务治理 服务治理就是管理所有的服务节点,核心功能包括: 服务注册(Client) 服务发现(Client) 心跳(Client) 健康检查(Server) 安装 Nacos 官方文档,有两种方式:1 ...

  3. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  4. Nacos注册中心和服务消费方式(服务治理)

    目录 一.服务治理介绍 什么是服务治理? 二.nacos简介 三.nacos实战入门 1.搭建nacos环境 2.将商品.订单.微服务注册到nacos 四.实现服务调用的负载均衡 1.什么是负载均衡 ...

  5. 理解nacos 服务治理(注册中心)、Nacos简介、下载与配置持久化到Mysql

    Nacos简介 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流且管理. Nacos帮助您更敏 ...

  6. Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群

    上一节我们学习了 Nacos 注册中心的作用以及单点运行的方法,但是单点运行是分布式应用的大忌,在分布式架构中,任何单点都可能成为系统的瓶颈,因此在生产环境中 Nacos 都需要通过部署集群来为系统带 ...

  7. Spring Cloud Alibaba 之 服务治理:Nacos 如何实现微服务服务治理

    前文我们学习了通用的微服务架构应包含哪些组件以及 Spring Cloud Alibaba 生态中对应的技术实现,其中整个架构体系最核心的组件是服务注册中心 Alibaba Nacos.本讲我们就对 ...

  8. 02 | 服务治理:Nacos 如何实现微服务服务治理

    前文我们学习了通用的微服务架构应包含哪些组件以及 Spring Cloud Alibaba 生态中对应的技术实现,其中整个架构体系最核心的组件是服务注册中心 Alibaba Nacos.本讲我们就对 ...

  9. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

最新文章

  1. PHP 搜索引擎蜘蛛访问检测和统计
  2. Java 洛谷 P1534 不高兴的津津(升级版)
  3. Java实现线程同步的方式
  4. Intel Optane(tm) Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)
  5. r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识
  6. c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...
  7. 用python实现bt下载_python实现bt种子 torrent转magnet
  8. KDD20 | 图模型的信息融合专题
  9. python同名函数相互冲突_两个函数同名python
  10. Hard samples mining
  11. arctanx麦克劳林公式推导过程_罗德里格斯公式推导
  12. 《Python语言程序设计基础》嵩天著-第3章程序部分练习题答案
  13. Mysql持久性的实现
  14. 筛选后系列填充_案例分享10——如何在筛选后的表格中粘贴数据(二)
  15. JS 字符串 常用方法(截取、替换、拼接)
  16. 实用技巧(二)——文本工具、自由变换
  17. 室内定位之行人航位推算(PDR)
  18. oracle树结构统计,Oracle树形统计--子节点汇总到父节点
  19. 爱国者冯军:BAT做大是因为大数据做得好
  20. Java架构师学习路线图

热门文章

  1. php获取mac_ip地址,如何获取PHP中连接的客户端的MAC和IP地址?
  2. OpenStack-Glance组件部署
  3. 关于java的外语文献_java英文参考文献
  4. 如何将Windows的文件存储到铁威马NAS里?
  5. ORA12541: TNS:no listener解决办法
  6. 速度!天猫双11【自动养猫】教程来啦!领喵币瓜分更多红包!
  7. 如何构建一个vue登录系统之登录页面
  8. vivo S系列的爆款密码:自拍,自然,自出机杼
  9. 小眼游戏架构:UI篇:三层架构(UI层)
  10. Cannot find template location: classpath:/templates/ (please add some templates or check your Thyme