【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: 【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案

什么是服务治理?


相信每一个软件公司(企业)都希望可以确保开发及项目运行流程可以顺利,但是如果要完美完结那么需要其中会有很多的因素存在。包括,最佳实践架构原则服务治理以及其他决定性的因素。而其中服务治理指的是⽤来管理SOA(微服务)所采⽤和实现的重要环节和因素。下图就算是一个较为完整得RPC模型得服务治理体系机制。

image.png



典型的问题


  • 变更管理变更⼀个服务通常会引起不可预⻅的后果,因为服务的消费者对服务的提供者来说是不可知的


  • 服务质量的保证弹性添加新服务需要对这些服务给予额外的关注




分布式应⽤的治理


服务注册与发现


单体服务拆分为微服务,如果微服务之间存在调⽤依赖,就需要得到⽬标服务的服务地址,也就是微服务治理的”服务发现“。要完成服务发现,就需要将服务信息存储到某个载体(实例),载体本身是微服务治理的”服务注册中⼼“,存储到载体的动作即是”服务注册“。

image.png



服务得可观测性


微服务由于较单体应⽤有了更多的部署实例,需要对众多服务间的调⽤关系、状态有清晰的掌控

可观测性就包括了调⽤拓扑关系、监控(Metrics)、⽇志(Logging)、调⽤追踪(Trace)等,所下图所示,可以通过采用中心进行流量控制得限流控制能力。

image.png



服务流量管控


微服务本身存在不同版本,在版本迭代得过程中,需要对微服务间调⽤进⾏控制,以完成微服务版本更迭的平滑


流量管控主要是根据流量的特征(访问参数等)百分⽐向不同版本服务分发,这也孵化出灰度发布蓝绿发布A/B测试等服务治理的主题,


面向的统计流量范围,主要包含请求打进来的流量管理和微服务之间的流量管理



服务安全控制


服务的安全控制主要分为:服务的安全和服务的控制两个部分。



服务安全


不同微服务承载⾃身独有的业务职责,对于业务敏感的微服务,需要对其他服务的访问进⾏认证与鉴权,也就是安全问题


服务控制


当服务治理能⼒充分建设后,就需要有⾜够的控制能⼒,能实时进⾏服务治理策略向微服务分发,包含服务的降级和熔断能力的额控制等




服务监控


监控的可视化


监控的可视化,随时了解系统运⾏情况帮助我们快速定位问题。

image.png

  1. 通过数据采样分析进行分析对应得上报数据从而帮助我们快速定位问题。
  2. 通过上报数据的信息,进行多维度的指标计算,方便我们时时刻刻的进行分析系统服务,打造全方位的监控体系。



监控维度


在我们日常的实际项⽬中,我们实现了四种维度的监控。


容器实例级别的监控


针对于使用的容器服务,例如:Docker、Podman或者moby服务,k8s的pod(单pod只管理一个容器)级别,那么我们监控的就是容器内部的服务级别,可以理解为实例级别,例如下图我们的crm容器实例,下面每一个容器都是一个监控对象

image.png

针对于SpringBoot的应⽤,我们一般处了专门的监控服务,例如,夜莺、Zabbix和Promethus等,还可以参考SpringBoot-Admin,⾃⼰实现了⼀套监控界⾯,监控Spring Boot应⽤。




主要指标




应⽤实例级别的监控


针对于应用级别的服务实例监控,例如我们有crm服务系统,那么如果我们集群部署、分布式部署等方式,那么会针对于将应用的整体,下图就是整体的应用体系作为一个指标对象,它的指标对象监控维度就是将所有的内部的容器实例监控指标合并。

image.png

  • Prometheus(github.com/prometheus/… 当然Prometheus不仅能监控容器,还能监控数据库、操作系统,甚⾄可以和Spring Boot集成,但⽬前业界主要⽤来监控容器。


系统级的监控


调⽤链监控




⽇志监控及优化


  • Skywalking快速找到性能瓶颈
  • ELK分析⽇志快速找到问题


JVM监控及调优工具推荐




中间件级别监控


Zabbix监控是一个老牌劲旅了。


Redis监控



Kafka监控



MySQL




相关文章
|
2月前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
186 0
|
3月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
586 3
|
2月前
|
消息中间件 监控 Cloud Native
高效设计:支持亿级用户社交关系的100W QPS架构方案
面对亿级用户与百万QPS的高并发场景,性能测试成为系统稳定的关键。本文剖析真实业务痛点,详解从接口压测、全链路监控到瓶颈定位的完整性能体系,助你掌握大厂级性能优化能力,从容应对卡顿、宕机等线上挑战。
|
2月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
2月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
边缘计算 Kubernetes 物联网
Kubernetes 赋能边缘计算:架构解析、挑战突破与实践方案
在物联网和工业互联网快速发展的背景下,边缘计算凭借就近处理数据的优势,成为解决云计算延迟高、带宽成本高的关键技术。而 Kubernetes 凭借统一管理、容器化适配和强大生态扩展性,正逐步成为边缘计算的核心编排平台。本文系统解析 Kubernetes 适配边缘环境的架构分层、核心挑战与新兴解决方案,为企业落地边缘项目提供实践参考。
221 0
|
3月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
280 2
|
3月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
206 6
|
4月前
|
存储 缓存 NoSQL
Redis核心数据结构与分布式锁实现详解
Redis 是高性能键值数据库,支持多种数据结构,如字符串、列表、集合、哈希、有序集合等,广泛用于缓存、消息队列和实时数据处理。本文详解其核心数据结构及分布式锁实现,帮助开发者提升系统性能与并发控制能力。
|
8月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
779 0
分布式爬虫框架Scrapy-Redis实战指南

热门文章

最新文章