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

怎样建设网站是什么样的广州海珠区景点

怎样建设网站是什么样的,广州海珠区景点,专营网站建设,中文搜索引擎网站来源|阿里巴巴云原生公众号 前言 在分布式系统架构下#xff0c;服务组件繁多且服务间的依赖错综复杂#xff0c;很难评估单个故障对整个系统的影响#xff0c;而且请求链路长#xff0c;如果监控告警、日志记录等基础服务不完善会造成故障响应、故障定位问题难#xff… 来源|阿里巴巴云原生公众号 前言 在分布式系统架构下服务组件繁多且服务间的依赖错综复杂很难评估单个故障对整个系统的影响而且请求链路长如果监控告警、日志记录等基础服务不完善会造成故障响应、故障定位问题难所以如何构建一个高可用的分布式系统面临着很大挑战。混沌工程就此产生在可控范围或环境下通过对系统注入故障观察系统行为并发现系统缺陷以建立对分布式系统因意外条件引发混乱的能力和信心持续提升系统的稳定性和高可用能力。 混沌工程的实施流程是制订混沌实验计划、定义稳态指标做出系统容错行为假设然后执行混沌实验检查系统稳态指标等。也因此混沌实验整个过程需要可靠的、易于使用且场景丰富的混沌实验工具注入故障以及完整的分布式链路追踪和系统监控工具以便触发应急响应预警方案与快速地进行故障定位并观察整个过程系统的各项数据指标等。本篇文章我们介绍混沌实验工具ChaosBlade和 分布式系统监控工具SkyWalking并且结合一个的微服务案例分享一下 ChaosBlade  和 SkyWalking 微服务高可用实践。 工具介绍 1. ChaosBlade ChaosBlade 是一款遵循混沌工程实验原理提供丰富故障场景实现帮助分布式系统提升容错性和可恢复性的混沌工程工具可实现底层故障的注入并且在企业上云或往云原生系统迁移过程中业务连续性保障特点是操作简洁、无侵入、扩展性强。ChaosBlade 可以在可控范围或环境下通过故障注入来持续提升系统的稳定性和高可用能力。 ChaosBlade 不仅使用简单而且支持丰富的实验场景场景包括 基础资源比如 CPU、内存、网络、磁盘、进程等实验场景Java 应用比如数据库、缓存、消息、JVM 本身、微服务等还可以指定任意类方法注入各种复杂的实验场景C 应用比如指定任意方法或某行代码注入延迟、变量和返回值篡改等实验场景Docker 容器比如杀容器、容器内 CPU、内存、网络、磁盘、进程等实验场景云原生平台比如 Kubernetes 平台节点上 CPU、内存、网络、磁盘、进程实验场景Pod 网络和 Pod 本身实验场景如杀 Pod容器的实验场景如上述的 Docker 容器实验场景 ChaosBlade 将场景按领域实现封装成一个个单独的项目不仅可以使领域内场景标准化实现而且非常方便场景水平和垂直扩展通过遵循混沌实验模型实现 chaosblade cli 统一调用 。 2. SkyWalking SkyWalking 是一个开源的 APM 系统包括对云本地架构中的分布式系统的监视、跟踪和诊断功能。核心特性如下 服务、服务实例、端点指标分析根本原因分析服务拓扑图分析服务、服务实例和端点依赖性分析检测到慢速服务和终结点性能优化分布式跟踪和上下文传播数据库访问指标。检测慢速数据库访问语句包括SQL语句。报警 工具安装及使用 ChaosBlade 的安装和使用都很简便ChaosBlade 各场景通过  chaosblade cli 统一调用仅需要下载对应的 tar 包解压后使用 blade 可执行文件来进行混沌实验下载地址详见https://github.com/chaosblade-io/chaosblade/releases 。 1. ChaosBlade 安装 本次我们的实际环境是 linux-amd64下载最新版本 chaosblade-linux-amd64.tar.gz 包安装步骤如下 ## 下载 wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/0.9.0/chaosblade-0.9.0-linux-amd64.tar.gz ## 解压 tar -zxf chaosblade-0.9.0-linux-amd64.tar.gz ## 设置环境变量 export PATH$PATH:chaosblade-0.9.0/ ## 测试 blade -h 2. ChaosBlade 使用 ChaosBlade 安装完成后仅需要使用 blade 可执行文件即可创建目前所支持的所有场景的混沌实验。首先使用 blade -h 查看如何使用选择子命令之后只需要逐层向下使用 -h 即可看到完整的使用案例以及各参数的详细解析下面我们来演示一下: 1blade 如何使用 执行 blade -h 可以查看支持命令有哪些 An easy to use and powerful chaos engineering experiment toolkitUsage:blade [command]Available Commands:create Create a chaos engineering experimentdestroy Destroy a chaos experiment ... 2创建实验场景 比如创建 CPU 满载场景执行 blade create cpu fullload -h 就可以查看具体的场景参数选择相应参数执行即可 Create chaos engineering experiments with CPU loadUsage:blade create cpu fullloadAliases:fullload, fl, loadExamples:# Create a CPU full load experiment blade create cpu load#Specifies two random kernels full load blade create cpu load --cpu-percent 60 --cpu-count 2 ...Flags:--blade-release string Blade release packageuse this flag when the channel is ssh--channel string Select the channel for execution, and you can now select SSH--climb-time string durations(s) to climb--cpu-count string Cpu count--cpu-list string CPUs in which to allow burning (0-3 or 1,3)--cpu-percent string percent of burn CPU (0-100) ... 3恢复实验 ChaosBlade 支持三种方式恢复实验 ChaosBlade 创建实验成功后会返回一个UID执行 blade destroy uid 即可。如果找不到对应的UID时执行 blade destroy target action 即可例如 blade destroy cpu fullload。在创建实验时带上 --timeout 10 参数在实验场景执行十秒后会自动恢复同时支持表达式例如三分钟 --timeout 30m。 3. SkyWalking 安装使用 SkyWalking 安装和使用文档详见https://github.com/apache/skywalking/tree/v8.1.0/docs 工具部署好之后下面我们将结合案例主动出击通过故障注入观察系统行为定位问题并发现系统缺陷以便构建高可用的微服务系统。 应用容错案例 我们在日常环境部署一个微服务应用 来进行实验使用 ab 测试模拟系统请求。微服务应用服务包含前端、购物车、推荐服务、商品、订单等使用组建包含  Springboot、Nacos、Mysql、Redis、Lettuce、Dubbo 等。ChaosBlade 支持该应用的大部分组件我们通过 ChaosBlade 来注入混沌实验验证应用容错能力并且使用 SkyWalking 进行应用监控和问题定位。 1. 案例环境 Linux-AMD64发行版本 CentOS-7.xJDK1.8chaosblade-0.9.0下载地址https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/0.9.0/chaosblade-0.9.0-linux-amd64.tar.gzskywalking-apm-8.1.0下载地址https://www.apache.org/dyn/closer.cgi/skywalking/8.1.0/apache-skywalking-apm-8.1.0.tar.gz 2. 应用拓扑结构 应用的整体架构如下前端frontend对购物车car、产品product等都是通过 Dubbo 强依赖调用。 3. 混沌实验步骤 制定混沌实验计划定义系统稳态指标作出系统容错行为假设执行混沌实验检查稳态指标记录和恢复混沌实验修复发现的问题自动化持续进行验证 下面我们将根据混沌实验步骤使用 ChaosBlade 实际进行混沌实验。 4. 案例一 1场景 制定混沌实验计划调用下游服务频繁延迟使用 ab 测试模拟常态访问购物车接口开启 2 个线程进行 10000 次接口访问。 ab -n 10000 -c 2 http://127.0.0.1:8083/cart 2监控指标 定义系统稳态指标在 SkyWalking 控制台选择 /cart 端点稳态指标如下 平均响应时间RT在 15ms 左右。P99 指标在 20ms 以内。3期望假设 配置调用超时时间不会长时间阻塞客户端请求。配置服务熔断策略/服务降级。 4混沌实验 在上节我们已经介绍过 ChaosBlade 的安装和简单实用本次案例我们使用 ChaosBlade 对下游 Dubbo 购物车服务注入延迟故障延迟时间 30 秒执行 blade create dubbo delay -h 命令查看 dubbo 调用延迟的命令用法 Dubbo interface to do delay experiments, support provider and consumerUsage:blade create dubbo delayExamples: # Invoke com.alibaba.demo.HelloService.hello() service, do delay 3 seconds experiment blade create dubbo delay --time 3000 --service com.alibaba.demo.HelloService --methodname hello --consumerFlags:--appname string The consumer or provider application name--consumer To tag consumer role experiment.--effect-count string The count of chaos experiment in effect--effect-percent string The percent of chaos experiment in effect--group string The service group-h, --help help for delay--methodname string The method name--offset string delay offset for the time--override only for java now, uninstall java agent--pid string The process id--process string Application process name--provider To tag provider experiment--service string The service interface--time string delay time (required)--timeout string set timeout for experiment in seconds--version string the service versionGlobal Flags:-d, --debug Set client to DEBUG mode--uid string Set Uid for the experiment, adapt to docker 参考案例和参数解释需要上游服务客户端注入延迟故障延迟时间 30 秒借助 SkyWalking 可以很方便找到链路上 Dubbo 服务相关信息首先查询端点为 /cart 的链路在链路上找到 Dubbo 服务如下图 查找链路获取协议详细信息点进来可以查看 Dubbo 服务详细跨度信息获取 Dubbo 服务的 URL 后就可以拿到使用 ChaosBlade 来注入上游服务延时所需要的参数因此我们的最终参数结构为 --time 30000 延迟30s--service com.alibabacloud.hipstershop.cartserviceapi.service.CartService  服务--methodname viewCart 服务方法--process frontend Java 进程--consumer 当前是 Dubbo 服务客户端 下发命令注入故障 blade create dubbo delay --time 30000 --service com.alibabacloud.hipstershop.cartserviceapi.service.CartService --methodname viewCart --process frontend --consumer 5监控指标 注入故障后检查系统指标查看 SkyWalking 上的指标 平均响应时间RT在 2000ms 左右P99 指标在 2000ms 左右/cart 接口调用报错com.alibabacloud.hipstershop.cartserviceapi.service.CartService 服务出现异常。出现 timeout 异常超时时间为 2000ms结论说明上游服务配置了调用超时时间但没有配置服务熔断策略实际是不符合预期的。 6修复问题 配置服务熔断策略/服务降级。 5. 案例二 1场景 运行中 Dubbo 服务提供方访问注册中心失败在注册中心机器注入故障网络丢包 100%。 2监控指标 定义系统稳态指标在 SkyWalking 控制台选择服务端点稳态指标如下 com.alibabacloud.hipstershop.cartserviceapi.service.CartService.viewCart 服务正常3期望假设 上游服务业务不受影响下游服务不受影响。 4混沌实验 对注册中心端口注入丢包故障100%我们是使用的 nacos 作为 Dubbo 的注册中心默认端口 8848网卡是 eth0命令参数如下 --interface eth0 网卡--percent 100 丢包率100%--local-port 本地端口 8848 下发命令注入故障 blade create network loss --interface eth0 --percent 100 --local-port 8848 5监控指标 在注入故障后在 SkyWalking 控制台选择服务端点稳态指标如下 com.alibabacloud.hipstershop.cartserviceapi.service.CartService.viewCart 服务正常结论服务对注册中心是弱依赖且服务本身具有本地缓存符合期望假设。 假设应用现在部署 Kubernetes 集群中可以增加验证注册中心水平扩容能力ChaosBlade 同时也支持 Kubernetes 集群场景。 6. 牛刀小试 在上诉案例中我们验证了服务是否配置了超时和熔断策略验证了 Dubbo 是否对注册中心是弱依赖且服务本身具有本地缓存。你是否也跃跃欲动想要在自己系统中体验一把ChaosBlade  为大家准备了丰富的实验场景不仅支持基础资源、应用维度还是云原生平台的一把利器。 ChaosBlade 易于使用也提供了详细的参数来控制故障最小爆炸半径相信 ChaosBlade 会让大家非常容易上手。 纸上得来终觉浅这里我们提供一个额外的小案例供大家实践。我们在应用开发中经常会与关系数据库打交通而当应用流量快速增长时瓶颈往往会在数据库端发生出现很多慢 SQL。当没有慢 SQL 预警时我们很难找到原始 SQL 并对它进行优化所以慢 SQL 预警十分重要。如何验证应用具备这个能力ChaosBlade 就可以支持注入 MySQL 慢 SQL 故障执行 blade create mysql delay -h 查看 MySQL 调用延迟的命令用法 Mysql delay experimentUsage:blade create mysql delayExamples: # Do a delay 2s experiment for mysql client connection port3306 INSERT statement blade create mysql delay --time 2000 --sqltype select --port 3306Flags:--database string The database name which used--effect-count string The count of chaos experiment in effect--effect-percent string The percent of chaos experiment in effect-h, --help help for --host string The database host--offset string delay offset for the time--override only for java now, uninstall java agent--pid string The process id--port string The database port which used--process string Application process name--sqltype string The sql type, for example, select, update and so on.--table string The first table name in sql.--time string delay time (required)--timeout string set timeout for experiment in secondsGlobal Flags:-d, --debug Set client to DEBUG mode--uid string Set Uid for the experiment, adapt to docker 可以看到 ChaosBlade 提供了完整的案例支持更细粒度的 SQL 类型表名等参数。对连接端口时 3306 的 select 操作延时 10s 看看当流量命中时是否在你的应用中产生了预警呢 blade create mysql delay --time 10000 --sqltype select --port 3306 命令参数解释 --time 10000 延时 10s--sqltype select 仅支持 select 类型的 SQL 语句--port 3306 仅支持端口是 3306 的连接 总结 在本篇文章中我们介绍了混沌工程在实际复杂分布式架构中的应用并且结合 ChaosBlade 和 SkyWalking 在实际应用中进行混沌实验从而可以根据故障的情况来对系统分析优化持续提升系统的稳定性和高可用能力。ChaosBlade 不仅支持基础资源、应用维度还是云原生平台的一把利器欢迎大家尝试使用。 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.zqtcl.cn/news/848514/

相关文章:

  • 手机网站用什么后台wordpress 百度蜘蛛
  • 网站文章伪原创怎么做手机网站 程序
  • 网站建设每月工作多少开发小程序的目的
  • 社区网站建设方案pptwordpress用户名在哪看
  • 浙江企业响应式网站建设公司简介如何写
  • 自己做静态网站的步骤店面设计在线
  • 活动汪活动策划网站wordpress 无法保存
  • 门户网站开发案例兰州需要做网站的公司有哪些
  • 东莞企业网站asp网站怎么安装
  • 个人做公司网站网站备案取消接入
  • 崇信网站建设it外包的收益主要有哪些
  • 安陆做网站多少钱免费网站定制
  • 快递网站模版长春好的做网站公司有哪些
  • 怎么利用公司网站开发客户网站建设重点步骤
  • 网站站内推广用个人电脑做网站的步骤
  • 网站设计主要包含3个方面陕西城乡住房建设部网站
  • 专门做汽车配件的网站东莞招聘网有哪些比较好
  • 网站前台怎么套用织梦后台小网站怎么建设
  • 网站框架代码深圳手机网站设计
  • 更改网站主题九江建网站的公司
  • 如何分析一个网站网站页面建设
  • 做网站好网页制作3个网页的网站图片
  • 合肥网站建设网站推广新的网站建设一般多少钱
  • 北京网站改版哪家好网站关键词怎样做优化
  • 网站开发行业分析wordpress 粘贴表格
  • 网站开发的招标参数网络科技公司网站源码下载
  • 属于网络营销站点推广的是seo好wordpress主题
  • j2ee只做网站阿里企业邮箱免费
  • 做企业网站需要买什么资料室内设计学徒
  • 网站新增关键词设计公司logo公司文化