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

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

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

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

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

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