实现业务高可用一些关键点

简介: 参与《美团点评技术沙龙》 活动,和美团点评的技术大牛深度交流,根据他们的经验结合自己的实践,自己做了一些简单的整理。

layout: post
title: 美团点评技术沙龙
tags: 开源 高可用 分享 中间件


一、高可用主题

  • CASE STUDY

二、美团云

高可用基础设施

数据中心

网络

稳定,冗余,自愈,效率

  • ecmp
  • 裸光纤+OTN

基础服务

  • MGW
  • NAT

基础设施

  • 资源之间的关系

    • CMDB
  • 监控

    • 内网延时监控
    • 机房环境
  • 可视化交付

    • 网络大盘
    • (机柜与服务器)
  • 数据化运营

三、中间件

稳定 性能 扩展性 效率 成本

微服务

一个service对应一个DB、CACHE

  • 组织结构
  • 架构真经
  • 微服务?RPC?

    • 接入层: 反向代理
    • SERVICE: 之间通过RPC,MQ通讯
    • 负载均衡 慢启动
    • zebra ? DBproxy??

四、德比数据

SLA

提高MTBF,降低MTTR

  • 序列化 PB
  • Java --》GO
  • 单元测试

    • 我拿了工资是要去写运行良好的程序,而不是为了测试。所以我的观点是,在可信任的范围内,测试得越少越好 -- KENT BECK
  • 发布回滚 ?? 灰度发布、多版本共存。
  • 业务层面监控报警 (大数据历史对比)

五、流量复制与故障演练

线上

在影子集群做压测

  • TCPCOPY ?
  • dubbo-copy
  • thriftcopy

    • 包装TB协议
    • 染色 coPY CLIENT -->COPY SERVER
  • 故障演练平台

    • 探针 流量copy
    • 可视化管理平台
  • 链路+日志

    • mtrace ? skywalking
    • slf4j 异步appender

六、CAT

监控分层

  • 端到端响应 与 成功率

实时系统

  • 客户端不落地
  • 服务端实时处理

APM

  • 线上问题,5分钟内解决 !!!!
  • 性能排查
  • problem 报表
  • business 报表

cat设计

  • 客户端

    • 自定义二进制协议
    • httpthread --> ThreadContext
    • 队列 异步
  • 重点

    • 内存
    • CPU
    • 不做压缩
    • netty传输

建模

  • 报表建模

    • 通常,InfluxDB
    • 优化 CPU

存储

  • 批量压缩
  • 顺序写,随机读
  • 索引与数据分开

MVP版本

单机开发环境

  • jetty
  • HDFS
  • MYSQL

开放生态

  • 关注客户,快速响应
  • 先做小而精,在做大全

七、系统稳定性建设

Availability = MTTF/(MTTF+MTTR)

高可用方案

  • 设计
  • 巡检
  • 监控
  • 处理

隔离、限流、熔断、降级

  • 雪崩
  • 如何避免

    • 隔离

      系统隔离 负载均衡
      线程隔离 
      
    • 限流

    • 熔断

      过载保护
    • 降级

      写降级比较难
    • hystrix

全链路压测

流量标识&数据隔离

  • 压测流量特殊标识

    • 全链路透传
  • 影子表
  • 参数偏移
目录
相关文章
|
11月前
|
架构师 微服务
「业务架构」业务能力的热图是什么,有啥用?
「业务架构」业务能力的热图是什么,有啥用?
|
11月前
|
架构师 测试技术
【业务架构】如何构建业务能力图?
【业务架构】如何构建业务能力图?
|
1天前
|
监控 应用服务中间件 测试技术
4种典型限流实践保障应用高可用
大家好,我叫黄博文,花名延枚,目前负责云效旗下产品Flow流水线的设计和开发。在微服务架构下,服务越来越多,服务之间的调用也会越来越复杂。如何保障服务的高可用性就成为了一个挑战。之前我参与过的某个产品就曾出过故障,原因是某个API调用突然间增加了数十倍,导致服务负载过高,影响了用户使用。如果当时能够...
4种典型限流实践保障应用高可用
|
负载均衡 测试技术 微服务
分布式中灰度方案实践
将版本的分支号加载到服务的元数据信息中,再结合服务名称或者IP地址,来实现对服务列表的多维度过滤,可以支撑大部分轻量级灰度策略的实现。
393 0
分布式中灰度方案实践
|
SQL 前端开发 JavaScript
6款 Retool 最佳替代方案
本篇文章的目的通过低代码平台使用者的视角引出细节,了解他们为什么使用低代码平台以及会选择哪个低代码平台来加速内部系统的开发。
699 0
6款 Retool 最佳替代方案
服务网格ServiceMesh和高并发、高可用设计手段(上)
服务网格ServiceMesh和高并发、高可用设计手段(上)
115 0
服务网格ServiceMesh和高并发、高可用设计手段(上)
|
存储 BI 数据库
服务网格ServiceMesh和高并发、高可用设计手段(下)
服务网格ServiceMesh和高并发、高可用设计手段(下)
155 0
服务网格ServiceMesh和高并发、高可用设计手段(下)
|
负载均衡 监控
服务网格ServiceMesh和高并发、高可用设计手段(中)
服务网格ServiceMesh和高并发、高可用设计手段(中)
111 0
服务网格ServiceMesh和高并发、高可用设计手段(中)
|
应用服务中间件 缓存 nginx
消除单点,一篇搞定 | 架构设计篇
系统架构中,为什么会存在单点?思路比结论重要。
5392 1
如何设计可靠的灰度方案
一个较大的业务或系统改动,往往会影响整个产品的用户体验或操作流程。为了控制影响面,可以选取一批特定用户、流程、单据等,只允许这一部分用户或数据按照变更后的新逻辑在系统中流转,而另一部分用户仍然执行变更前的老逻辑。这一步是线上系统灰度方案的起点。
如何设计可靠的灰度方案

热门文章

最新文章