当前位置: 首页 > news >正文

微服务之配置中心与服务跟踪

zookeeper 配置中心

实现的架构图如下所示,采取数据加载到内存方式解决高效获取的问题,借助 zookeeper 的节点监听机制来实现实时感知。在这里插入图片描述

配置中心数据分类

image-20231222211907021

事件调度(kafka)

消息服务和事件的统一调度,常用用 kafka ,activemq 等。

服务跟踪(starter-sleuth)

随着微服务数量不断增长,需要跟踪一个请求从一个微服务到下一个微服务的传播过程, Spring Cloud Sleuth 正是解决这个问题,它在日志中引入唯一 ID,以保证微服务调用之间的一致性,这样你就能跟踪某个请求是如何从一个微服务传递到下一个。

  1. 为了实现请求跟踪,当请求发送到分布式系统的入口端点时,只需要服务跟踪框架为该请求创建一个唯一的跟踪标识,同时在分布式系统内部流转的时候,框架始终保持传递该唯一标识,直到返回给请求方为止,这个唯一标识就是前文中提到的 Trace ID。通过 Trace ID 的记录,我们就能将所有请求过程日志关联起来。

  2. 为了统计各处理单元的时间延迟,当请求达到各个服务组件时,或是处理逻辑到达某个状态时,也通过一个唯一标识来标记它的开始、具体过程以及结束,该标识就是我们前文中提到的 Span ID,对于每个 Span 来说,它必须有开始和结束两个节点,通过记录开始 Span 和结束 Span 的时间戳,就能统计出该 Span 的时间延迟,除了时间戳记录之外,它还可以包含一些其他元数据,比如:事件名称、请求信息等。

  3. 在快速入门示例中,我们轻松实现了日志级别的跟踪信息接入,这完全归功于spring-cloudstarter-sleuth 组件的实现。在 Spring Boot 应用中,通过在工程中引入 spring-cloudstarter-sleuth 依赖之后, 它会自动的为当前应用构建起各通信通道的跟踪机制,比如:

  • 通过诸如 RabbitMQ、Kafka(或者其他任何 Spring Cloud Stream 绑定器实现的消息中间件)传递的请求。
  • 通过 Zuul 代理传递的请求。
  • 通过 RestTemplate 发起的请求。

相关文章:

  • 【Grafana】Grafana匿名访问以及与LDAP连接
  • Git常用命令分享
  • 论文笔记 | ICLR 2023 WikiWhy:回答和解释因果问题
  • Sentinel 流量治理组件教程
  • 用C#也能做机器学习?
  • 在MongoDB中使用数组字段和子文档字段进行索引
  • SQL---Zeppeline前驱记录与后驱记录查询
  • 测试理论知识三:测试用例、测试策略
  • Spring AOP入门指南:轻松掌握面向切面编程的基础知识
  • 百度百科如何创建品牌词条?
  • CSRF检测工具(XSRF检测工具)使用说明
  • FFmpeg 简单文档
  • C# WPF上位机开发(QT vs WPF)
  • redis 从0到1完整学习 (四):字符串 SDS 数据结构
  • 深信服AF防火墙升级步骤(简单粗暴)
  • 【剑指offer】让抽象问题具体化
  • 345-反转字符串中的元音字母
  • Fastjson的基本使用方法大全
  • Flannel解读
  • golang中接口赋值与方法集
  • HTTP中的ETag在移动客户端的应用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript HTML DOM
  • laravel5.5 视图共享数据
  • Python_网络编程
  • rc-form之最单纯情况
  • Selenium实战教程系列(二)---元素定位
  • Vue.js源码(2):初探List Rendering
  • 爱情 北京女病人
  • 产品三维模型在线预览
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 仿天猫超市收藏抛物线动画工具库
  • 回顾2016
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用docker-compose进行多节点部署
  • 中文输入法与React文本输入框的问题与解决方案
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (23)Linux的软硬连接
  • (70min)字节暑假实习二面(已挂)
  • (第二周)效能测试
  • (接口封装)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • .CSS-hover 的解释
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net6+aspose.words导出word并转pdf
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ Linux ] Linux信号概述 信号的产生
  • [ 数据结构 - C++] AVL树原理及实现
  • [1181]linux两台服务器之间传输文件和文件夹
  • [20161214]如何确定dbid.txt