
微服务
文章平均质量分 87
黄名富
他很懒,还没有添加介绍
展开
-
Redis 缓存—处理高并发问题
Redis的布隆过滤器、单线程架构、双写一致性、比较穿透、击穿及雪崩、缓存更新方案及分布式锁。原创 2025-04-20 13:54:32 · 449 阅读 · 0 评论 -
Kafka 时间轮
Kafka存在大量的延迟操作,比如延迟删除、延迟拉取等。Kafka基于时间轮概念自定义了一个用于延迟操作的定时器。原创 2025-04-18 19:04:05 · 639 阅读 · 0 评论 -
Redis Stream 底层数据结构 — 基数树
Redis Stream 的消息由ID与数据组成。而ID由时间戳和序列号组成。Stream内部使用基数树来存储消息,根据ID来指向数据。基数树支持高效的范围查找和内存存储。原创 2025-04-04 08:16:37 · 352 阅读 · 0 评论 -
Redis 数据结构的底层实现—字符串、哈希表、列表、集合
Redis 的键(key)查找机制基于哈希表实现。常用的数据结构有字符串、哈希表、列表、集合及有序集合。原创 2025-04-02 18:45:27 · 567 阅读 · 0 评论 -
Spring Cloud — 消息驱动 Stream
Spring Cloud Stream 是让微服务更容易在应用中实现消息的发布和订阅处理的框架。Stream 支持与多种消息中间件整合,如Kafka、RibbitMQ等。原创 2025-02-28 20:30:38 · 817 阅读 · 0 评论 -
Spring Cloud — 统一配置中心 Config
Spring Cloud Config 配置中心,实现配置服务。开发者可以使用配置服务器集中地管理所有服务的各种环境配置文件。配置服务中心默认采用Git的方式进行存储,可以对环境配置进行版本管理。原创 2025-02-26 07:30:00 · 894 阅读 · 0 评论 -
Spring Cloud — API服务网关 Zuul
Zuul 作为网关服务,负责处理所有外部请求,并将这些请求路由到相应的服务实例。为微服务架构中的各个服务提供动态路由、监控、身份认证与安全、负载均衡等功能。原创 2025-02-24 20:54:15 · 736 阅读 · 0 评论 -
Spring Cloud — Hystrix 服务隔离、请求缓存及合并
Hystrix 的核心是提供服务容错保护,防止任何单一依赖耗尽整个容器的全部用户线程。使用舱壁隔离模式,对资源或失败单元进行隔离,避免一个服务的失效导致整个系统垮掉(雪崩效应)。原创 2025-02-21 18:23:01 · 1052 阅读 · 0 评论 -
Spring Cloud — 微服务容错保护 Hystrix入门
微服务之间是通过网络进行相互调用,如果单个服务出现问题,用户调用相关服务时或造成调用延迟或失败,进而可能让整个系统奔溃。提前做好应急措施,当遇到问题时,可及时启动应急方案,让系统进行自我调节和保护。原创 2025-02-13 18:01:41 · 1094 阅读 · 0 评论 -
Spring Cloud — 深入了解Eureka、Ribbon及Feign
Eureka 负责服务注册与发现;Ribbon负责负载均衡;Feign简化了Web服务客户端调用方式。这三个组件可以协同工作,共同构建稳定、高效的微服务架构。原创 2025-02-12 18:12:36 · 1512 阅读 · 0 评论 -
Spring Cloud 入门
一个典型的单体架构应用就是将一个应用中所有的功能都打包在一个war文件中。单体架构应用存在以下缺点:一个应用职责太多,其开发、部署及运维复杂度后期几乎会呈几何性增长。会逐渐变得不稳定,不常用的模块可能会造成整个服务无法正常提供服务。数据管理上容易产生漏洞,不同团队之间可能会操纵相同的数据表,容易产生冲突。开发时要求使用同一个技术栈。在部署上,难以进行水平扩展,因为每个应用实例对服务器来说都需要相同的硬件配置。微服务架构是将功能分解成一系列服务的一种架构模式。原创 2025-02-10 19:37:45 · 583 阅读 · 0 评论 -
Kafka 可靠性探究—副本刨析
Kafka 的多副本机制提升了数据容灾能力。副本通常分为数据副本与服务副本。数据副本是指在不同的节点上持久化同一份数据;服务副本指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应的处理。原创 2025-02-06 20:48:44 · 793 阅读 · 0 评论 -
Kafka 深入客户端 — 事务
Kafka 事务确保了数据在写入Kafka时的原子性和一致性。原创 2025-01-29 07:30:00 · 630 阅读 · 0 评论 -
Kafka 深入客户端 — 分区分配策略与协调器
Kafka 消费者客户端参数partition.assignment.strategy 来设置消费者与订阅主题之间的分区分配策略。多个消费者之间的分区分配是需要协同的,这个协同过程由消费者协调器(ConsumerCoordinator)和组协调器(GroupCoordinator)来完成。原创 2025-01-28 07:30:00 · 541 阅读 · 0 评论 -
Kafka 深入服务端 — 协议设计与控制器
Kafka 自定义了一组基于TCP的二进制协议,只要遵守这组协议的格式,就可以向Kafka发送消息,也可以从Kafka中拉取消息,或者做些其他事。Kafka集群中有且只有一个broker会被选举为控制器,它负责管理整个集群中所有分区和副本的状态。原创 2025-01-27 07:30:00 · 629 阅读 · 0 评论 -
Kafka 深入服务端 — 时间轮
Kafka中存在大量的延迟操作,比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器,来完成这些延迟操作。原创 2025-01-24 18:28:18 · 1601 阅读 · 0 评论 -
Kafka 日志存储 — 磁盘存储
Kafka 依赖与磁盘来存储和缓存消息,采用文件追加的方式来写入消息。顺序写盘的速度快于随机写内存。原创 2025-01-23 07:30:00 · 1285 阅读 · 0 评论 -
Kafka 日志存储 — 日志清理
Kafka 提供两种日志清理策略:日志清理(Log Delete)与日志压缩(Log Compaction)。原创 2025-01-22 21:17:38 · 1634 阅读 · 0 评论 -
Kafka 日志存储 — 日志索引
每个日志分段文件对应两个索引文件:偏移量索引文件用来建立消息偏移量到物理地址之间的映射;时间戳索引文件根据指定的时间戳来查找对应的偏移量信息。原创 2025-01-20 22:25:18 · 1365 阅读 · 0 评论 -
Kafka 日志存储 — 文件目录及日志格式
日志存储机制是Kafka实现高吞吐量和持久化能力的关键。原创 2025-01-19 23:49:06 · 1134 阅读 · 0 评论 -
Kafka 分区管理
分区是主题的子集,每个主题可以被分割成多个分区,一个分区有一个主副本(Leader)及一个或多个从(Follower)副本。分区允许将数据分布在多个broker上,这样可以提高数据的处理能力、并行性及可靠性。每个分区在物理上是一个有序、不可变的消息序列,存储为一系列连续的、有序的日志文件。原创 2025-01-13 22:05:36 · 882 阅读 · 0 评论 -
Kafka 主题管理
主题作为消息的归类,分区则是对消息的二次归类。分区可以有一至多个副本,每个副本对应一个日志文件。分区的划分不仅为Kafka提供了可伸缩性、水平扩展的功能,还通过多副本机制来为Kafka提供数据冗余以提高可靠性。原创 2025-01-12 16:40:54 · 1096 阅读 · 0 评论 -
Kafka 消费者
Kafka消费者主要负责消费(读取和处理)由生产者发布的消息。原创 2025-01-06 07:30:00 · 1423 阅读 · 0 评论 -
Kafka 生产者
生产者就是负责向Kafka发送消息的应用程序。原创 2025-01-03 19:01:04 · 1111 阅读 · 1 评论 -
Kafka入门
Kafka是一种高吞吐量的分布式发布订阅消息系统。原创 2024-12-30 21:31:36 · 752 阅读 · 0 评论 -
Redis 多机功能 — 复制、Sentinel及集群
Redis 的复制功能通过主从模式实现,允许用户为存储着目标数据库的服务器(主服务)创建多个拥有相同数据库副本的服务器(从服务)。让客户端的读请求可以分摊到从服务器中,从而提升性能。复制功能适合对数据一致性要求高、且读写比例不平衡的场景,例如读操作远多于写操作。Sentinel,哨兵模式是Redis推荐的高可用性解决方案,用于解决和管理主从复制环境,确保主节点发生故障时能自动进行故障转移和主从切换。集群是通过对数据进行分片,并在多个节点之间进行数据复制来提供高可用性和负载均衡。不同的节点负责不同的范原创 2024-12-26 21:28:06 · 948 阅读 · 0 评论 -
Redis 附加功能(三)— 持久化、发布与订阅及模块
Redis 把所有数据都存储在内存中,而传统数据库将实际的数据存储在硬盘中。Redis的持久化功能把内存中存储的数据以文件形式存储到硬盘上,服务器也可以根据这些文件在系统停机之后实施数据恢复。发布与订阅功能可以让客户端通过广播方式,将消息同时发送给可能存在的多个客户端。模块功能允许开发者通过Redis开放的API,通过C语言在Redis之上构建任意复杂的、全新的数据结构、功能和应用。原创 2024-12-19 18:38:30 · 1162 阅读 · 0 评论 -
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
键自动过期功能,可以让特定的键在指定时间之后自动被移除。流水线功能允许客户端把任意多条Redis命令请求打包在一起,然后一次性将它们全部发送给服务器,服务器将这些命令都处理完毕后,会一次性地将它们的执行结果返回给客户端。事务可以将多个命令打包成一个命令来执行,打包发送,打包执行。当事务成功执行时,事务中包含的所有命令都被执行,否则,所有命令都不执行。Lua脚本是一个小巧的脚本语言,由C语言编写,目标是成为一个很容易嵌入其他语言中使用的语言。原创 2024-12-17 19:11:45 · 1181 阅读 · 0 评论 -
Redis 附加功能(一) - 数据库
Redis的数据会被存储到一个名为数据库的容器中。一个Redis服务器可以包含多个数据库,默认情况下,会创建16个数据库。这些数据库用号码进行标志,第一个数据库为0号数据库。原创 2024-12-14 23:30:27 · 1184 阅读 · 0 评论 -
Redis数据结构(四)— 流
流(stream)是Redis 5.0 新增的数据结构。 它本质是一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的id和其对应的内容。它主要用于实现消息队列,与Redis之前的发布订阅功能相比,流提供了消息的持久化、主备复制功能,支持ack确认消息的模式以及支持消费组等特性,使得消息队列更加稳定可靠。原创 2024-12-13 18:05:50 · 989 阅读 · 0 评论 -
Redis 数据结构(二)—集合和有序集合
集合(Set)允许用户将多个各不相同的元素(文本或二进制数据)存储到集合中,以无序的方式存储元素。有序集合(SortedSet)同时具有“有序”和“集合”两种性质。每个元素由一个成员和分值组成。成员以字符串方式存储,而分值以64位双精度浮点数格式存储。原创 2024-12-10 22:34:44 · 522 阅读 · 0 评论 -
Redis 数据结构(三) HyperLogLog、位图、地理坐标
HyperLogLog 超日志,是一个专门计算集合的基数的概率算法。可以计算出集合的近似基数,标准误差为0.81%。它进行计算的内存是固定的(12kb。2的64次方)。bitmap 位图,是由多个二进制位组成的数组,每个二进制位都有与之对应的偏移量,用户通过这些偏移量可以对位图中的一个或多个二进制位进行操作。它是在字符串的基础上实现的。geo 地理坐标,用户可以将经纬度格式的地理坐标存储到Redis,并对这些坐标执行距离计算、范围操作等操作。其是在有序集合基础上实现的。原创 2024-12-10 18:42:42 · 930 阅读 · 0 评论 -
Redis 数据结构(一)—字符串、哈希表、列表
Redis(版本7.0)的数据结构主要包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、超日志(HyperLogLog)、位图(Bitmap)、地理坐标(Geo)、流(Stream)。原创 2024-12-06 17:58:34 · 1034 阅读 · 0 评论