- 博客(494)
- 收藏
- 关注

原创 【设计模式】入门 23 种设计模式(代码讲解)
设计模式是在软件设计中反复出现的问题的通用解决方案。它们是经过多次验证和应用的指导原则,旨在帮助软件开发人员解决特定类型的问题,提高代码的可维护性、可扩展性和重用性。设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们的代码。它们提供了一种通用的框架,可以用于解决各种不同的软件设计问题。设计模式不是完整的代码,而是一种描述问题和解决方案之间关系的模板。
2024-11-17 16:21:33
1305

原创 【Kubernetes】K8s 实践之旅
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化,它拥有庞大且快速发展的生态系统,Kubernetes 服务、支持和工具随处可见。
2024-09-02 00:18:35
498
1
原创 【Python Cookbook】字符串和文本(一)
需要注意的是,如果你打算做大量的匹配和搜索操作的话,最好先编译正则表达式,然后再重复使用它。模块级别的函数会将最近编译过的模式缓存起来,因此并不会消耗太多的性能,但是如果使用预编译模式的话,你将会减少查找和一些额外的处理损耗。
2025-03-22 20:32:32
516
原创 【Python Cookbook】数据结构和算法(四)
另外一个值得关注的过滤工具就是 itertools.compress(),它以一个 iterable 对象和一个相对应的 Boolean 选择器序列作为输入参数。然后输出 iterable 对象中对应选择器为 True 的元素。当你需要用另外一个相关联的序列来过滤某个序列的时候,这个函数是非常有用的。比如,假如现在你有下面两列数据:
2025-03-22 11:35:07
1164
原创 【Python Cookbook】数据结构和算法(三)
内置的 sorted() 函数有一个关键字参数 key,可以传入一个 callable 对象给它,这个 callable 对象对每个传入的对象返回一个值,这个值会被 sorted 用来排序这些对象。比如,如果你在应用程序里面有一个 User 实例序列,并且你希望通过他们的 user_id 属性进行排序,你可以提供一个以 User 实例作为输入并输出对应 user_id 值的 callable 对象
2025-03-20 23:47:40
628
原创 【Python Cookbook】数据结构和算法(二)
你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值,所以你只需要关注添加元素操作了
2025-03-17 22:32:57
891
原创 【Python Cookbook】数据结构和算法(一)
任何的序列(或者是可迭代对象)可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序列相吻合。
2025-03-15 23:54:19
916
原创 【弹性计算】异构计算云服务和 AI 加速器(三):GPU 虚拟化技术
GPU 直通模式是对物理机性能损耗最小的方案,被各云服务提供商广泛采用。GPU 直通模式如下图所示。它没有对 GPU 功能性做任何限制,兼容性也最好。在 GPU 直通模式下,物理机的 GPU 驱动可以直接安装到虚拟机内使用。该模式的缺点也很明显,首先直通模式不支持热迁移,在宿主服务器上无法对设备进行操作,其次它缺少设备的监控数据。
2025-03-09 20:05:56
971
原创 【弹性计算】异构计算云服务和 AI 加速器(二):适用场景
GPU 云服务器在传统的图形处理领域具有强大的优势,利用 GPU 的并行处理架构,不仅能进行深度学习的浮点运算,更可以在实时图形光栅化的应用场景下发挥巨大的优势。GPU 每秒钟可以轻易处理 750 亿以上像素的渲染,可以每秒对 1500 亿以上的纹理像素进行采样和运算。GPU 支持 DirectX(9.0 到 12.0 标准),OpenGL(2.0 到 4.5 标准)及 Vulkan 等这样的标准图形 API 进行加速,在这些 API 之上构建了丰富的软件生态,从操作系统到应用程序都能够无缝地支持,迅速获取
2025-03-08 23:03:26
777
原创 【弹性计算】异构计算云服务和 AI 加速器(一):功能特点
异构计算指由不同类型指令集和体系架构的计算单元组成系统的计算方式,目前主要包括 GPU、FPGA 和定制 ASIC 等。它们好比天赋异禀的独门高手,在特定场景下比普通的云服务器高出一个甚至更多数量级的性价比和效率,例如,在图形图像处理、机器学习、科学计算等场景下。要把这些异构计算设备包装成云服务器,同样需要对它们进行虚拟化。而由于这些设备的特殊性,其虚拟化技术或多或少地有别于 CPU。
2025-03-08 20:27:38
1065
原创 【弹性计算】弹性裸金属服务器和神龙虚拟化(三):弹性裸金属技术
2003 年,Xen 在 SOSP 发表 Xen and the Art of Virtualization,拉开了 x86 平台虚拟化技术的大幕。2006 年,AWS 发布 EC2(Elastic Compute Cloud),同年发布 S3(Simple Storage Service),拉开了公共云服务的大幕。EC2 的核心正是基于 Xen 虚拟化技术。虚拟化技术赋予了 EC2 核心产品价值 —— 弹性,同时虚拟化技术给网络虚拟化、存储虚拟化,和管控系统提供了业务部署点。
2025-03-02 23:12:29
897
原创 【弹性计算】弹性裸金属服务器和神龙虚拟化(二):适用场景
伴随着公共云的高速发展,通过混合云打通用户线下专有云和线上公共云资源的需求日趋强烈。OpenStack 和 VMware 等 IaaS Stack 在公共云上部署,同时管理用户线上和线下 IaaS 资源,可以看到,VMware Cloud on Alibaba Cloud 就属于此种混合云业务应用场景。
2025-03-01 23:45:54
758
原创 【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点
裸金属服务器(Bare Metal Server) 是一种物理服务器,它直接提供硬件资源给用户使用,而不是通过虚拟化技术将资源分割成多个虚拟机。用户可以完全独占服务器的所有硬件资源(如 CPU、内存、存储等),并且可以直接在服务器上安装操作系统和应用程序。
2025-03-01 23:27:38
1113
原创 【弹性计算】虚拟机云服务器(四):Guest OS
Guest OS 作为运行在虚拟机云服务器之上的系统软件,是虚拟机云服务器服务的重要组成部分。由于虚拟机云服务器交付给用户的是 “VM 服务”,因此,作为对接用户的 “最后一公里” 的产品,一个优秀的 Guest OS,是保障云服务提供商交付的 “VM 服务” 三大核心竞争优势的重要组成部分。
2025-02-26 21:56:55
948
原创 【弹性计算】虚拟机云服务器(三):调度技术
调度系统就是资源分配的决策过程,即在合适的时间给合适的对象分配合适的资源。因资源不同,所以出现了各式各样的调度系统。如果资源是 CPU 的时间片,那么它可能是操作系统内部的进程调度;如果资源是用于创建虚拟机的一台台物理机,那么它是云上的虚拟机调度系统,如阿里云的后羿调度系统。
2025-02-23 20:20:24
974
原创 【弹性计算】虚拟机云服务器(二):虚拟化技术
虚拟机是公共云服务提供商的核心产品形态,故虚拟化技术也是弹性计算技术中的核心技术之一。虚拟化技术涉及计算虚拟化、存储虚拟化、网络虚拟化、管控调度等方面,本文主要介绍其中的计算虚拟化技术,以阿里云的虚拟化技术发展历程作为开篇概述,再介绍业界流行的 KVM 虚拟化技术,最后概括介绍云计算中虚拟化的热迁移和热升级这两大关键技术。
2025-02-21 23:56:39
696
原创 【弹性计算】虚拟机云服务器(一):功能特点 & 适用场景
“计算” 位居弹性计算的三大件之首,也是弹性计算的主题词。在公共云上,计算产品不仅有既基础又重要的虚拟机云服务器,而且包含了近年来为了满足用户的多样化需求而开发出来的裸金属服务器、异构计算云服务器、超级计算集群、容器服务、函数计算等丰富的产品。这些产品面向不同的用户场景,在功能上各有千秋,但 本质上都是对计算力的包装。
2025-02-19 21:41:56
827
原创 【弹性计算】IaaS 和 PaaS 类计算产品
轻量应用服务器是面向单机应用场景的计算服务,提供应用一键部署、一站式域名解析、网站发布、安全、运维、管理等服务,极大地优化了搭建简单应用的体验,降低了入门级用户使用云计算产品的门槛。轻量应用服务器不仅涵盖了普通 ECS 所需要的所有计算、存储、网络和镜像部件,还提供了类似于域名解析、HTTPS 加密访问等功能。
2025-02-18 21:13:12
1084
原创 【弹性计算】云上运维
虚拟机形态的云服务器产品对用户来说是基本的计算单元,随着云上应用规模的扩大,很多用户在云上保有数千乃至数万虚拟机成为一种常态。数万的虚拟机、数万的 IP 地址、数千的应用需要管理,这一切对于云上的资源管理员来说压力极大。如何帮助用户提升云上资源管理效率?相比于线下,云上资源的弹性能力具有颠覆性的提升,用户在云上可以按需创建资源和按量付费。这种弹性能力在使用中如何变得简单高效,是弹性计算整个业务团队持续思考的问题。云计算是普惠科技,必须要让它能够被简单地使用。
2025-02-18 13:04:02
847
原创 【弹性计算】容器、裸金属
技术的演进总是螺旋式地上升和迭代的,对于计算单元的演进方向从物理机到虚拟机、容器,再到无服务器计算之后,随着虚拟化技术的演进,软硬件一体化 的概念被进一步地实践落地。经过重新定义的裸金属不仅成为云计算底层的通用硬件方案,而且产生了新的价值。
2025-02-15 22:17:10
823
原创 【弹性计算】云服务器:实例、存储、网络、镜像、快照
云服务器是所有云服务的基础,也是使用最普遍、用户接受度最高的弹性计算产品。因为虚拟化继承了 x86 的标准硬件体系结构和操作系统标准应用界面的双重标准,所以,用户完全可以从过去使用物理机平滑过渡到使用云服务器,从而对底层物理资源的运维这一 “脏活、累活” 则被云服务提供商的自动化、大规模集中运维给取代了。
2025-02-15 17:30:22
1106
原创 【弹性计算】弹性计算的技术架构
弹性计算是对传统 IT 基础设施的颠覆,提供了一种全新的计算力供给方式,大大降低了计算力的使用门槛,成为普惠大众的又一种“能源”。相比传统 IT,弹性计算更加稳定、可靠、安全,性能更好,使用效率更高,而且更加便宜!弹性计算能覆盖非常广泛的计算场景,几乎可以替代所有线下服务器,特别适用于互联网服务、海量计算和储存,以及有流量短时高峰的应用等。
2025-02-14 23:10:42
873
原创 【弹性计算】弹性计算的使用场景
弹性计算旨在满足广泛的计算需求,特别是云服务器这样的产品,其标准化的形态和接口,加上丰富的品类和规格,能满足线下物理服务器承担的几乎所有计算需求。也就是说,运行在线下物理服务器上的所有任务,理论上都可以搬到云服务器上。
2025-02-12 22:28:26
678
原创 【弹性计算】弹性计算的价值
弹性计算到底解决了什么问题,或者说,它的价值在哪里?一言以蔽之,弹性计算就是要把计算力变成普惠的公共资源,让个人、企业、政府和各种机构 —— 无论体量大小,无论何时何地都能够以亲民的价格享受高可用、高安全、高性能、大容量、高效率的基础 IT 计算服务。这种对 IT 资源消费门槛的革命性降低,对整个社会的运作效率、运行成本和创新能力的影响都是极其深远的。
2025-02-11 23:57:10
863
原创 【弹性计算】什么是弹性计算
弹性计算是云计算提供的基础服务之一。顾名思义,弹性计算是一种为用户提供计算力的服务,并且用户可以根据实际需要灵活、动态地调整要购买的容量,即所谓的 “弹性”。
2025-02-07 23:06:47
1031
原创 【Linux】常用系统工作命令
ps 命令用来查看系统上的进程信息。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
2024-11-24 16:17:10
1079
原创 【Spring Boot】用 MyBatis 实现数据的 CRUD
本篇博客将通过 MyBatis 来实现常用的数据增加、删除、修改、查询和分页功能。
2024-11-18 23:56:47
997
原创 【混沌测试】ChaosBlade:从安装到实战
ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。
2024-11-17 23:11:14
1743
原创 【设计模式】行为型模式(五):解释器模式、访问者模式、依赖注入
访问者模式(Visitor)是一种行为设计模式,它允许你在不改变数据结构的情况下,为数据结构中的元素添加新的操作。这种模式特别适用于数据结构相对稳定,但需要在数据结构上定义很多操作的场景。
2024-11-17 15:19:57
1257
原创 【设计模式】行为型模式(四):备忘录模式、中介者模式
备忘录模式(Memento)是一种行为设计模式,它允许你在不破坏封装性的前提下,捕获一个对象的内部状态,并在之后恢复为之前的状态。简单来说,就是保存一个对象的 快照,以便将来可以恢复到这个状态。
2024-11-16 23:52:51
1151
原创 【设计模式】行为型模式(三):责任链模式、状态模式
状态模式(State)是一种行为设计模式,它允许一个对象在其内部状态改变时改变其行为。简单来说,就是让对象的行为随着其状态的变化而变化。这样可以避免大量的条件判断语句,使代码更加清晰和易于维护。
2024-11-16 23:39:11
1403
原创 【设计模式】行为型模式(二):策略模式、命令模式
命令模式(Command)是一种行为设计模式,它将请求封装成一个对象,从而使你能够用不同的请求、队列或者请求日志来参数化其他对象。命令模式也支持可撤销的操作。
2024-11-10 14:59:24
962
原创 【设计模式】行为型模式(一):模板方法模式、观察者模式
观察者模式(Observer)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象(称为 主题 或 发布者)的状态发生变化时,所有依赖于它的对象(称为观察者或订阅者)都会自动得到通知并更新。
2024-11-09 16:02:54
1330
1
原创 【设计模式】结构型模式(四):组合模式、享元模式
组合模式(Composite Pattern)是一种设计模式,用于处理树形结构的数据。它的主要目的是将对象组合成树形结构来表示 “部分 - 整体” 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
2024-11-09 14:59:41
1116
原创 【设计模式】结构型模式(三):桥接模式、外观模式
桥接模式(Bridge Pattern)是设计模式中的一种结构型模式,主要用于 将抽象部分与实现部分分离,使它们可以独立变化。这种模式在多种场景下非常有用,尤其是在需要将抽象和实现解耦的情况下。
2024-11-03 16:20:57
1357
原创 【设计模式】结构型模式(二):代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许你提供一个代理对象来控制对某个对象的访问。代理对象可以执行一些额外的操作,如 权限检查、日志记录、延迟初始化 等,然后再将请求转发给实际的对象。
2024-11-03 16:01:32
1042
原创 【设计模式】结构型模式(一):适配器模式、装饰器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,其主要目的是通过适配器将一个接口转换为客户端所期望的另一个接口。这个模式允许你为现有类增加新功能,或者让它们之间兼容,而无需修改其源代码。
2024-11-03 15:45:17
1097
原创 【Spring】AOP 核心概念与设计思想(本文内容由大模型生成)
面向切面编程(Aspect Oriented Programming,AOP)是 Spring 框架中的一个重要特性。它允许你将一些通用的功能,比如日志记录、权限检查和缓存管理等,从业务逻辑中分离出来,并以声明的方式将它们加入到你的程序中。
2024-10-29 23:53:11
900
原创 【Spring】Spring 核心和设计思想
我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃而庞大的社区,这就是它之所以能⻓久不衰的原因。Spring 支持广泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。
2024-10-27 19:47:11
1245
原创 【Spring】控制反转 & 依赖注入(本文内容由大模型生成)
依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC)这两个术语在软件开发中经常被用来描述相同的概念,尤其是在 Spring 框架的上下文中。它们描述的是一种设计模式,这种模式允许通过外部来源动态地向一个对象提供其依赖项,而不是由对象自身负责创建或管理这些依赖项。
2024-10-27 01:25:04
1410
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人