- 博客(23)
- 收藏
- 关注
原创 Redis 高可用方案
SDOWN(主观下线):这是 Sentinel 单个实例对 Redis 节点的主观判断。即某个 Sentinel 认为该 Redis 节点不可用,但这种判断仅仅是该 Sentinel 的“个人观点”。ODOWN(客观下线):这是 Sentinel 集群的共同判断。即多个 Sentinel 一致认为该 Redis 节点不可用,这时该节点被标记为客观下线,触发故障转移机制。
2024-10-10 11:15:33
1949
原创 Redis 主从复制
Redis 的主从复制(Replication)是其高可用性和扩展性的重要特性之一。它允许你在多个Redis服务器之间同步数据,从而提高数据的可用性和读取性能。
2024-09-18 16:11:05
1409
原创 Redis的IO模型
Redis IO模型 使用的是基于 Reactor 模式的 I/O 多路复用模型。这些机制可以在单个线程中监视多个文件描述符,以便在任何一个描述符准备好进行 I/O 操作时通知应用程序。Redis 的 I/O 模型实现原理,需要深入了解其事件驱动框架和多路复用机制。结构体来管理事件循环,包含了文件事件和时间事件的注册、取消、处理等功能。Redis 使用操作系统提供的 I/O 多路复用机制,如。Redis 使用操作系统提供的 I/O 多路复用机制,如。关于ArchManual。
2024-09-13 14:40:00
1961
原创 Redis Key的过期策略
Redis 的过期策略主要是指管理和删除那些设定了过期时间的键,以确保内存的有效使用和数据的及时清理。具体来说,Redis 有三种主要的过期策略:定期删除(Scheduled Deletion)、惰性删除(Lazy Deletion)和内存淘汰策略(Eviction Policies)。
2024-09-12 15:01:28
1879
原创 Redis的数据类型以及应用场景
Redis 有序集合(Sorted Set)是一种带有分数的集合,集合中的每个成员都有一个分数,Redis 会按照分数的大小进行排序。以下是 Redis 有序集合的一些常见应用场景及其示例代码。Redis 集合(Set)是一种无序的字符串集合,集合中的元素是唯一的,不允许重复。HyperLogLog 是 Redis 中的一种用于基数(唯一值)统计的数据结构,能够在极小的内存占用下提供高精度的基数估计。位图(Bitmap)在 Redis 中是一种高效的按位存储数据的方式,主要用于处理需要进行按位操作的场景。
2024-09-11 17:36:01
1917
原创 缓存类型以及读写策略
静态缓存通常用于缓存静态内容,例如HTML页面、CSS文件、JavaScript文件、图像等。它可以显著减少服务器负载和响应时间。
2024-09-03 14:08:31
1422
1
原创 Java 应用服务器有哪些?
Jetty 是一个轻量级、高性能、易于嵌入和配置的 Java Web 服务器,适合用于微服务架构、嵌入式系统和需要高并发处理的应用场景。Connector 的工作流程涉及多个子组件和概念,包括 EndPoint、Executor、Processor、Adapter、TomcatRequest 和 ServletRequest。Tomcat 是一个功能强大、灵活、轻量级的 Java Web 服务器,适合开发、测试和小型到中型应用的生产环境。它的开源和免费特性使其广受欢迎,特别是在预算有限的项目中。
2024-08-29 15:06:39
1860
原创 服务降级的架构原理
Target 定义该规则针对什么样的请求,如某个 key(可以类比 Sentinel 中的资源名的概念),或者包含某类参数的 HTTP 请求等等。ystrixCommand 和 HystrixObservableCommand 的实现可以定义一个缓存键,然后在请求中使用该键来去重调用,如果命中缓存健,则直接返回缓存健对应的结果。如果 Hystrix 没有实现请求缓存功能,那么每个命令都需要在 construct 或 run 方法内部自行实现它,缓存结果的查询要放到新线程创建后,所有无法避免新的线程的创建。
2024-08-28 14:48:30
3121
原创 限流的的实现方案
限流是一种在软件开发和系统设计中常用的技术,旨在控制访问某一资源或服务的请求数量,以防止系统过载、确保系统稳定性和响应性。限流对于维护高可用和可靠的服务尤为重要,尤其是在面对高并发访问时。
2024-08-27 13:24:59
1378
原创 API网关的基本原理
在需要与外部服务(如社交网络、支付服务等)集成时,API网关可以作为一个集中化的层来管理这些外部调用,包括处理API密钥、维护会话、转换数据格式等,简化后端服务的开发和维护。当你的应用需要支持多种客户端(如移动应用、Web前端、第三方系统等)时,API网关可以提供一个统一的接口,根据不同客户端的需求优化和调整响应数据格式,实现接口的复用与适配。Zuul是Netflix开源的一个API网关,它主要作为前端的边界服务,对进入微服务系统的请求进行预处理、路由和过滤,然后将请求转发到后端的具体服务。
2024-08-26 14:19:53
1006
原创 数据库连接池的基本原理
数据库池化技术,也常被称为连接池技术,是一种在数据库应用中广泛使用的技术,旨在减少数据库连接的开销,提高系统的性能和资源利用率。:通过合理配置连接池参数,如合适的最大/最小连接数、适当的空闲连接生存时间等,可以显著提升数据库操作的性能,同时优化资源的使用。:连接池的行为可以通过各种参数进行配置,包括最大连接数、最小空闲连接数、连接超时时间、空闲连接的最大生存时间等。:如果验证失败,连接池会尝试创建一个新的连接以替换无效的连接,保证连接池中的连接总数维持在配置的水平。:连接池定期检查空闲连接的有效性。
2024-08-22 13:37:00
1187
原创 不同场景下的负载均衡器
负载均衡主要用于分配来自互联网或局域网的请求或任务负载到多个服务器中。这样做可以避免任何单个服务器的过载,提高响应速度,增加系统的整体处理能力,并确保系统的高可用性和可靠性。负载均衡器大概可以分为 3 类,包括:DNS 方式实现负载均衡、硬件负载均衡、软件负载均衡。
2024-08-21 13:55:37
1487
原创 服务注册发现的原理与选型
注册发现(Service Registration and Discovery)是微服务架构中一个非常重要的组成部分,主要用于管理微服务间的地址和状态信息,以便服务间能够相互发现和调用。使用注册发现机制,可以大大提高微服务架构的灵活性和可维护性,是构建动态、可伸缩、高可用系统的关键技术之一。常见的注册发现工具和平台包括Eureka、Consul、Zookeeper和Nacos等。
2024-08-20 13:24:27
1201
原创 分布式事务的实现方式和原理
首先将一个复杂的分布式事务拆分为一系列更小、更易于管理的本地事务。每个本地事务都应该有一个对应的补偿事务,用于撤销其所做的操作。
2024-08-19 10:03:41
1413
原创 分布式锁的实现方案
分布式锁是分布式系统中用于确保多个进程或服务在访问共享资源时能够保持互斥,以避免发生数据冲突或不一致性问题的一种同步机制。与传统的锁机制相比,分布式锁是为了解决跨多个计算节点的资源同步问题。在分布式环境下,资源可能被分布在不同的服务器上,这就需要一种跨服务器的锁机制来确保在任何时刻只有一个客户端可以访问特定的资源。
2024-08-15 16:13:31
1065
原创 分布式ID的实现方案
美团Leaf通过提供segment和snowflake两种模式,能够满足不同场景下对于分布式ID生成的需求。Leaf-segment模式适合对ID趋势递增有要求的场景,而Leaf-snowflake模式则适合对ID生成性能要求更高的场景。通过这两种模式,美团Leaf为分布式系统中的ID生成提供了一种高效、可靠的解决方案。详细技术方案,详见Leaf官方技术文档。
2024-08-14 16:27:34
1433
原创 延迟任务的五种实现方案
(2)TimerWheel中的每一格代表着一个时刻,同时会有一个firstPos指向这个刻度下所有定时消息的首条TimerLog记录的地址,一个lastPos指向这个刻度下所有定时消息最后一条TimerLog的记录的地址。DelayQueue 实现了一个高效的本地延时队列, 但是缺点就是 不支持多节点部署,多节点部署时,不能同步消息,同步消费,也不能持久化。(2)定义一个死信交换机(DLXExchange),绑定BizQueue,接收延时队列的消息,并转发给BizQueue。
2024-08-12 13:31:25
1015
原创 配置中心的基本原理
隔一段时间(比如 10秒)查询一个数据库的版本信息表,看是否有版本更新,有版本更新时将最新的版本信息存到本地内存,同时通知客户端。对象,并设置改对象的超时时间和超时的返回值。查询内存中是否有最新的版本信息,如果有最新的版本信息则设置。应用的客户端本地缓存一份配置,如果配置服务出现故障,无法提供服务,应用还可以继续使用本地的配置。1)后台配置系统修改配置,发布新版本,版本信息写入数据库中,的方式,超时设置为60秒,超时之后,客户端向后端重新查询。对象放到内存列表中,存储起来,等待后续的通知。
2024-08-07 15:57:31
317
原创 分布式系统架构手册
ArchManual不是某个技术架构的深度剖析某个技术框架的源码分析某个技术工具的安装运维某个技术类库的代码示例而是常用分布式技术的总体概览常用技术主题的归纳总结常用技术框架的归类罗列常用技术架构的简单分享希望成为速查手册:平时工作中做技术架构、框架选型时的速查手册学习提纲:业余学习或者面试时的一个学习提纲技术地图:对技术框架有一个整体和全面的了解技术社区:每个技术同学都能积极分享和交流知识。
2024-08-06 16:29:50
1268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人