- 博客(297)
- 资源 (7)
- 问答 (4)
- 收藏
- 关注
原创 HTTP/2 多路复用:为什么你的网站加载速度能快3倍?
想象一下,你在银行排队办业务。前面有个人在办理复杂的业务,需要很长时间,你只能干等着。这就是 HTTP/1.1 的队头阻塞问题。一个 TCP 连接只能同时处理一个请求如果某个请求处理慢,后面的请求都要排队浏览器最多只能开6-8个并发连接大量小文件请求时,性能急剧下降简单来说,多路复用就是"一个连接,多个请求"。就像高速公路上的多条车道,不同的车可以同时行驶,互不干扰。一个 TCP 连接可以同时处理多个请求请求和响应被分解成帧(Frame)每个帧都有独立的流(Stream)标识。
2025-07-19 10:43:40
518
原创 分布式系统设计:从入门到实践
随着互联网业务的高速发展,单体系统已难以满足高并发、高可用和弹性扩展的需求。分布式系统作为现代互联网架构的基石,成为越来越多技术团队的首选。本文将带你系统了解分布式系统设计的核心理念、常见挑战与最佳实践。分布式系统(Distributed System)是指由多个独立计算节点通过网络协同完成某一任务的系统。这些节点可以是物理服务器、虚拟机,甚至是容器。分布式系统的目标是通过资源共享、负载均衡和容错机制,实现系统的高可用、高性能和可扩展性。
2025-07-15 13:37:27
325
原创 RabbitMQ 与 Kafka 的使用场景与对比详解
RabbitMQ 和 Kafka 各有优势,选型需结合业务场景、性能需求、生态集成等多维度考量。合理利用消息队列,能极大提升系统的可扩展性、可靠性和解耦能力。建议在实际项目中多做测试和评估,选出最适合自身业务的消息中间件。如有疑问,欢迎留言交流。如需RabbitMQ、Kafka实战工程或更多技术细节,欢迎留言获取!更多实战干货欢迎关注公众号:服务端技术精选。小程序:随手用工具箱。
2025-07-14 09:17:37
685
原创 Mock 数据的生成与使用全景详解
Mock数据,指的是通过工具或代码自动生成的、用于模拟真实业务场景的数据。它可以是结构化的(如JSON、数据库表),也可以是非结构化的(如文本、图片等),目的是让开发、测试环境在没有真实数据的情况下也能正常运行和验证功能。Mock数据是现代后端开发不可或缺的基础能力。合理利用Mock工具和方法,不仅能提升开发效率、保障测试质量,还能有效规避数据安全风险。建议大家在项目初期就规划好Mock数据方案,并结合自动化测试、前后端联调等流程,打造高效、可靠的开发环境。如有疑问,欢迎留言交流。
2025-07-13 22:33:52
567
原创 使用 Spring Cloud 构建微服务架构全景详解
本文系统介绍了使用Spring Cloud构建微服务架构的核心内容。首先概述了微服务架构的概念与优势,包括独立部署、故障隔离等技术特点。然后详细解析了Spring Cloud生态体系的核心组件,如Eureka、Config、Gateway等。文章重点提供了服务注册发现、配置中心、API网关等关键模块的实战配置示例,并分享了服务拆分、配置管理等最佳实践。最后总结了Spring Cloud在微服务实现中的价值,强调要结合业务场景渐进式推进架构转型。全文为开发者提供了Spring Cloud微服务的完整技术路线图
2025-07-12 10:23:18
326
原创 Spring Security 技术原理与实战全景详解
摘要:Spring Security是Java后端开发中的核心安全框架,提供认证和授权功能。文章全面解析了其原理、架构(过滤器链+安全上下文)和核心组件,涵盖表单登录、JWT认证等场景,并给出实战配置示例。通过自定义UserDetailsService实现数据库用户认证,介绍了JWT/OAuth2集成方法,同时探讨了高级用法和最佳实践(如密码加密、CSRF防护)。该框架适用于各类项目架构,是构建安全后端系统的首选方案。
2025-07-10 11:28:21
289
原创 Spring Boot多数据源配置详解
Spring Boot多数据源配置并不复杂,关键在于理解原理、规范配置、合理分包。掌握多数据源技术,不仅能提升系统扩展性和灵活性,也是后端开发进阶的必备技能。如有疑问,欢迎留言交流。如需Word版或代码示例工程,请留言获取!
2025-07-09 17:11:25
415
原创 Service Mesh:服务网格有哪些应用?
Service Mesh 是一种用于处理服务间通信的基础设施层。它通常由一组轻量级的网络代理组成,这些代理与应用程序一起部署,并负责处理服务间的通信、流量管理、安全性等方面的问题。通过将这些功能从应用程序中解耦出来,Service Mesh 可以让开发人员更加专注于业务逻辑的实现,同时提高系统的可维护性、可扩展性和可靠性。Service Mesh 作为一种新兴的技术,为分布式系统的通信管理提供了一种全新的解决方案。它在微服务架构、多云环境、容器化环境和遗留系统集成等方面都有着广泛的应用前景。
2024-12-18 21:56:11
840
原创 容器化升级对服务有哪些影响?
相比传统虚拟化技术,容器技术是一种更加轻量级的操作系统隔离方案,可以将应用程序及其运行依赖环境打包到镜像中,通过容器引擎进行调度,并且提供进程隔离和资源限制的运行环境。
2024-12-17 23:14:13
1036
原创 分布式下如何实现配置管理?
随着业务的发展,应用系统中的配置会越来越多,配置之间也有不同的业务特点,比如业务依赖的数据库配置、缓存信息配置、索引存储配置等。这类配置一般比较稳定,不会频繁更改,通常会放在工程中作为配置文件随应用一起发布。除了这些配置,还有一部分配置会经常发生修改,比如限流降级开关配置、业务中的白名单配置等。这些配置项除了变更频繁,还要求实时性,如果采取和应用一起发布的方式,那么每次变更都要重新发布服务,非常不方便。为了解决这类配置问题,出现了分布式配置管理平台,这一课时我们就来了解一下分布式配置管理相关的内容。
2024-12-16 23:16:24
618
原创 如何实现分布式调用跟踪?
分布式服务拆分以后,系统变得日趋复杂,业务的调用链也越来越长,如何快速定位线上故障,就需要依赖分布式调用跟踪技术。下面我们一起来看下分布式调用链相关的实现。
2024-12-15 18:31:59
1120
原创 如何实现服务注册与发现?
在分布式服务中,服务注册和发现是一个特别重要的概念,为什么需要服务注册和发现?常用的服务发现组件有哪些?服务注册和发现对一致性有哪些要求呢?下面我们就来学习服务发现相关的知识。
2024-12-14 22:14:35
837
原创 为什么微服务需要 API 网关?
对网关我们并不陌生,网关的概念来源于计算机网络,表示不同网络之间的关口。在系统设计中,网关也是一个重要的角色,其中最典型的是各大公司的开放平台,开放平台类网关是企业内部系统对外的统一入口,承担了很多业务,比如内外部数据交互、数据安全、监控统计等功能。在微服务架构中,API 网关的作用和开放平台等传统网关又有一些不同,下面一起来看一下微服务中 API 网关的相关知识。
2024-12-13 23:14:36
896
原创 微服务架构中的RPC框架应用解析,性能对比和实际案例分享!
RPC 是一种远程调用技术,它使得分布式系统中的不同节点可以像调用本地函数一样调用其他节点上的函数。RPC 隐藏了网络通信的细节,使得开发者可以专注于业务逻辑的实现。客户端调用本地的代理对象,传入参数。代理对象将参数进行序列化,并通过网络发送给服务端。服务端接收到请求后,进行反序列化,得到参数。服务端执行相应的函数,并将结果返回给客户端。客户端接收到结果后,进行反序列化,得到最终的结果。
2024-12-12 23:28:49
782
原创 如何使用 Redis 快速实现分布式锁?
Redis 作为一种高性能的内存数据库,可以快速实现分布式锁。通过使用 SETNX 命令和 EXPIRE 命令,可以实现一个简单的分布式锁。在使用分布式锁时,要注意锁的过期时间设置、锁的释放以及 Redis 的可用性等问题。同时,也要认识到分布式锁在应用中的优缺点,根据实际情况选择合适的分布式锁实现方案。并且,在高并发场景下的数据一致性、分布式任务调度以及分布式事务中的资源锁定等场景中,Redis 分布式锁都能发挥重要作用。
2024-12-11 23:16:15
878
原创 分布式锁的应用场景与实现
分布式锁在分布式系统中有着广泛的应用场景,可以有效地解决数据一致性、任务调度和分布式事务等问题。不同的实现方式各有优缺点,在实际应用中,需要根据具体的业务需求和系统架构选择合适的分布式锁实现方式。同时,需要对分布式锁的性能和可靠性进行充分的分析和测试,以确保分布式系统的稳定运行。文章(专栏)将持续更新,欢迎关注公众号:服务端技术精选。。个人小工具程序上线啦,通过公众号(服务端技术精选)菜单【个人工具】即可体验,欢迎大家体验后提出优化意见!
2024-12-10 23:02:27
1352
原创 如何在业务中体现 TCC 事务模型?
TCC 事务模型将事务的执行过程分为三个阶段:Try、Confirm 和 Cancel。Try 阶段:尝试执行事务,完成所有业务检查(一致性),预留必须的业务资源(准隔离性)。Confirm 阶段:确认执行真正的事务操作,不做任何业务检查,只使用 Try 阶段预留的业务资源。此阶段必须保证事务的原子性和持久性。Cancel 阶段:取消执行事务,释放 Try 阶段预留的业务资源。此阶段必须保证事务的原子性和幂等性。
2024-12-09 23:19:06
590
原创 MySQL 数据库如何实现 XA 规范?
XA 是由 X/Open 组织提出的分布式事务规范,主要定义了事务协调者(Transaction Manager)和资源管理器(Resource Manager)之间的接口。MySQL 中的 XA 规范为分布式事务提供了一种可靠的解决方案。通过事务协调者和资源管理器的协作,以及两阶段提交协议的执行流程,保证了分布式事务的一致性。在实际应用中,需要根据具体的业务需求和系统架构选择合适的 XA 事务实现方式,以确保数据的完整性和一致性。
2024-12-08 19:43:19
1044
原创 对比两阶段提交,三阶段协议有哪些改进?
准备阶段(Prepare Phase):协调者向所有参与者发送准备请求,参与者执行事务操作但不提交,然后回复是否准备好提交。提交阶段(Commit Phase):协调者根据准备阶段的结果决定是提交还是回滚事务。如果所有参与者都准备好,协调者发送提交请求,参与者提交事务;否则,发送回滚请求,参与者回滚事务。CanCommit 阶段:协调者向参与者发送 Can-Commit 请求,参与者如果可以提交就返回 Yes 响应,否则返回 No 响应。PreCommit 阶段。
2024-12-07 23:38:06
727
原创 分布式事务有哪些解决方案?
分布式事务关注的是分布式场景下如何处理事务。它是指事务的参与者、支持事务操作的服务器、存储等资源分别位于分布式系统的不同节点之上。简单来说,分布式事务就是一个业务操作由多个细分操作完成,而这些细分操作又分布在不同的服务器上。事务的要求是这些操作要么全部成功执行,要么全部不执行。分布式事务是分布式系统中的一个复杂问题,不同的解决方案各有优缺点。在实际应用中,需要根据业务需求、系统架构和性能要求等因素选择合适的分布式事务解决方案。如果对数据一致性要求非常高,可以选择 2PC 或 3PC;
2024-11-26 22:57:22
751
原创 ZooKeeper 如何保证数据一致性?
在分布式场景中,ZooKeeper 的应用非常广泛,比如数据发布和订阅、命名服务、配置中心、注册中心、分布式锁等。ZooKeeper 提供了一个类似于 Linux 文件系统的数据模型,和基于 Watcher 机制的分布式事件通知,这些特性都依赖 ZooKeeper 的高容错数据一致性协议。那么问题来了,在分布式场景下,ZooKeeper 是如何实现数据一致性的呢?
2024-11-25 21:47:21
936
原创 不同数据一致性模型有哪些应用?
上一篇文章讲过,对于 CAP 来说,放弃强一致性(这里说的一致性是强一致性),追求分区容错性和可用性,这是很多分布式系统设计时的选择。在工程实践中,基于 CAP 定理逐步演化,就提出了 Base 理论。那么 Base 理论有哪些内容,Base 理论下的一致性模型又有哪些呢?
2024-11-24 15:01:44
692
原创 分布式系统基础理论之 CAP
对于从事分布式系统开发或设计的架构师和工程师而言,CAP 理论是必须掌握的基础知识。CAP 理论能够帮助他们在系统设计中做出目标取舍,合理规划系统拆分的维度。下面先来探讨分布式系统的特点。
2024-11-23 17:35:35
589
原创 网络安全攻防:常见攻击手段与防范策略
安全无小事。2016 年,DNS 提供商 Dyn 遭遇大规模 DDoS(分布式拒绝服务攻击),14000 个网站域名受影响。2020 年 7 月,Twitter 遭大规模攻击,黑客控制马斯克、盖茨、奥巴马等人的 Twitter 账号诱导用户买比特币,骗取 11 万美元。2021 年 4 月,黑客利用 Github 的 Actions(一种 CI/CD 方案),诱导用户进行 git 操作时触发恶意比特币矿机。在中国这样人口基数大、互联网发达的国家,互联网公司安全出问题影响巨大。
2024-11-22 22:53:55
1014
原创 为什么可以相信一个 HTTPS 网站?
现实的生活当中,如果想证明一份合同没有被修改过,人们会在合同上盖一个齐缝章,并附上自己的签名。签名和盖章其实是一个含义,目的是证明自己签署过某份协议,而且一经签署,协议就不能再变更。如果想阻止一份合同被修改,最容易想到的方式是加密。合同一旦被加密了,要修改就必须原文和密文一起修改。虽然这没有解决最本质的问题——谁来提供信用。但是这样的种做法解决了一个最基础的问题。如果有人想修改合同,就必须知道密钥。但是加密算法的计算量较大,而且结果通常比原文体积大。那是否有其他更好的处理方式呢?
2024-11-21 22:34:23
1057
原创 对称、非对称加密的区别是?
在我们平时生活当中,两个人有不想让第三者知道的事情,可以找一个私密的空间去聊。而互联网本身是一个开放的体系,双方在交换数据的时候会经历大量的第三者——公司的防火墙、ISP 的路由器,还有可能有黑客抓取数据。那么这个时候如果张三和李四有私密的话想聊,该怎么办呢?当然是加密传输,想办法让双发传输的数据只有双方才能理解。目前有两种主流的加密方式——对称加密和非对称加密,这一讲我们就来聊聊这两种加密方式。
2024-11-20 23:00:38
1113
原创 爬虫和反爬虫:如何防止黑产爬取我的数据?
在当今的互联网环境中,爬虫的广泛应用已成为一种常见现象,尽管内容提供者竭力防止自身数据被竞争对手获取,但从某些百科文章与维基百科的高度相似性来看,许多不良的数据获取行为仍在暗中被容忍。回想早期一些购票网站的崛起历程,它们曾大量运用爬虫技术抓取航空公司的数据。为躲避航空公司的屏蔽,甚至采用众多个人电脑作为爬虫终端,致使航空公司难以辨别哪些是爬虫请求,哪些是用户操作。如此一来,当用户订票时,客服经理便能为用户提供充足的票务数据。
2024-11-19 21:33:48
1225
原创 流媒体技术:直播网站是如何实现的?
如今,年轻人热衷于刷 B 站和抖音,空闲时还会去拉勾教育观看大厂面试、热门技术分享直播以及各类游戏直播。不知你是否思考过,我们日常看到的众多音视频内容是如何从采集端最终呈现在手机 App 上的呢?若公司要提供直播服务,你能否给出技术方案呢?为应对这些应用场景,本讲以“直播网站是如何实现的”为例,系统探讨直播、点播、视频网站等基于流媒体技术的应用。
2024-11-18 22:22:38
822
原创 深入理解 HTTP 协议:特性、架构与缓存机制
超文本传输协议(HTTP)作为目前应用最为广泛的应用层协议,在网站、App 以及开放接口中随处可见。虽然 HTTP 协议设计简洁,但涵盖内容丰富。下面我们将深入探讨 HTTP 协议的重点内容,包括高频面试要点及易产生理解误区之处。
2024-11-17 23:17:51
701
原创 深入了解内容分发网络(CDN)
在当今的电商、直播、社交工具和视频网站等互联网应用中,存在着大量的图片、视频、文档等资源需要分发给用户。对于一些体量较大的应用而言,若将大量资源集中在单一节点进行分发,几乎没有哪个机房能够承受如此巨大的流量。例如,一个日活达 100W 的小型互联网产品,若每次请求需 1M 数据,那每日的数据量将近 1TB。面对这样的数据规模,仅靠单一节点进行分发显然不现实。因此,如今的互联网应用在分发内容时,并非直接从自己架设的服务器分发,而是借助一种名为。
2024-11-16 15:57:36
988
原创 DNS 域名解析系统:CNAME 记录的作用是?
当你在浏览器中输入一个 URL,或者用curl请求一个网址……域名系统(Domain Name System)就开始工作了。作为互联网的一个重要成员,域名系统是将互联网资源和地址关联起来的一个分布式数据库。在日常工作中,作为一名研发工程师,经常需要配置 DNS 域名解析。特别是 CNAME,几乎我每年都会碰到需要配置它的场景。这次我们就以“”为引,开启今天的学习,将域名这块的相关知识一网打尽。
2024-11-15 21:57:17
2164
原创 面试中如何回答“怎样实现 RPC 框架”的问题?
在微服务架构大行其道的当下,远程调用已成为开发微服务不可或缺的能力,而作为微服务体系底层支撑的 RPC 框架,也成为日常开发的必备工具。如今,RPC 框架不仅是实现远程调用的基础工具,还需具备路由、服务发现、负载均衡、容错等功能。今天,我们就以“如何实现 RPC 框架”为切入点,从设计者的视角来探讨如何设计一个 RPC 框架。
2024-11-14 22:30:53
847
原创 网络 I/O 模型:BIO、NIO 和 AIO 有什么区别?
我们在处理网络问题时,经常是处理 I/O 问题——输入和输出。看上去很复杂,但说白了就是如何把网卡收到的数据给到指定的程序,然后程序如何将数据拷贝到网卡。在处理 I/O 的时候,要结合具体的场景来思考程序怎么写。从程序的 API 设计上,我们经常会看到 3 类设计:BIO、NIO 和 AIO,从本质上说,讨论 BIO、NIO、AIO 的区别,其实就是在讨论 I/O 的模型,我们可以从下面 3 个方面来思考。1、编程模型:合理设计 API,让程序写得更舒服。
2024-11-13 23:05:44
694
原创 流与缓冲区:揭秘缓冲区的 flip 操作
流是一种数据的传输方式,可以是输入流从外部源读取数据,也可以是输出流将数据写入外部目标。缓冲区则是一块用于临时存储数据的内存区域,它可以提高数据传输的效率。而缓冲区则像是河流中的一个蓄水池,可以暂时存储一定量的水(数据),以便在合适的时候进行处理。今天,我们就来深入探讨一下“:缓冲区的 flip 是怎么回事?在计算机编程中,流和缓冲区是非常重要的概念。通过理解流和缓冲区的概念,以及掌握。操作的原理和应用场景,我们可以更好地利用它们来提高程序的性能和效率。流和缓冲区在编程中扮演着重要的角色,而缓冲区的。
2024-11-12 22:45:35
441
原创 Socket 编程中的 epoll 与红黑树:高效网络编程的关键
红黑树的高效操作、有序性和自平衡特性,使得 epoll 能够快速地添加、删除和查找文件描述符,快速定位就绪的文件描述符,并适应动态变化的连接数量。epoll 是 Linux 下的一种 I/O 多路复用技术,它允许程序同时监控多个文件描述符(File Descriptor,简称 FD),当其中的一个或多个 FD 可读、可写或出现异常时,epoll 会及时通知程序进行相应的处理。其中,epoll 是一种强大的 I/O 事件通知机制,而它之所以使用红黑树,有着深刻的原因和优势。快速定位就绪的文件描述符。
2024-11-11 22:53:01
667
原创 Wireshark:网络调试的强大利器
Wireshark 可以捕获网络中的数据包,并以详细的形式展示这些数据包的内容,包括数据包的源地址、目的地址、协议类型、数据内容等。Wireshark 是一款功能强大的网络调试工具,它可以帮助我们深入了解网络通信的过程和问题。在实际使用中,可以根据具体的需求和问题,灵活运用 Wireshark 的各种功能,进行网络分析和调试。Wireshark 就是一款功能强大的网络调试工具,它可以帮助我们捕获、分析网络数据包,从而更好地理解网络通信的过程和问题。下载 Wireshark。安装 Wireshark。
2024-11-11 22:50:26
797
原创 NAT 是如何工作的?
链路层发送数据靠的是 MAC 地址,MAC 地址就好像人的身份证一样。局域网中,数据不可能从一个终端直达另一个终端,而是必须经过交换机交换。交换机也叫作链路层交换机,它的工作就是不断接收数据,然后转发数据。通常意义上,交换机不具有路由功能,路由器往往具有交换功能。但是往往路由器交换的效率,不如交换机。已知 IP 地址,找到 MAC 地址的协议,叫作地址解析协议(ARP)。网络和网络的衔接,必须有路由器(或者等价的设备)。
2024-11-10 21:44:16
1149
原创 IPv6 协议中的 Tunnel 技术:连接未来网络的桥梁
它为 IPv6 数据包在 IPv4 网络中的传输提供了一种有效的解决方案,同时也为不同的 IPv6 网络之间的连接提供了可能。随着 IPv6 的不断发展和普及,Tunnel 技术将在未来的网络中发挥更加重要的作用。在 IPv6 与 IPv4 共存的网络环境中,Tunnel 技术为 IPv6 数据包提供了一条穿越 IPv4 网络的通道,使得 IPv6 网络能够逐步扩展和发展。在 IPv6 协议中,Tunnel 技术主要用于在 IPv4 网络中传输 IPv6 数据包,或者在不同的 IPv6 网络之间建立连接。
2024-11-10 21:41:15
1545
原创 IPv4 协议:路由和寻址的区别是什么?
例如,为了降低延迟,可能需要减少数据包的大小和传输路径上的路由器数量,但这可能会导致吞吐量的降低和丢包率的增加。寻址的过程就像是在一个地图上找到一个具体的地址,它关注的是如何根据目标设备的 IP 地址找到它所在的网络和主机。当一个路由器接收到一个数据包时,它会根据数据包的目标 IP 地址和自己的路由表,选择下一个最佳的转发接口。在寻址的过程中,网络设备会根据 IP 地址的网络部分,逐级找到目标设备所在的网络。这个过程就像是在一个分层的网络结构中,从顶层的网络逐渐向下找到具体的子网和设备。
2024-11-09 21:21:10
876
原创 TCP 协议与 UDP 协议:优势与劣势的深度剖析
但是,在使用 UDP 协议时,需要注意处理数据丢失、重复和乱序等问题,以确保数据的正确性。在网络通信的世界里,TCP 协议和 UDP 协议是两个最为重要的传输协议。今天,我们就来深入探讨一下 TCP 协议和 UDP 协议的优势和劣势。TCP 协议和 UDP 协议各有其优势和劣势,它们在不同的应用场景中发挥着重要的作用。了解它们的特点和适用场景,能够帮助我们在开发网络应用时选择合适的协议,提高应用的性能和可靠性。在选择使用 TCP 协议还是 UDP 协议时,需要根据具体的应用场景来进行权衡。
2024-11-09 21:17:27
973
建设思路-政务领域-智慧应急、应急指挥平台
2023-02-20
软件开发-nginx-文件服务器配置
2023-01-30
使用Java连接sqlserver报错
2016-12-15
myeclipse8.5集成hibernate连接sqlserver报错。
2016-12-19
jsp页面使用三元表达式来动态控制性别radio选中问题
2016-12-21
使用ionic start myApp tabs 时出错
2016-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人