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

相关文章

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO