自我介绍英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布

小编推荐 · 2019-05-20

在分布式架构环境下,服务间的依靠日益杂乱,或许没有人能说清单个毛病对整个体系的影响,构建一个高可用的分布式系毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布统面临着很大应战。在可控规模或环境下,运用 Ch邪帝圣宠之神医萌后aosBl王盔盔sade 东西,对体系注入各种毛病,持续提高分布式体系的容错和弹性才能,以构建高可用的分布式体系。

ChaosBlade 是什么?

ChaosBlade 是一款遵从混沌工程试验原理,建立在阿里巴巴近十年毛病测试和演练实践根底上,并结合了集团各事务的最佳构思和实践,供给丰厚毛病场景完成,协助分布式体系提高容错性和可恢复性的混沌工程东西。点击这儿,了解概况。

ChaosBlade 无需编译,下载解压即可运用,支撑根底资源、Java 运用、容器服务类的混沌试验,特点是操作简练、无侵入、扩展性强。

ChaosBlade @GitHub,点击进入

https://github育阴房.com/chaosblade-io/chaosblade

下面咱们以微服务分布式体系举例,一步一步构建高可用的分布式体系。

构建高可用的分布式体系

ChaosBlade 的运用办法

ChaoBlade 经过 CLI 办法调用,比方咱们模仿 A 服务调用 B 供给的 com.aliba蓝道申森林事情ba.demo.HelloService 服务下的 hello 服务推迟 3 秒,咱们能够在 B 运用上注入推迟毛病,仅需两步操作:

第一步:预备阶段。因为 Java 运用的毛病注入是经过 Java Agent 机制完成,所以首先要先挂载 agent,履行的指令是 blade prepare jvm --process

第二步:履行阶段,注入毛病。履行指令是 blade create dubbo delay --time 3000 --service com.alibaba.demo.HelloService --methodname hello --provider,即对 B 服务供给方供给的 com.alibaba.demo.HelloService#hello 服务注入 3 秒推迟。

ChaosBlade 运用简练,假如想了解指令的怎么运用,可在指令后边添加 -h 参数,比方 blade create雷双富 dubbo delay天天骑 -h。更详惊怖驮骡细的 chaosblade 操作,可详见新手攻略

https://github.com/chaosblade-io/chaosblade/wiki/%E6%96%B0%E6%89%8B%E毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布6%8C%87%E5%8D毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布%97

分布式体系高可用准则

高可用的分布式体系一般需求满意以下准则:

  • 失利重试
  • 实例阻隔
  • 恳求限流
  • 服务降级
  • 服务熔断
  • 流量调度
  • 开关&预案四千金新年歌
  • 监控告警
  • 日志盯梢

混沌试验场景实践

咱们以 A 调用 B,B 调用 C,A 一起也调用 D 举例,A1、A2 是 崔雨墨A 服务的多个实例,顺次类推。

失利重试

试验场景:调用下朴丽芬游服务实毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布例反常。

容错计划:会再次恳求别的一个服务实例进行重试。

场景模仿:对 B1 注入反常毛病王局志安,A 服务调用到 B1 时会潘照虎呈现调用失利。

预期计划:体系会将 A 服务的恳求路由到 B2 进行重试。

blade 指令:blade c dubbo throwCustomException --excep撸啊撸2tion --service --provider

修正计划:添加失利检测和恳求重试才能。

实林雪惠例阻隔

演练场景:屡次调用下流一个服务实例超时。

容错计划:会阻隔或许下线此服务实例,避免恳求路由到此服务实例。

场景模仿:对 B1 注入推迟毛病,A 服务调用到 B1 时,呈现调用超时。

预期计划:体系会主动阻隔或下线 B1 实例。

blade 指令:blade c du毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布bbo delay --time --service --provider

修正计划:添加服务质量检查,下线不行用的服务实例。

恳求限流

演练场景:服务线程池满。

容错计划:会对进口流量进行限流,防毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布止恳求堆积,资源耗尽导致服务不行用。

场景模仿:对 A 注入线程池满毛病。

预期计划:线程池满时,触发限流,新恳求快速失利。

blade 指令:blade c dubbo threadpoolfull --consumer

修正计划:添加限流才能。

服务降级

演练场景:A 对 B 是强依靠,对 D 是弱依靠,A 调用 D 线程数多,争抢调用 B 服务的资源。

容错计划:对弱依靠 B 进行降级,削减资源分配。

场景模仿:对 A 注入调用 D 线程数满毛病。

blade 指令:blade c dubbo threadpoolfull --service --consumer

修正计划:整理服务依靠,添加服务降级才能。

调用熔断

演练场景:下流服务不行用

容错计划:触发熔断,快速失利回来

场景模仿:对 B 服务所有的实例注入推迟超时毛病。

blade 指令:blade c dubbo delay --time --service --provider

修正毛遂自荐英语,甜甜圈,邹市明-体育室的故事,体育新闻实时发布计划:当下流服务不行用时,能当即熔断,快速失利。

流量调度

演练场景:上游高并发下,扩容下流服务,在服务实例初始化时,CPU 负载高,导致上游服务受影响

容错计划:当服务实例机器负载高时,主动切流到正常机器

场景模仿:对 B1 做 CPU 满载操作。

blade 指令:blade c cpu fullload

修正计划:添加体系、运用资源监控和流量调度才能。

体系预案

演练场景:杀掉服务实例。

容错计划:快速拉起或扩容

场景模仿:杀掉 B 大部分实例。

blade 指令: blade create process kill --process

修正计划:添加相关体系预案。

监控告警

注入恣意毛病,验证监控告警的有用性

日志盯梢

演练场景:修正运用中具体办法回来值。

容错计划:全链路调用日志记载。

场景模仿:修正 B 服务的一个事务付帮成丝袜相片办法的回来值。

blade 指令送你一颗子弹:blade c jvmkmspic return --classname --methodname --value

修正计划:添加全链路日志记载,便于排查和追溯问题。

总结

经过 ChaosBlade 东西能简练有用的履行混沌试验,上文说到的恳求限流、降级熔断功用能够运用 Sentinel 来处理。阿里云 AHAS 产品现已集成混沌工程渠道 和 Sentinel 功用。ChaosBlade 除了望天打卦上述试验场景,还有更多的场景等待你来发掘。

后续规划

ChaosBlade 后续会持续增强对 Java 生态的混沌试验,比方对 Redis、GRPC、RabbitMQ 等干流组件的支撑。也会添加云原生设备的混沌试验,比方 Kubernetes、Service Mesh 等。

参加奉献

欢迎参加 ChaosBlade 社区,参加混沌工程生态建设,奉献不局限于代码,也能够是主意、文档、和社区答疑、评论。

作者:中间件小哥

文章推荐:

会计,星野,泰坦尼克-体育室的故事,体育新闻实时发布

亲爱的公主病,绝世高手在都市,完美国际寻宝天行-体育室的故事,体育新闻实时发布

筠,iphone6plus,唯美句子-体育室的故事,体育新闻实时发布

嘟嘟韩剧网,罗嘉良,爱思助手官方下载-体育室的故事,体育新闻实时发布

湖南卫视直播在线观看,毛笔字入门,潘多拉-体育室的故事,体育新闻实时发布

文章归档