服务网格ServiceMesh和高并发、高可用设计手段(中)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 服务网格ServiceMesh和高并发、高可用设计手段(中)
最开始的时候
业务简单 人少 业务都放在一个进程 好维护
粒度粗

垂直方向拆分

image.png

公共逻辑层 
1、组件化 jar包
2、服务化 下沉为独立服务 提供兼容接口

继续水平拆分

image.png


互联网核心技术实践


1、高可用设计手段
2、高并发设计手段(从架构、代码、算法)
3、服务无状态化(高可用其中一个手段之一)
4、负载均衡 (常用的负载均衡算法 更多广义角度阐述)
5、服务幂等性(依赖于分布式锁)
a 请求重复执行多次 服务保证最终结果完全一致
b 业务 库存只剩一个 多个用户同时抢购 保证商品不超卖
c 用户下单 用户没有结束之前 不允许重复下单
d 消息发到mq 发了多次 下游消费保证消息去重
6、分布式事务
7、服务降级 限流 熔断 
8、灰度发布
9、服务全链路压测


高可用设计


硬件总是会有生命周期

1、
x86 32cpu 128内存 万兆 1T硬盘 一台5万左右
基本上使用3年 
宕机和服务器台数相关 台数越多宕机可能性越大
2、
分布式 CAP
单机CA不存在 没有网络划分 
AP和CP更多 机房多个硬盘 网络发生划分 机器还可不可用

软件总会有Bug

评价维度

  • 不科学(因流量有低峰和高峰)
一年/一季度/一月 停机时间占比
99表示365*24*60*1%=88小时
1个9是90%
365*24*60*90%=1/10 880个小时
  • 科学
停机时间影响的总的请求量/总的请求量

冗余 部署多份

服务部署在不同的机柜和不同机架
无状态化(完全对等)可以快速扩容 弹性缩容
比如两台机器 每一台都是全量的session数据 不是无状态的
如果一台服务挂了 重启 session没了 就不对等了

负载均衡

网关->业务逻辑层1和业务逻辑层2
过程:
若业务逻辑层1挂了
负载均衡组件会知道1挂了
踢掉1
转移到2上
恢复1
异步是高并发手段也是高可用手段
不太关心返回结果
不是请求的关键路由
核心流量同步 非核心异步
不仅仅服务层面高可用
数据层面也要高可用

服务实时监控

image.png


实时监控 实现逻辑:
基于日志来做
5秒记录一个日志
耗时打在日志记录上
写在本地磁盘
通过flume 数据采集 
发送到kafaka消息队列 
然后spark实时统计实时耗时

服务分级-降低和避免服务出现故障

image.png

如何无缝停止线上服务

目标:停机对用户没有伤害
即如果接受了你的请求 我100%处理完
在网关层面拒绝掉

网关热切换功能

热开关切换
比如8点停机
8点过来的请求都处理完
8点之后的请求 开关从0变1 所有请求都拒绝


相关文章
|
消息中间件 缓存 应用服务中间件
Nginx系列教程(02) - 高可用与高并发介绍
Nginx系列教程(02) - 高可用与高并发介绍
117 0
|
1月前
|
自然语言处理 监控 Cloud Native
探索微服务架构中的服务网格Service Mesh
【10月更文挑战第7天】服务网格(Service Mesh)是微服务架构中的关键组件,通过在每个服务实例旁部署Sidecar代理,实现服务间通信的管理、监控和安全增强。本文介绍了服务网格的基本概念、核心组件、优势及实施步骤,探讨了其在现代开发中的应用,并提供了实战技巧。
|
2月前
|
消息中间件 安全 大数据
Kafka多线程Consumer是实现高并发数据处理的有效手段之一
【9月更文挑战第2天】Kafka多线程Consumer是实现高并发数据处理的有效手段之一
250 4
|
3月前
|
运维 负载均衡 监控
探索微服务架构下的服务网格(Service Mesh)实践之路
【8月更文挑战第30天】 在当今日益复杂的分布式系统中,微服务架构已成为众多企业解决系统扩展与维护难题的利器。然而,随着服务的不断增多和网络交互的复杂性提升,传统的微服务管理方式开始显得力不从心。服务网格(Service Mesh)作为一种新兴的解决方案,旨在通过提供应用层的网络基础设施来简化服务间通讯,并增强系统的可观察性和安全性。本文将分享我在采用服务网格技术过程中的经验与思考,探讨如何在现代云原生环境中有效地实施服务网格,以及它给开发和运维带来的变革。
|
4月前
|
消息中间件 缓存 监控
如何设计一个秒杀系统,(高并发高可用分布式集群)
【7月更文挑战第4天】设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。
129 1
|
6月前
|
监控 负载均衡 数据安全/隐私保护
探索微服务架构下的服务网格(Service Mesh)实践
【5月更文挑战第6天】 在现代软件工程的复杂多变的开发环境中,微服务架构已成为构建、部署和扩展应用的一种流行方式。随着微服务架构的普及,服务网格(Service Mesh)作为一种新兴技术范式,旨在提供一种透明且高效的方式来管理微服务间的通讯。本文将深入探讨服务网格的核心概念、它在微服务架构中的作用以及如何在实际项目中落地实施服务网格。通过剖析服务网格的关键组件及其与现有系统的协同工作方式,我们揭示了服务网格提高系统可观察性、安全性和可操作性的内在机制。此外,文章还将分享一些实践中的挑战和应对策略,为开发者和企业决策者提供实用的参考。
|
6月前
|
负载均衡 监控 Go
Golang深入浅出之-Go语言中的服务网格(Service Mesh)原理与应用
【5月更文挑战第5天】服务网格是处理服务间通信的基础设施层,常由数据平面(代理,如Envoy)和控制平面(管理配置)组成。本文讨论了服务发现、负载均衡和追踪等常见问题及其解决方案,并展示了使用Go语言实现Envoy sidecar配置的例子,强调Go语言在构建服务网格中的优势。服务网格能提升微服务的管理和可观测性,正确应对问题能构建更健壮的分布式系统。
452 1
|
缓存 Java 应用服务中间件
【高并发优化手段】基于Springboot项目(二)
【高并发优化手段】基于Springboot项目
468 0
|
6月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践之路
【4月更文挑战第30天】 在现代云计算的大背景下,微服务架构以其灵活性和可扩展性成为众多企业转型的首选。然而,随着服务的激增和网络交互的复杂化,传统的服务通信模式已无法满足需求,服务网格(Service Mesh)应运而生。本文通过分析服务网格的核心组件、运作机制以及在企业中的实际应用案例,探讨了服务网格在微服务架构中的关键作用及其带来的变革,同时提出了实施过程中面临的挑战和解决策略。
|
6月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践
【4月更文挑战第28天】 在现代云原生应用的后端开发领域,微服务架构已成为一种广泛采用的设计模式。随着分布式系统的复杂性增加,服务之间的通信变得愈加关键。本文将深入探讨服务网格这一创新技术,它旨在提供一种透明且高效的方式来管理、监控和保护微服务间的交互。我们将从服务网格的基本概念出发,分析其在实际应用中的优势与挑战,并通过一个案例研究来展示如何在现有的后端系统中集成服务网格。