2025三掌柜赠书活动第十五期:高并发系统:设计原理与实践
目录
前言
什么是高并发?
高并发系统的挑战
设计原理
1、分布式架构
2、缓存与异步处理
3、数据库优化
4、弹性扩展
实践方法
1、性能监控与分析
2、压力测试
3、故障排查与容错机制
关于《高并发系统:设计原理与实践》
编辑推荐
内容简介
作者简介
图书目录
《高并发系统:设计原理与实践》全书速览
结束语
前言
在当今数字化时代,随着互联网应用的飞速发展,用户数量和业务请求量呈爆发式增长,高并发系统的设计与优化已成为技术领域的重要课题。无论是电商平台的“双11”购物节,还是社交媒体的实时互动,亦或是金融科技的高频交易,高并发系统都扮演着至关重要的角色。再者,在春运等高峰期,12306网站需要承接数以亿计的购票请求,这对系统的并发处理能力提出了极高的要求。为了应对这一挑战,12306网站进行了多次技术升级和优化,包括引入云计算、大数据分析等技术手段,以提高系统的并发处理能力和用户体验。那么本文就来深入探讨高并发系统的设计原理与实践方法,帮助大家构建高效、稳定且可扩展的系统架构。
什么是高并发?
高并发系统是指能够同时处理大量用户请求或操作的计算机系统或应用。在互联网、移动应用、云计算等场景中,高并发系统十分常见,因为它们需要应对数以万计甚至更多的用户同时访问或操作。
在高并发系统的实践中,还需要考虑系统的可扩展性、稳定性、安全性等多个方面。同时,随着技术的不断发展,新的高并发处理技术也在不断涌现,如容器化、服务网格、无服务器架构等。
高并发系统的挑战
高并发系统面临的首要挑战是性能瓶颈。当大量用户同时访问系统时,服务器的处理能力、网络带宽、数据库响应速度等都可能成为瓶颈,导致系统响应延迟增加,甚至崩溃。其次,数据一致性也是一个关键问题。在高并发环境下,多个用户可能同时对同一数据进行读写操作,如何保证数据的准确性和一致性是一个复杂的技术难题。此外,系统的可扩展性同样不容忽视。随着业务的增长,系统需要能够灵活地扩展资源,以应对不断变化的流量需求。
设计原理
1、分布式架构
分布式架构是应对高并发的核心设计思想。通过将系统拆分为多个独立的模块,部署在不同的服务器上,可以有效分散负载,提高系统的处理能力。例如,微服务架构将复杂的业务逻辑拆分为多个小型、独立的服务,每个服务可以独立扩展,便于开发和维护。同时,分布式架构还可以借助负载均衡技术,将用户请求均匀分配到多个服务器上,避免单点过载。
2、缓存与异步处理
缓存是提高系统性能的关键手段之一。通过将热点数据存储在内存中,可以快速响应用户的读取请求,减少对数据库的直接访问,从而降低数据库的压力。常见的缓存技术包括本地缓存(如 Ehcache)和分布式缓存(如 Redis)。此外,异步处理也是提升系统响应速度的重要策略。通过将耗时的操作(如邮件发送、日志记录等)放入后台队列异步执行,可以快速返回用户请求,提升用户体验。
3、数据库优化
数据库是高并发系统的另一个关键环节。优化数据库性能可以从多个方面入手:索引优化可以加快数据查询速度;读写分离可以将读操作和写操作分配到不同的数据库实例上,提高系统的吞吐量;分库分表可以进一步分散数据存储压力,提升数据库的扩展性。此外,数据库连接池技术可以有效管理数据库连接,减少连接创建和销毁的开销。
4、弹性扩展
弹性扩展是高并发系统应对流量波动的重要能力。通过自动伸缩技术,系统可以根据实时流量动态调整资源分配。例如,云服务提供商(如华为云、阿里云等)提供了弹性计算服务,可以根据预设的规则自动增加或减少服务器实例,确保系统在高流量时有足够的处理能力,而在低流量时节省资源成本。
实践方法
1、性能监控与分析
性能监控是优化高并发系统的基础。通过部署监控工具(如 Prometheus、Grafana 等),可以实时监控系统的各项指标,如 CPU 使用率、内存使用率、网络流量、响应时间等。通过对监控数据的分析,可以快速定位性能瓶颈,为优化提供依据。例如,如果发现某个接口的响应时间异常,可以进一步分析该接口的代码逻辑、数据库查询语句等,找出问题所在。
2、压力测试
压力测试是验证高并发系统性能的重要手段。通过模拟真实的高流量场景,可以测试系统的极限性能和稳定性。常见的压力测试工具包括 JMeter、Locust 等。在进行压力测试时,需要逐步增加并发用户数,观察系统的各项指标变化,确保系统在高并发情况下能够正常运行。同时,压力测试还可以帮助发现潜在的性能问题,提前进行优化。
3、故障排查与容错机制
高并发系统在运行过程中难免会出现故障。因此,建立完善的故障排查与容错机制至关重要。日志记录是故障排查的基础,通过详细记录系统的运行日志,可以快速定位问题根源。熔断机制和降级策略是容错机制的常用手段。当某个服务出现故障时,熔断机制可以快速切断对该服务的调用,避免故障扩散;降级策略则可以在系统资源不足时,优先保证核心功能的正常运行,牺牲一些非核心功能。
关于《高并发系统:设计原理与实践》
接下来给大家推荐一本关于高并发系统的书籍,《高并发系统:设计原理与实践》是一本专注于高并发系统设计与优化的实战宝典,一经出版便受到了技术圈的广泛关注,成为众多开发者和架构师的案头必备。本书从高并发系统的底层原理讲起,深入浅出地剖析了性能瓶颈、负载均衡、分布式架构等核心知识点,并结合大量实战案例,助力读者在面对海量请求时能够游刃有余地设计出高效、稳定的系统架构!另外,关注本文博主,点赞+收藏本文,且在本文评论区评论“入手高并发”,将选取三名幸运读者送出纸质版《高并发系统:设计原理与实践》一本,截止时间:2025.05.09。入手《高并发系统:设计原理与实践》传送门:https://item.jd.com/14413477.html 或者 《高并发系统:设计原理与实践》(唐扬)【简介_书评_在线阅读】 - 当当图书。个人觉得这本书非常实用,是一本难得的高并发领域好书,值得每一位追求技术卓越的读者拥有并深入学习。
编辑推荐
适读人群 :本书既适合软件开发人员阅读,也适合对高并发系统设计感兴趣的科研人员和计算机相关专业的学生阅读,还可用作中小型企业的内训教材。
1. 全面拆解高并发系统设计的难点、基本原则和实践技巧
2. 详解提升高并发系统可用性的3种方法:系统容错、冗余和分片
3. 详解提升高并发系统性能的2种方法:并发和异步
4. 多个高并发系统实际运维案例的解析
内容简介
本书主要探讨高并发场景下系统设计的原理和实践案例,帮助读者系统、快速地理解高并发系统的设计原理与相关实践,以及掌握解决高并发场景下可能遇到的各种问题的方法。
本书共6章。第1章介绍高并发系统的发展历史、设计难点和基本设计原则,以及度量指标;第2~4章介绍有助于提升高并发系统可用性的3种方法—系统容错、冗余和分片;第5章从提升高并发系统性能的角度讲解并发与异步的原理和实践技巧;第6章从系统运维和团队流程管理两个角度讲解如何提升团队对高并发系统的把控性,进而提升系统的可用性。
本书既适合软件开发人员阅读,也适合对高并发系统设计感兴趣的科研人员和计算机相关专业的学生阅读,还可用作中小型企业的内训教材。
作者简介
唐扬,互联网资深技术专家,拥有超过 15 年的开发和架构经验。曾在美图、网易、新浪等大型互联网公司负责过多个大型产品的开发与维护工作,带领不同团队支撑过多个日均活跃用户数超千万的 App。在“极客时间”开设的“高并发系统设计 40 问”专栏,凭借专业且实用的内容,吸引了超 5 万名学习者参与,在业内引发广泛关注与学习热潮。
图书目录
第 1章 高并发系统概述 1
1.1 高并发系统的发展历史 3
1.2 高并发系统的设计难点 3
1.2.1 系统的高可用 4
1.2.2 访问的高性能 6
1.3 高并发系统的基本设计原则 8
1.3.1 面向失败编程 9
1.3.2 可扩展 11
1.3.3 缓存 12
1.3.4 并发 15
1.4 高并发系统的度量指标 17
1.4.1 可用性的度量 17
1.4.2 性能的度量 19
1.5 小结 20
第 2章 系统容错 21
2.1 重试 23
2.1.1 重试策略 25
2.1.2 重试风暴的应对方式 28
2.1.3 幂等性的保证方法 30
2.2 熔断 32
2.2.1 熔断的作用 34
2.2.2 断路器模式与应用 35
2.2.3 弹性熔断算法 39
2.2.4 Sentinel的熔断机制实现 42
2.3 降级 47
2.3.1 降级的典型应用场景和处理方式 48
2.3.2 配置中心的实现 49
2.3.3 降级预案 51
2.4 超时 52
2.4.1 超时的重要性 52
2.4.2 设置任务的超时时间 53
2.5 限流 55
2.5.1 限流的4种算法 55
2.5.2 自适应限流算法 59
2.6 隔离 62
2.6.1 动静隔离 63
2.6.2 物理隔离 68
2.6.3 线程隔离 69
2.6.4 快慢隔离 70
2.6.5 热点数据隔离 71
2.7 小结 71
第3章 冗余 73
3.1 什么是冗余 75
3.2 存储冗余 75
3.2.1 MySQL冗余的实现方式 77
3.2.2 Kafka冗余的实现方式 79
3.3 缓存冗余 81
3.3.1 Memcached冗余的实现方式 82
3.3.2 极端读流量下缓存冗余的实现方式 84
3.3.3 极端写流量下缓存冗余的应对方法 87
3.3.4 缓存数据一致性保证 89
3.3.5 缓存不命中的应对方式 95
3.4 CDN冗余 98
3.4.1 上传系统之殇 99
3.4.2 CDN冗余和调度 101
3.4.3 视频防盗链的实现方式 105
3.5 服务器冗余 107
3.5.1 常见的负载均衡算法 108
3.5.2 故障节点的探测 112
3.5.3 流量爬坡 114
3.6 机房冗余 115
3.6.1 机房冗余的实现方式 115
3.6.2 同城双活 117
3.6.3 两地三中心 119
3.6.4 异地多活 119
3.7 小结 121
第4章 分片 123
4.1 数据库分片 125
4.1.1 常见的数据库分片方式 125
4.1.2 多字段查询 128
4.1.3 数据迁移 129
4.1.4 ID的生成方式 130
4.1.5 分布式系统的数据一致性 134
4.2 缓存分片 139
4.2.1 缓存的分片方式 139
4.2.2 无底洞效应 140
4.3 小结 142
第5章 并发与异步 143
5.1 并发与异步的区别 145
5.2 并发编程的实现方式:池化技术 145
5.2.1 线程池的原理与使用技巧 146
5.2.2 数据库连接池的原理 150
5.3 并发编程的安全性与性能 152
5.3.1 并发编程的安全性 152
5.3.2 并发编程的性能 155
5.4 消息队列 156
5.4.1 消息队列的作用 157
5.4.2 保证消息不丢失 157
5.4.3 保证消息不重复 158
5.4.4 消息延迟的危害 159
5.4.5 消息延迟的优化 160
5.5 小结 162
第6章 高并发系统的运维 163
6.1 全链路监控 165
6.1.1 全链路监控的技术体系 165
6.1.2 分布式追踪系统的构建 168
6.1.3 用户监控系统 171
6.2 报警系统 173
6.2.1 报警的原则 174
6.2.2 常见的报警收敛方法 175
6.3 全链路压测 175
6.3.1 全链路压测的常见误区 176
6.3.2 流量染色 177
6.3.3 流量处理方式 178
6.3.4 影子库表 178
6.3.5 全链路压测系统的架构 179
6.4 故障演练 180
6.4.1 故障演练的原则 181
6.4.2 故障演练的标准执行流程 181
6.4.3 故障演练工具 182
6.5 稳定性保障流程 183
6.5.1 控制变更流程 183
6.5.2 整理SOP文档 185
6.5.3 重视故障复盘机制 185
6.5.4 做好日常系统梳理 186
6.6 小结 187
《高并发系统:设计原理与实践》全书速览
结束语
高并发系统的设计与优化是一个复杂而系统的工程,需要从架构设计、性能优化、弹性扩展等多个方面入手。通过采用分布式架构、缓存与异步处理、数据库优化、弹性扩展等设计原理,结合性能监控与分析、压力测试、故障排查与容错机制等实践方法,可以有效提升系统的性能和稳定性。在实际应用中,还需要根据具体的业务场景和需求,灵活选择合适的技术方案,以应对高并发带来的挑战。尤其是在数字化浪潮的推动下,高并发系统已成为现代互联网和信息技术领域的核心竞争力。《高并发系统:设计原理与实践》以其系统全面的知识体系、丰富的实践案例和实用的技术细节,为每一位技术从业者提供了宝贵的指导和参考,个人觉得书中不仅深入探讨了高并发系统的历史发展和技术难点,还详细介绍了系统容错、分片技术、并发与异步等关键技术,以及高并发系统的运维管理。无论是初学者还是资深开发人员,都能从中找到提升技术能力、解决实际问题的方法和灵感。最后,高并发系统的建设并非一蹴而就,而是一个持续优化的过程。随着技术的不断进步和业务需求的不断变化,系统架构也需要不断迭代升级,希望本文能够为大家提供一些有价值的参考,帮助大家在高并发系统的设计与实践中取得更好的成果。
相关文章:
2025三掌柜赠书活动第十五期:高并发系统:设计原理与实践
目录 前言 什么是高并发? 高并发系统的挑战 设计原理 1、分布式架构 2、缓存与异步处理 3、数据库优化 4、弹性扩展 实践方法 1、性能监控与分析 2、压力测试 3、故障排查与容错机制 关于《高并发系统:设计原理与实践》 编辑推荐 内容简介…...
【Spark入门】Spark架构解析:组件与运行机制深度剖析
1 Spark架构全景图 Apache Spark作为当今最流行的大数据处理框架之一,其卓越性能的背后是一套精心设计的分布式架构。理解Spark的架构组成和运行机制,对于性能调优和故障排查至关重要。 1.1 核心组件架构 组件交互流程: Driver初始化…...
电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
交换机配置DHCP
交换机配置DHCP 背景先关闭路由器的DHCPconsole口连接到交换机配置交换机 背景 路由器的dhcp分配IP地址变慢,怎么处理 先关闭路由器的DHCP 查看路由器中DHCP地址池范围; 关闭路由器的DHCP console口连接到交换机 协议Serial端口COMX波特率9600流控无 配置交换机…...
【人工智能】边缘智能的突破:Ollama模型压缩技术与DeepSeek部署实践
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着边缘计算的兴起,将大型语言模型(LLM)部署到资源受限的边缘设备成为研究热点。Ollama凭借其高效的模型压缩技术和轻量级推理框架,为…...
基于STM32、HAL库的DS2401P安全验证及加密芯片驱动程序设计
一、简介: DS2401P是Maxim Integrated(现为Analog Devices)生产的一款1-Wire硅序列号芯片,具有以下特点: 64位唯一ROM编码(包括8位家族码、48位序列号和8位CRC校验码) 单总线接口,…...
日志收集之 logback使用
一 简介 1.1 Logback 是一个用于 Java 应用程序的强大日志框架,广泛应用于企业级应用中。它是由 SLF4J 的创始人开发的,旨在成为 Log4j 的替代品。Logback 提供更高级、更灵活的功能,同时还支持与 SLF4J 的无缝集成。 2.2 Logback分为下面几…...
Linux学习笔记(一):Linux下的基本指令
文章目录 Linux下的基本指令1. ls指令2. pwd指令3. cd指令4. touch指令5. mkdir指令(牢记)6. rmdir指令 && rm 指令(牢记)7. man指令(牢记)8. echo指令9. cp指令(牢记)10. m…...
Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(二)
一、使用介绍 官方网页:Ollama官方网址 中文文档参考:Ollama中文文档 相关教程:Ollama教程 使用版本:Unity 2022.3.53f1c1、Ollama 0.6.2 示例模型:llama3.2 二、运行示例 三、使用步骤 1、创建Canvas面板 具体…...
SDC命令详解:使用get_clocks命令进行查询
相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 get_clocks命令用于创建一个时钟对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。需要注意的是,在有些工具中还…...
git 修改用户名和邮箱
在 Git 中修改用户名和邮箱地址是常见的任务,这可以确保你的提交记录使用正确的身份信息。你可以通过简单的命令来完成这一操作。 全局配置 修改全局用户名 要修改全局的用户名,请执行以下命令: git config --global user.name "New…...
pg数据库删除模式
不能直接使用 DROP SCHEMA "app_sys" 删除, 这样会报错 cannot drop schema app sys 20250416 because other objects depend on it DETAlL: extension uuid-ossp depends on schema app sys 20250416sequence app sys 20250416.app sys id seq depend…...
【C++】Googletest应用
Googletest 1 配置 使用cmake配置: 具体文件后面上传补充 ./test.out --gtest_filterXXXTest.xxx 2 gdb 为了跟踪流程,可以使用gdb; gdb ./xxx.out gdb --args ./gtest --gtest_filterxxx.xxx设置运行参数 set args --gtest_filterxxx.…...
QgraphicsView异步线程加载地图瓦片
本节主要记录一下qt开发过程中离线地图瓦片的加载方式,瓦片加载选择graphicsView控件,同时为了不影响主线程事件和其他操作,这里采用了异步线程的操作,将地图瓦片加载的步骤放到了异步子线程之中。注:本记录仅为本人笔…...
机器学习day2
使用KNN算法实现机器学习 给我一个苹果的图片 我能预测出这个是一个苹果 代码: # 导入需要的库 # 读图 import os import cv2 # 绘图 import matplotlib.pyplot as plt import seaborn as sns # 数组 import numpy as np from skimage.feature import hog from sk…...
jquery解决谷歌浏览器自动保存加密密码是乱码
添加一个隐形的input框,提交隐藏input框里的数据,展示框展现的还是明文密码,并且不提交展示框的值 <formid"loginForm"class"form-signin newForm-signin"action"${ctx}/login"method"post"onsub…...
Python 如何操作数据库,让你使用 DeepSeek 开发数据库应用更加快 (Orm Bee)
Python 如何操作数据库,让你使用 DeepSeek 开发数据库应用更加快 操作数据库最好用 ORM 工具,可以提高开发效率. ORM 就是实体与数据库表的映射,让我们可以用面向对象的方式来操作数据库. 简单易用,直接上代码. 使用Orm Bee操作…...
如何解决 Linux 文件系统挂载失败的问题
以下是解决Linux文件系统挂载失败问题的系统性排查与解决方案: 一、设备基础检查 确认设备识别状态 执行 lsblk 或 fdisk -l 查看磁盘设备列表,验证目标设备(如 /dev/sdb1)是否被系统识别。 若设备未显示,需排查&a…...
JVM——引入
什么是JVM?它与JDK、JRE的关系? JVM、JRE 和 JDK 是 Java 平台的三个核心组件,各自承担着不同的职责,它们之间的关系密不可分。理解它们的区别和联系有助于更好地开发、部署和运行 Java 应用程序。对于 Java 开发者来说ÿ…...
Golang|工厂模式
工厂模式是一种创建型设计模式,它的核心思想是:把对象的创建过程封装起来,不直接在代码中 new 一个对象,而是通过一个“工厂”来生成对象。这样做的好处是: 降低了代码之间的耦合(依赖具体类减少࿰…...
Transformer数学推导——Q29 推导语音识别中流式注意力(Streaming Attention)的延迟约束优化
该问题归类到Transformer架构问题集——注意力机制——跨模态与多模态。请参考LLM数学推导——Transformer架构问题集。 在语音识别任务中,实时性是核心需求 —— 想象你使用语音助手时,每说完一个词就希望即时看到文字反馈,而不是等整句话说…...
dx11 龙书学习 第四章 dx11 准备工作
4.1 准备工作 Direct3D的初始化过程要求我们熟悉一些基本的Direct3D类型和基本绘图概念;本章第一节会向读者介绍些必要的基础知识。然后我们会详细讲解Direct3D初始化过程中的每一个必要步骤,并顺便介绍一下实时绘图应用程序必须使用的精确计时和时间测…...
运维打铁:域名详解及常见问题解决
文章目录 前言一、域名基础概念1. 什么是域名2. 域名结构3. 域名解析 二、域名工作原理1. DNS 服务器层次结构2. 域名解析过程 三、常见域名问题及解决办法1. 域名无法解析2. 域名解析延迟3. 域名解析结果不一致 四、总结 前言 在当今数字化的时代,互联网已经成为我…...
【大模型ChatGPT+R-Meta】AI赋能R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表“
Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,现已广泛应用于农林生态,资源环境等方面,成为Science、Nature论文的…...
ElasticSearch深入解析(五):如何将一台电脑上的Elasticsearch服务迁移到另一台电脑上
文章目录 0.安装数据迁移工具1.导出数据2.导出mapping3.导出查询模板4.拷贝插件5.拷贝配置6.导入到目标电脑上 0.安装数据迁移工具 Elasticsearch dump是一个用于将Elasticsearch索引数据导出为JSON格式的工具。你可以使用Elasticsearch dump通过命令行或编程接口来导出数据。…...
QT中的多线程
Qt中的多线程和Linux中的线程本质是相同的,Qt中针对系统提供的线程API进行了重新封装 QThread类 Qt中的多线程一般通过QThread类实现,要想创建线程就要创建这个类的实例 QThread代表一个在应用程序中可以独立控制的线程,也可以和进程中的其…...
Win11安装Ubuntu20.04简记
写在前面 之前装的22.04,不稳定,把22.04卸载了,重新安装20.04系统。这里主要把卸载和安装的过程中参考到的博客在这记录一下。 卸载ubuntu系统参考的博文 卸载参考博文1 卸载参考博文2 Ubuntu20.04安装参考博文 安装参考博文1 安装参考博…...
电子电器架构 ---电气/电子架构将在塑造未来出行方面发挥啥作用?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
pdf.js移动端预览PDF文件时,支持双指缩放
在viewer.html中添加手势缩放代码 <script>// alert("Hello World");let agent navigator.userAgent.toLowerCase();// if (!agent.includes("iphone")) {let pinchZoomEnabled false;function enablePinchZoom(pdfViewer) {let startX 0, start…...
机器人--激光雷达
教程 教程 激光雷达 激光 激光(Laser),是一种人造的、高度纯净的单色光。 雷达 激光器旋转机构雷达。 雷达根据激光探头发出激光束的数量,一般可以分为单线激光雷达(2D激光雷达)和多线激光雷(3D激光雷达)。 作用 测距原理 激…...
最新ios开发证书/发布证书/免费证书/企业证书制作教程
本文介绍了如何制作或者苹果开发证书p12文件,含开发证书,推送证书,发布证书,企业证书,免费证书,您在iphone和ipad开发构建 IOS App 应用和苹果ios app签名需要用到。如果嫌麻烦,可以使用懒人工具…...
【Keil5-开发指南】
Keil5-编程指南 ■ Keil5 介绍■ J-Flash 使用■ Keil5-Debug调试工具 Jlink---STLink---DAP仿真器■ Keil5 使用 AStyle插件格式化代码■ Keil5-编译4个阶段■ Keil5-Boot和APP配置■ Keil5-报错■ 芯片手册区别 ■ Keil5 介绍 Keil5 介绍 ■ J-Flash 使用 J-Flash 使用 ■…...
蓝桥杯 18. 机器人繁殖
机器人繁殖 原题目链接 题目描述 X 星系的机器人可以自动复制自己。它们用 1 年的时间可以复制出 2 个自己,然后就失去复制能力。 每年 X 星系都会选出 1 个新出生的机器人发往太空。也就是说,如果 X 星系原有机器人 5 个,1 年后总数是&a…...
从微服务到AI服务:Nacos 3.0如何重构下一代动态治理体系?
在现代微服务架构的浪潮中,Nacos早已成为开发者手中的“瑞士军刀”。作为阿里巴巴开源的核心中间件,它通过动态服务发现、统一配置管理和服务治理能力,为云原生应用提供了坚实的基石。从初创公司到全球500强企业,Nacos凭借其开箱即…...
60、微服务保姆教程(三)Sentinel---高可用流量管理框架/服务容错组件
Sentinel—高可用流量管理框架/服务容错组件 一.为什么要用Sentinel? 1.微服务架构中当某服务挂掉的时候常见的原因有哪些? 1.异常没处理 比如DB连接失败,文件读取失败等 2.突然的流量激增 比如:用户经常会在京东、淘宝、天猫、拼多多等平台上参与商品的秒杀、限时抢…...
[特殊字符] 基于Docker部署Nacos注册中心及微服务注册发现详解(含MySQL持久化配置)
📚 目录 项目背景与准备 Docker部署Nacos并配置MySQL持久化 微服务注册到Nacos(item-service示例) 微服务服务发现与调用(cart-service示例) 小结 1. 项目背景与准备 在微服务架构中,服务注册与发现是…...
CentOS 7环境配置DHCP服务器
主播多次测试,没有什么问题。如果有问题可以私信主播,主播不定时查看 目录 1. 初始配置 1.1 配置VMware workstation配置 1.2 设置虚拟机网路适配器为NAT模式 2. 环境搭建 2.1下载相应的软件包 2.2 查找下载的软件包中给出的示例代码所在目录 2.2 …...
基于常微分方程的神经网络(Neural ODE)
参考资料:B站的视频解析 知乎神经常微分方程总结 论文链接:论文 什么是常微分方程? 微分方程式包含未知函数及其导数的方程,未知函数导数的最高阶数称为给i微分方程的阶。 常微分方程(ordinary differential equation࿰…...
对VTK中的Volume Data体数据进行二维图像处理
文章目录 概要Cpp代码处理前效果处理后效果 概要 在 VTK 中对体数据进行二维图像处理的过程通常涉及从三维体数据中提取二维切片,并对这些切片进行处理。然后,可以选择性地将处理后的切片数据重新合并成新的体数据。 以下是对 VTK 中的体数据进行二维图…...
阿里云ftp服务器登录要怎么做?如何访问ftp服务器?
阿里云ftp服务器登录要怎么做?如何访问ftp服务器? 访问FTP服务器通常需要以下步骤,具体方法取决于您使用的工具和操作系统: 一、FTP服务器登录所需信息 服务器地址:通常是IP地址(如 ftp.example.com 或 192…...
中国的国产化进程
中国的国产化进程是一个涉及国家安全、经济发展和技术自主的长期战略,其历史进程和动因可以从以下几个关键阶段和核心原因来理解: 一、国产化的历史进程 1. 建国初期(1949–1978):自力更生与基础工业建设 背景:新中国成立后,面临西方国家的技术…...
突破语言藩篱:从Seq2Seq到智能翻译的范式革命
## 一、语言之桥的智能进化:超越字面转换的深层理解 在慕尼黑工业大学实验室的深夜,一个搭载最新神经网络的翻译系统正逐字解析着歌德诗句的韵律。这并非简单的词语替换,而是一场跨越时空的文化解码——机器首次在《浮士德》的英译本中保留了德文诗歌特有的头韵结构。这个突…...
Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)
前言 📝 在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅…...
如何使用 Redis 缓存验证码
目录 🧠 Redis 缓存验证码的工作原理 🧰 实现流程 1. 安装 Redis 和 Python 客户端 2. 生成并缓存验证码 示例代码:生成并存储验证码 3. 发送验证码(以短信为例) 4. 校验验证码 示例代码:校验验证码…...
(八)RestAPI 毛子(Unit Testing)
文章目录 项目地址一、Unit Testing1.1 创建X unit 测试项目1. 创建项目目录2. 管理包 1.2 创建CreateEntryDtoValidator测试1.3 创建CreateEntryDtoValidator测试 二、Integration test2.1 创建Integration test环境1. 安装所需要的包 2.2 配置基础设置1. 数据库链接DevHabitW…...
德州仪器(TI)—TDA4VM芯片详解(2)—产品应用和介绍
写在前面 本系列文章主要讲解德州仪器(TI)TDA4VM芯片的相关知识,希望能帮助更多的同学认识和了解德州仪器(TI)TDA4VM芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 错过其他章节的同学…...
vue2,3:v-model的语法糖
Vue2的v-model 语法糖 **1. **v-model 的作用 v-model 是 Vue 中用于实现双向数据绑定的指令,主要用于表单元素(如 、、)和自定义组件。它简化了数据与视图之间的同步,使得开发者可以方便地处理用户输入。 **2. **v-model 的语…...
【深度学习】#10 注意力机制
主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 注意力提示生物学中的注意力提示查询、键和值 注意力汇聚注意力评分函数掩蔽softmax操作加性注意力缩放点积注意力 Bahdanau注意力多头注意力自注意力和位…...
Modbus总线协议智能网关协议转换案例解析:提升系统兼容性
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气,Schneider Electic)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(Defacto),并日现在是工业电子设备之间常用的连接方式 Modbus是一种串行通信协…...
echarts自定义图表--仪表盘
基于仪表盘类型的自定义表盘 上图为3层结构组成 正常一个仪表盘配置要在外圈和内圈之间制造一条缝隙间隔 再创建一个仪表盘配置 背景透明 进度条拉满 进度条颜色和数据的背景相同开始处的线 又一个仪表盘配置 数值固定一个比较小的值 <!DOCTYPE html> <html><h…...