01.04 Day 20 - 弹力设计篇之“弹力设计总结”

2024-02-04 09:32
文章标签 设计 总结 day 20 弹力 01.04

本文主要是介绍01.04 Day 20 - 弹力设计篇之“弹力设计总结”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是 Snow Hide,作为《左耳听风》这个专栏的学员之一,这是我打卡的第 20 天,也是我第 20 次进行打卡这种操作。

今天我温习了该专栏里一篇叫《弹力设计篇之“弹力设计总结”》的文章。

关键词总结:弹力设计概览(负载均衡、服务发现、动态路由、自动化运维、服务调度、服务伸缩、故障迁移)、服务界耦合拆分(bulkheads 模式、自包含系统、异步通讯、自动化运维)、容错设计(错误方面、一致性方面、流控方面、自动化运维方面)弹力设计开发和运维(比较 Spring Cloud 和 Kubernetes、服务涵盖面比较、服务的功能特性)。

 

所学总结:

 

弹力设计概览

负载均衡

包含负载均衡 & 服务健康检查,可以通过 Nginx 或 HAProxy 等技术实现。

服务发现

包含服务发现 & 动态路由 & 服务健康检查,可以通过 Consul 或 Zookeeper 等技术实现。

自动化运维

包含自动化运维 & 服务调度 & 服务伸缩以及故障迁移,服务调度可以通过 Docker 结合 Kubernetes 来实现。
 

服务界耦合拆分

bulkheads 模式

涵盖了业务分片、用户分片、数据库拆分。

自包含系统

涵盖了从单体到微服务的中间状态,拆分一组相关的微服务,保证没有外部的依赖。

异步通讯

涵盖了服务发现、事件驱动、消息队列、物业工作流。

自动化运维

涵盖了服务调用链和性能的监控系统。
 

容错设计

错误方面

涉及调用重试、熔断以及服务幂等性涉及。

一致性方面

涉及强一致和弱一致,强一致性使用 2PC,最终一致性使用异步通讯方式。

流控方面

涉及限流以及降级的技术。

自动化运维方面

涉及网关流量调度以及服务的监控。
 

弹力设计开发和运维

比较 Spring Cloud 和 Kubernetes

微服务考量Spring Cloud & Netflix OSSKubernetes
配置管理Config Server, Consul, Netflix ArchalusKubernetes ConfigMap & Secrets
服务发现Netflix Eureka, Hashicorp ConsulKubernetes Service & Ingress Resources
负载均衡Netflix RibbonKubernetes Service
API 网关Netflix ZuulKubernetes Services & Ingress Resources
服务安全Spring Cloud Security-
日志中心ELK Stack (LogStash)ELK Stack (Fluentd)
指标中心Netflix Spectator & AtlasHeapster, Promethues, Grafana
分布追踪Spring Cloud Slueth, ZipkinOpenTracing, Zipkin
弹性容错Netflix Hystrix, Turbine & RibbonKubernetes Health Check & resource isolation
自伸缩自愈-Kubernetes Health Check, Self Healing, Autoscaling
打包发布调度Spring BootDocker/Rkt, Kubernetes Scheduler & Deployment
作业管理Spring BatchKubernetes Jobs & Scheduled Jobs
单例应用Spring Cloud ClusterKubernetes Pods

服务涵盖面比较

关键技术Spring CloudKubernetesIaaS
DevOps 经验☑️
自伸缩自愈☑️
弹性容错☑️☑️
分布追踪☑️☑️
指标中心☑️☑️
日志中心☑️☑️
API 网关☑️☑️
作业管理☑️☑️
单例应用☑️☑️
负载均衡☑️☑️
服务发现☑️☑️
配置管理☑️☑️
应用打包☑️☑️
发布调度☑️
进程隔离☑️
环境管理☑️
资源管理☑️
操作系统☑️
虚拟化☑️
硬件存储网络☑️

服务的功能特性

能力Spring Cloud(SC) 结合 Kubernetes(K)
DevOps 经验自服务(K)、多环境能力(K)
自伸缩自愈Pod/Cluster Autoscaler(K)、HealthIndicator(SC)、Scheduler(K)
弹性容错HealthIndicator(SC)、Hystrix(SC)、HealthCheck(K)、Process Check(K)
分布追踪Zipkin
指标中心Heapster、Promethues、Grafana
日志中心EFK
作业管理Spring Batch(SC)、Scheduled Job(K)
负载均衡Ribbon(SC)、Service(k)
服务发现Service(K)
配置管理Externalized Configurations(SC)、ConfigMap(K)、Secret(K)
服务逻辑Apache Camel(SC)、Spring Framework(SC)
应用打包Spring Boot maven plugin(SC)
发布调度Deployment strategy(K)、A/B(K)、Canary(K)、Scheduler strategy(K)
进程隔离Docker(K)、Pods(K)
环境管理Namespaces(K)、Authorizations(K)
资源管理CPU 内存管控(K)、命名空间资源配额(K)
IaaSGEC、Azure、CenturyLink、VMware、Openstack

 

末了

重新总结了一下文中提到的内容:弹力设计、弹力设计总概览、开发运维实践。

这篇关于01.04 Day 20 - 弹力设计篇之“弹力设计总结”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677023

相关文章

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义