- 博客(47)
- 收藏
- 关注
原创 RabbitMQ 可靠性投递
RabbitMQ 是一个流行的消息队列系统,用于在分布式系统中传递消息。其中一个重要特性是其可靠性投递(Reliable Message Delivery),保证消息在队列和消费者之间可靠的传递和处理。
2025-02-05 17:59:15
905
原创 RabbitMQ 分布式高可用
RabbitMQ 的分布式高可用性(High Availability, HA)是通过多种机制和技术来确保消息传递系统的稳定性和可靠性,即使在部分组件或节点出现故障时也能持续提供服务。为了实现这一点,RabbitMQ 提供了集群配置、镜像队列、持久化以及负载均衡等多种手段。
2025-01-25 18:47:13
1908
原创 RabbitMQ 死信队列
消息过期以后,如果没有任何配置,是会直接丢弃的。我们可以通过配置让这样的消息变成死信(Dead Letter),在别的地方存储。
2025-01-25 18:46:12
1672
原创 RabbitMQ 架构分析
RabbitMQ是一款功能强大、利用广泛的消息中间件,通常用于分布式系统和微服务架构中的异步通信。理解其架构有助于正确配置和优化系统,实现高效可靠的消息传递。
2025-01-25 18:45:08
1845
原创 设计模式之模板方法模式
模板方法模式(Template Method Pattern)是一种行为设计模式,它在一个方法中定义了一个算法的骨架,而将一些步骤的实现延迟到子类中。
2025-01-22 18:03:54
698
原创 设计模式之责任链模式
Netty中的ChannelPipeline通过将入站事件(Inbound Events)和出站事件(Outbound Events)在一系列的ChannelHandler中有序地传递,实现了责任链模式。入站事件包括channelRead, channelActive, channelRegistered等,这些事件从ChannelPipeline的头部开始,依次传递给链中的每个ChannelInboundHandler。每个事件从责任链的一端传递到另一端,所有处理器协同工作,共同完成复杂的事件处理逻辑。
2025-01-22 18:03:22
1023
原创 设计模式之策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。策略模式的主要目的是分离算法,使得算法独立于客户端而变化。以上的增强只是介绍了一下基本增强方案,大家可以根据自己的思维进一步增强,利用更多的设计模式,使得系统更加健壮。这样子可以满足业务的需求了,但是每次新来一种策略,就要在原有代码上新增。在运行稳定的代码进行改动是不明智的 ,可以进一步进行增强。简单来写的话往往是这样的。
2025-01-22 18:03:10
685
原创 设计模式之工厂模式
工厂模式(Factory Pattern)作为一种创建型设计模式,致力于解决对象创建问题,并将对象的创建过程与使用过程分离开来。其核心意义在于提高代码的灵活性、可扩展性与可维护性。通过深入理解其作用和优点,可以更好地在软件开发中应用这一模式。
2025-01-22 17:59:00
1036
原创 redis 分布式方案
Redis 的分布式方案主要依赖于 Redis Cluster 和 Redis Sentinel 来实现。这两种部署方案都旨在解决单点故障问题,确保数据的高可用性和持续服务能力。
2025-01-20 18:05:24
2620
原创 一致性哈希图解与实现
一致性哈希(ConsistentHashing)是一种特殊的哈希算法,最初在1997年由麻省理工学院提出。它被设计用于分布式系统中,特别是在需要处理数据分区和负载均衡的问题时。与传统的哈希算法不同,一致性哈希的目标是在动态添加或移除节点的情况下最小化数据重新分布的成本,并且保持尽可能少的数据迁移。它构建一个虚拟的环形空间,将所有可能的哈希值映射到这个环上,环形的节点越多,迁移的影响就越小。一致性hash用途很广,可以结合自身的业务进行设计,不断创新。
2025-01-18 17:14:16
1049
原创 mysql 事务之LBCC与MVCC
数据库事务(Database Transaction)是数据库管理系统(DBMS)中执行的一系列操作,这些操作被当作一个逻辑单元进行处理,以保证数据的一致性和完整性。
2024-11-29 18:08:20
1354
原创 mysql 巧妙的索引
MySQL索引是数据库管理系统中用于提高查询效率的一种数据结构。它们类似于书籍的目录,通过索引,数据库可以快速定位到所需的数据,而无需扫描整个表,很大提升了查询效率
2024-10-29 00:26:00
1150
原创 MySql 初次见面
MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)来管理或操作数据库。MySQL 是由瑞典公司 MySQL AB 开发,该公司后来被 Sun Microsystems 收购,之后 Sun Microsystems 又被 Oracle Corporation 收购。尽管其所有权有所变更,但 MySQL 仍然作为开源项目继续发展,并由 Oracle 以及其他公司和社区维护。
2024-09-19 17:54:21
992
原创 dubbo之时间轮算法分析
时间轮(TimingWheel)是一种高效利用线程资源进行批量化调度的算法,广泛应用于各种操作系统的定时任务调度中,如Linux的crontab,以及Java开发中常用的Dubbo、Netty、Kafka等框架
2024-09-01 13:30:59
941
原创 dubbo spi 原理分析
SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。Dubbo 中,SPI 主要有两种用法,一种是加载固定的扩展类,另一种是加载自适应扩展类。Dubbo 中,基于 SPI 扩展加载的类是单例的。
2024-08-31 00:03:14
1313
原创 dubbo spi 的应用指南
SPI全称为Service Provider Interface,是一种服务发现机制。在Dubbo中,SPI机制被广泛应用于加载和扩展各种组件,如协议(Protocol)、负载均衡(LoadBalance)、注册中心(Registry)等。Dubbo并未直接使用Java原生的SPI机制,而是对其进行了增强,以满足更复杂和灵活的需求。
2024-08-30 18:18:53
1491
原创 dubbo的服务发布原理分析
Dubbo的服务发布与注册原理是Dubbo框架的核心功能之一,它实现了微服务架构下的服务注册与发现机制。以下是对Dubbo服务发布与注册原理的详细解析读取配置初始化配置对象组装服务URL创建代理类并缓存注册服务到注册中心创建网络通信服务器(netty)监控服务状态(Heartbeat)
2024-08-26 00:11:06
896
原创 spring aop 的花式应用
在Spring框架中,Filter(过滤器)和Interceptor(拦截器)都扮演着拦截和处理HTTP请求和响应的重要角色,但它们工作的层次和触发链路有所不同。了解它们的区别和触发链路对于设计和优化Web应用非常重要Spring AOP(面向切面编程)是一种编程思想,可以通过很多种方式实现,找到符合业务的需求,去针对性实现,实现解耦,更好维护。
2024-08-20 21:36:04
907
原创 spring aop的基本应用
Spring AOP,即Aspect-Oriented Programming的缩写,意为面向切面编程,是Spring框架中的一个重要内容。它是一种编程范式,用于在不修改源代码的情况下向现有应用程序添加新功能。Spring AOP(Aspect-Oriented Programming,面向切面编程)在Spring框架中扮演着至关重要的角色。
2024-08-15 01:10:12
600
原创 Dubbo的基本应用与进阶应用
Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。
2024-08-07 00:18:11
997
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人