logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

kafka和rabbitmq的broker的组成差异

Kafka和RabbitMQ的核心架构对比:Kafka采用分区副本机制(Leader+Follower),基于JVM实现,依赖Zookeeper或KRaft协调,定位为高吞吐的分布式日志系统,适合日志流和事件源场景;RabbitMQ基于Erlang虚拟机,采用Exchange-Queue路由模型,支持多协议,属于消息队列路由器,更适合任务队列和灵活路由。两者设计哲学不同,Kafka侧重持久化有序日

#kafka#rabbitmq#分布式
微服务限流实战

限流技术实战指南(150字摘要) 限流用于应对突发流量(如秒杀QPS暴涨40倍)和恶意攻击,核心方案包括: Nginx限流:漏桶算法(limit_req控制速率,burst缓冲突发)和并发限制(limit_conn); 网关限流:SpringCloud Gateway结合令牌桶算法(replenishRate填充速率+burstCapacity突发容量),支持IP/路径细粒度控制; 四大算法:固定

#微服务#架构#云原生 +1
【RabbitMQ】消息丢失的 6 大场景及解决方案

RabbitMQ消息传递存在4个关键丢失环节:生产端到Broker、Broker内存崩溃、Broker到消费端、消费端处理失败。解决方案包括:1)生产端启用PublisherConfirms+消息持久化;2)Broker端使用QuorumQueue多副本+队列持久化;3)消费端关闭autoAck,业务处理完成才手动ACK;4)消费端实现幂等处理(唯一键/Redis去重)。金融场景需特别注意:配置D

#后端#rabbitmq
CGLIB 代理 vs JDK 代理:能解决哪些事务失效问题?

摘要:JDK动态代理基于接口实现,只能代理public方法;CGLIB通过继承方式能代理private/protected方法,但无法代理final/static方法。SpringBoot 2.x+默认使用CGLIB代理。CGLIB主要解决"方法可见性"问题,对于事务失效的核心问题(异常处理、this调用等)仍需通过手动回滚、配置rollbackFor、注入self等方式解决。

#java#开发语言#spring
Spring 单例 Bean 是线程安全的吗?

摘要: Spring单例Bean的线程安全取决于其状态:无状态Bean(如Service/DAO)因无可变成员变量而天然线程安全;有状态Bean需开发者自行处理同步问题,常用方案包括:@Scope("prototype"):每次注入新实例,但牺牲性能; ThreadLocal(如金融项目中的用户上下文); 并发工具类(AtomicXxx/ConcurrentHashMap);

#java#开发语言
Spring Boot 2.0 改 CGLIB 后,接口实现是否有影响

直接new对象(如OrderService self = new OrderService()),绕过容器导致事务/拦截失效,CGLIB因类型兼容更易误用; 强制类型转换到具体类,CGLIB代理虽能强转成功(继承实现类),但可能混淆代理逻辑(如super调用绕过增强); 混用自定义JDK代理(如Proxy.newProxyInstance)与Spring管理的CGLIB代理,行为可能不一致。 原因

#java#开发语言#spring
Spring 3 级缓存解决循环依赖

摘要:Spring通过三级缓存机制解决循环依赖问题: 三级缓存结构: 一级缓存(singletonObjects)存储完整Bean 二级缓存(earlySingletonObjects)存储半成品Bean(已实例化未初始化) 三级缓存(singletonFactories)存储ObjectFactory,动态生成早期引用(支持AOP代理) 核心流程: 实例化A → 暴露ObjectFactory到

#java#spring
Spring Cloud 5 大组件 · 单个服务开发顺序

详细介绍了微服务架构中五大核心组件的开发顺序与实现方法。开发顺序严格遵循:1)先搭建Eureka注册中心作为服务发现基础;2)通过Feign实现服务间远程调用;3)利用Ribbon进行负载均衡(集成于Feign);4)使用Hystrix实现服务熔断降级;5)最后通过Gateway构建统一网关入口。文中提供了包括Eureka Server配置、Feign接口声明、Ribbon策略设置、Hystrix

#spring cloud#spring#后端
Nacos vs Eureka

Nacos核心工作流程,以及与Eureka的区别

#eureka#云原生#spring cloud
NIO 的 Channel 里有多个 BIO 吗?

NIO的Channel是操作系统内核级的文件描述符,支持非阻塞和双向通信,必须配合Buffer使用,并能注册到Selector实现多路复用。而BIO的Socket是JDK包装的用户态对象,只能单向阻塞通信,不支持多路复用。核心差异在于NIO通过一个Selector线程可管理上万个连接(基于epoll事件驱动),而BIO需要为每个连接创建独立线程。NIO的Channel类型包括FileChannel

#nio#网络#linux
    共 24 条
  • 1
  • 2
  • 3
  • 请选择