Day04 每日必会

简介: 在订单支付完成后通知配送中心等异步、解耦场景中常用MQ,如使用TopicExchange话题模式实现灵活路由。结合Spring的IOC、AOP、三级缓存及事务管理,保障系统稳定与解耦。

什么场景下你们用MQ
主要还是一些异步通信的场景吧,我们会用他去做系统解耦,比如我最近负责的这个项目里面的订单模块,它支付完成就需要告知下游的配送中心,去创建一条待配送的数据,这种又不要求强一致性,就是一个很好的MQ使用场景。
MQ有哪几种交换机模式,你们用的哪种
我了解到的有4种,一个是默认交换机,给基本队列和工作队列使用的;还有FanoutExchange广播模式,DirectExchange定向路由模式和TopicExchange话题路由模式,我们项目用的Topic模式
理论专项
Spring
IOC
AOP
三级缓存(循环依赖)
设计模式
事务失效场景(天机Day10)

相关文章
|
15小时前
|
小程序 Java
微信通知
基于企业微信与小程序集成,通过appId和secret获取access_token,实现消息发送。需配置企业微信及绑定小程序,使用Java异步调用接口,示例包含用户信息实体类定义,支持userid、name等字段设置,便于消息推送与用户管理。(238字)
|
15小时前
|
缓存 NoSQL Redis
Day08 每日必会
深入解析Redis核心机制:涵盖缓存三剑客(穿透、击穿、雪崩)成因与应对;持久化、过期与淘汰策略原理;哨兵选举流程;主从同步机制(全量与增量);以及“单线程”模型的真相,全面掌握Redis高性能背后的理论基础。
|
15小时前
Day07 每日必会
CAP理论指出分布式系统中一致性、可用性、分区容错性三者只能取其二,因网络不可靠,P必然存在,故需在A和C间权衡。BASE理论提出基本可用、软状态、最终一致性的思路,平衡CAP矛盾。Seata AT模式通过全局事务ID协调分支事务,实现分布式事务控制。MQ防消息丢失、重复消费及积压,需结合持久化、确认机制、幂等处理与批量消费等策略。
|
15小时前
|
存储 缓存 NoSQL
Day06 每日必会
Redis常见数据结构包括:字符串、哈希、列表、集合、有序集合及地理空间索引。持久化机制有AOF和RDB,配合使用可有效防数据丢失。三大缓存问题:雪崩、穿透、击穿,需通过过期时间随机化、布隆过滤器、分布式锁等手段应对。
|
15小时前
|
消息中间件 SQL 缓存
Day05 每日必会
为确保消息不丢失,RabbitMQ提供三大机制:生产者确认(通过唯一ID与ACK/NACK反馈)、消息持久化(队列、消息、交换机持久化)和消费者确认(手动/自动ACK)。我们采用auto模式+重试处理。延迟消息可通过TTL或DelayExchange插件实现,常用于超时订单场景。消息积压可扩消费者或队列容量解决。MyBatis中#{}预编译防注入,${}直接拼接;有一级会话缓存和二级Mapper缓存;SQL执行经SqlSession解析MappedStatement,交由Executor执行。
|
15小时前
|
设计模式 Linux 开发工具
Day03 每日必会
熟悉Docker部署,掌握镜像与容器操作命令,如pull、run、exec等;熟练使用Linux常用指令,包括文件、进程、网络管理;排查日志常用cat、grep、tail;了解SpringMVC执行流程、核心注解及设计模式。
|
15小时前
|
Dubbo Java 应用服务中间件
Day02 每日必会
Gateway基于Spring WebFlux与Netty实现非阻塞高性能转发,启动时创建Netty Server接收请求,匹配路由并经过滤器处理后转发至目标服务,响应反向经过滤后返回。项目远程调用主要使用OpenFeign,底层为HTTP,也曾使用Dubbo。JVM部分涵盖模型、GC、类加载及调优。
|
15小时前
|
负载均衡 中间件 Java
Day01 每日必会
微服务并非绝对优于单体,需结合业务场景。简单应用选单体更轻便,避免分布式复杂性;复杂系统可选微服务,解耦性强、易扩展。常用中间件如Nacos(注册/配置中心)、OpenFeign(远程调用)、Gateway(网关)。Nacos支持心跳机制,区分临时与非临时实例,兼具AP/CP模式,较Eureka更具灵活性。负载均衡常用轮询、加权轮询等,项目中多用轮询策略。
|
15小时前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本教程介绍如何在Eclipse中配置JDK、Tomcat并导入Java项目,支持SSH/SSM框架,含数据库连接配置、项目运行步骤及常见问题解决,附在线考试与图书馆管理系统案例及视频讲解。
|
15小时前
|
存储 缓存 安全
One Trick Per Day
初始化Map应避免直接指定大小,建议用Guava或手动计算容量;禁用Executors创建线程池,防止OOM,推荐自定义ThreadPoolExecutor;Arrays.asList返回不可变列表,禁止修改操作;遍历Map优先使用entrySet或forEach;SimpleDateFormat非线程安全,勿定义为static,推荐ThreadLocal或Java8新时间类;并发修改记录需加锁,优先乐观锁,冲突高则用悲观锁。

热门文章

最新文章