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