Think_Higher
内存虽快,但不持久,好记性不如烂笔头。
展开
-
对接系统外部服务组件技术方案
本文介绍了为解决多系统对接中外部系统不稳定、日志不全和重试机制不足等问题而设计的Connector集成组件。该组件包含任务提交、调度和执行三大模块:任务提交负责参数解析与持久化;调度模块基于Redis队列实现,支持同步/异步任务处理,并提供异常监控与补偿机制;执行模块根据任务类型调用不同处理器,支持授权过滤和HTTP请求。系统提供Spring Boot Starter接入方式,兼容MongoDB和MySQL存储,并预留扩展接口。未来计划补充可视化界面功能。整体方案通过标准化流程和灵活扩展性,提升了系统集成的原创 2025-06-03 17:39:21 · 63 阅读 · 0 评论 -
基于gRPC的服务消息推送框架设计思路
在中台服务或各部门业务系统中,普遍存在异步耗时任务场景(如Excel数据导出、视频转码等)。当执行模块与业务模块采用分布式架构时,如何将异步任务结果实时、高效、便捷地通知业务服务成为关键挑战。高实时性(双向流通信)高性能(HTTP/2多路复用)低侵入接入(简洁SDK)弹性扩展(分布式架构)原创 2025-04-22 11:36:42 · 54 阅读 · 0 评论 -
openfga原理及简单落地方案设计
项目背景中介绍到权限业务模型包括直接权限、角色权限、用户属性权限、分组权限、继承权限,可以分别对应OpenFGA关系模型中的Direct、Role、Compose、Group、Parent权限模型,核心的关系主要有view(查看)、edit(编辑)、manage(管理)、owner(拥有者)四种。OpenFGA通过检查“对象”和“用户”之间的“关系”来判断权限,其中,“对象”和“用户”可以理解为“实体”,可以是系统中的任何“实体”,通过“关系”将“对象”与“用户”这两种“实体”关联起来。原创 2025-04-09 19:05:02 · 85 阅读 · 0 评论 -
曹操出行一面经历
限流sentinel 工具实现原理如何设计一个业务领域系统流程引擎了解过吗?有哪些开源的流程引擎?原创 2023-05-04 20:46:25 · 961 阅读 · 0 评论 -
网易三面:数据库查询树形结构层面如何找出一个节点的所有子孙节点和祖先节点?
一、邻接表:依赖父节点查询一个节点的所有后代(求子树)怎么查呢?添加一条记录修改一个节点位置或一个子树的位置删除子树删除中间节点,并提升子节点二、路径枚举路径枚举的优点查询某个节点的全部祖先查询某个节点的全部后代路径枚举的缺点三、嵌套集嵌套集的优点嵌套集缺点四、闭包表优点1、查询所有后代节点(查子树)2、查询所有祖先(查祖先树):3、插入新节点4、删除叶子节点5、删除子树总结原创 2023-04-26 16:26:59 · 946 阅读 · 0 评论 -
网易二面经历
mongo 索引底层数据结构mysql 双主架构如何同步mysql binlog limit 1顺序不一致,如何保证同步rocketmq reBalance过程是怎么样的,比如新加一个消费线程kafka有没有用过?了解其特性,原理吗?try catch 可以catch住error吗?可以catch住throwable吗?子类1:Error(错误)子类2:Exception(异常)运行时异常:RuntimeException类及其子类异常非运行时异常 (受检异常):是RuntimeExcep原创 2023-04-25 20:13:03 · 652 阅读 · 0 评论 -
面试官:布隆过滤器运行机制了解吗?有什么优缺点?
1 缓存穿透2 原理解析误判率3 Guava实现3 Redisson实现Redisson 布隆过滤器如何保存元素呢 ?4 实战要点1、缓存穿透场景2、元素删除场景计数布隆过滤器(Counting Bloom Filter)定时重新构建布隆过滤器5 总结原创 2023-04-20 17:05:24 · 561 阅读 · 0 评论 -
面试官:你知道JVM的卡表吗?
跨代引用跨代引用假说卡表(Card Table)卡表元素如何维护——写屏障原创 2023-04-20 10:43:56 · 477 阅读 · 0 评论 -
面试官:谈谈你对领域模型设计(DDD)的理解和心得
一、业务开发的职责业务在实际开展中遇到的问题软件复杂度二、DDD的本质是什么1、领域复杂度2、技术实现的复杂性三、复杂度处理-领域模型描述问题域的准确性合理性证明什么是问题域如何实现问题域的分析1 四色原型法2 用例分析法问题域的拆分四、复杂度处理-进一步降低问题域的复杂度-限界上下文限界上下文的诞生背景限界上下文的本质上下文映射五、复杂度处理 - 分层不合理传统的三层架构六边形架构洋葱架构DDD 架构CQRS我们团队里面的架构实践六、复杂度 - 软件变成一个原创 2023-04-17 21:18:26 · 1290 阅读 · 0 评论 -
面试官:如何设计一个支付系统?
支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下各个系统的核心组成和交互。原创 2023-04-12 22:00:54 · 669 阅读 · 0 评论 -
面试官:如何设计分布式日志系统?
什么是日志日志的价值分布式架构的日志运维4.1 为什么要有运维工具4.2 运维工具建设APM和可观测性5.1 Metrics和Prometheus5.2 Logging和ELK5.3 Tracing、OpenTracing和Apache SkyWalking5.4 Metrics,Logging和 Tracing 结合文库在日志运维上的实践6.1 汇聚监控6.2 批量查询6.3 链路跟踪日志的坏味道日志 good case原创 2023-04-12 21:28:02 · 1168 阅读 · 0 评论 -
面试官:你知道SPI吗?Java、Spring、Dubbo三者SPI机制的原理和区别了解吗?
什么是SPIJava SPI机制--ServiceLoader举例实现原理优缺点使用场景Spring SPI机制--SpringFactoriesLoader举例核心原理使用场景1、自动装配2、PropertySourceLoader的加载与Java SPI机制对比Dubbo SPI机制--ExtensionLoader举例dubbo核心机制1、自适应机制2、IOC和AOP2.1、依赖注入2.2、接口回调2.3、自动包装3、自动激活总结原创 2023-04-10 11:12:23 · 489 阅读 · 0 评论 -
高并发下如何保证接口幂等
1. insert前先select2. 加悲观锁3. 加乐观锁4. 加唯一索引5. 建防重表6. 根据状态机7. 加分布式锁8. 获取token原创 2023-04-08 12:17:25 · 710 阅读 · 0 评论 -
如何设计一个秒杀架构设计?
1. 秒杀业务的特点2. 总体思路2.1 削峰限流安全保护页面优化,动静分离异步处理热点分离2.2 Nginx的设计细节2.3 页面优化细节降低交互的压力安全控制2.4 Redis集群的应用分布式悲观锁(参考redis悲观锁的代码)异步处理订单2.5 消息队列限流2.6 数据库设计2.7 答题验证码的设计3. 注意事项原创 2023-04-08 12:16:35 · 461 阅读 · 0 评论 -
几种常见的微服务网关介绍
API网关基础什么是API网关网关的主要功能API网关选型常用API网关NginxZuulSpring Cloud GetWayKongTraefikAPI网关对比原创 2023-04-08 12:00:02 · 781 阅读 · 0 评论 -
Sentinel滑动时间窗限流算法原理及源码解析(下)
流控快速失败。原创 2023-04-07 09:23:02 · 784 阅读 · 0 评论 -
Sentinel滑动时间窗限流算法原理及源码解析(中)
WindowWrap样本窗口实例 范型T为MetricBucketwindowLengthInMs 样本窗口长度windowStart 样本窗口的起始时间戳value 当前样本窗口的统计数据 其类型为MetricBucket。原创 2023-04-07 09:22:37 · 945 阅读 · 0 评论 -
Sentinel滑动时间窗限流算法原理及源码解析(上)
时间窗限流算法滑动时间窗口滑动时间窗口算法改进滑动时间窗口源码解析原创 2023-04-07 09:22:16 · 499 阅读 · 0 评论 -
怎么避免mysql死锁问题以及解决死锁
什么是死锁问题现象(锁超时会回滚)InnoDB 锁类型间隙锁( gap lock )next-key lock (临键锁)意向锁( Intention lock )插入意向锁( Insert Intention lock )锁模式兼容矩阵阅读死锁日志经典案例分析案例一:事务并发 insert 唯一键冲突案例一:先 update 再 insert 的并发死锁问题如何尽可能避免死锁解决方法粗暴方式文雅方式对于锁的建议如何定位死锁成因原创 2023-04-06 11:00:05 · 1078 阅读 · 0 评论 -
订单超时自动取消3种方案
1.定时任务2.被动取消3.延时消息原创 2023-04-06 11:01:57 · 2045 阅读 · 1 评论 -
MySQL数据同步ES的常用思路和方法
1.同步双写2.异步双写3.定时任务4.数据订阅原创 2023-04-06 10:58:54 · 1431 阅读 · 0 评论 -
聊聊MySQL主从延迟
MySQL 的高可用是如何实现的呢?二、什么是主备延迟?三、主备延迟常见原因1、备库机器配置差2、备库干私活3、大事务四、主库不可用,主备切换有哪些策略?1、可靠优先2、可用优先实验一实验二3、结论原创 2023-04-06 10:58:14 · 967 阅读 · 0 评论 -
线程池中的线程抛出了异常,该如何处理?
模拟线程池抛异常submit()想要获取异常信息就必须使用get()方法!!如何获取和处理异常方案一:使用 try -catch方案二:使用Thread.setDefaultUncaughtExceptionHandler方法捕获异常方案三:重写afterExecute进行异常处理原创 2023-04-06 10:57:48 · 941 阅读 · 0 评论 -
支付宝卡包券到期提醒,定时任务怎么做?
背景介绍定时任务分类单机任务1、定时调度2、定时调度+批处理集群任务1、三层分发2、五福定制三层分发原创 2023-04-06 10:57:21 · 1811 阅读 · 0 评论 -
一致性哈希算法 consistent hashing
场景描述一致性哈希算法的基本概念一致性哈希算法的优点hash环的偏斜虚拟节点原创 2023-04-06 10:56:56 · 1544 阅读 · 0 评论 -
面试官:用过cookie吗?怎么工作的?使用场景是什么?
什么样的数据适合放在cookie中?cookie是怎么设置的?cookie为什么会自动加到request header中?cookie怎么增删查改?cookie 是怎么工作的?cookie 的格式cookie 的属性选项expiresdomain 和 pathsecurehttpOnlyhttpOnly与安全如何设置 cookie?服务端设置 cookie客户端设置 cookie用 js 如何设置多个 cookie如何修改、删除修改 cookie删除 cookiecoo原创 2023-04-05 14:15:04 · 1851 阅读 · 0 评论 -
解决跨域问题的常用方法
没有同源策略限制的接口请求没有同源策略限制的Dom查询跨域正确的打开方式同源策略限制下接口请求的正确打开方式1.JSONP2.空iframe加form3.CORS4.代理同源策略限制下Dom查询的正确打开方式1.postMessage2.document.domain3.canvas操作图片的跨域问题原创 2023-04-05 14:14:18 · 975 阅读 · 0 评论 -
JDK 1.8 HashMap经典面试问题
1:HashMap 的数据结构?2:HashMap 的工作原理?3.当两个对象的 hashCode 相同会发生什么?4.你知道 hash 的实现吗?为什么要这样实现?5.为什么要用异或运算符?6.HashMap 的 table 的容量如何确定?loadFactor 是什么?该容量如何变化?这种变化会带来什么问题?7.HashMap中put方法的过程?8.数组扩容的过程?9.拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?10.说说你对红黑树的见解?原创 2023-04-05 14:15:49 · 1055 阅读 · 0 评论 -
mongodb和mysql双写数据一致性问题
我们是如何用MongoDB的如何保证双写一致性?先写数据库,再写MongoDB先写MongoDB,再写数据库用户修改操作如何保存数据如何清理新增的垃圾数据定时删除随机删除原创 2023-04-05 14:12:37 · 1765 阅读 · 0 评论 -
Dubbo经典面试问题
Dubbo 是什么?RPC 又是什么?为什么要这么做?Dubbo 能做什么?能说一下 Dubbo 的总体调用过程吗?说说 Dubbo 支持哪些协议,每种协议的应用场景和优缺点dubbo 默认使用什么序列化框架,你知道的还有哪些?Dubbo中都用到哪些设计模式?责任链模式观察者模式修饰器模式工厂方法模式抽象工厂模式适配器模式代理模式如果 Dubbo 中 provider 提供的服务有多个版本怎么办服务暴露的流程是怎么样的?服务引用的流程是怎么样的?Dubbo 的注册中心有哪些原创 2023-04-04 10:39:09 · 1137 阅读 · 0 评论 -
RocketMQ服务端组件详解
组件总览Name ServerBrokerFilter Server(可选)Consumer/Producer原创 2023-04-03 09:50:59 · 437 阅读 · 0 评论 -
如何保证RocketMQ顺序消息以及可能出现的问题
生产端提供了一个接口 MessageQueueSelector如果扩容了怎么保证顺序消费?顺序消息,如果某条失败了怎么办?会不会一直阻塞?原创 2023-04-03 09:43:45 · 1581 阅读 · 0 评论 -
为什么我们mysql从双主切换到了单主?
MySQL 双主 + Keepalived 的模式问题原创 2023-04-02 18:41:33 · 771 阅读 · 0 评论 -
mysql 双主架构详解
一、背景二、MySQL双主(主主)架构方案三、MySQL双主架构图四、MySQL双主架构的优缺点五、MySQL双主架构,会存在什么问题?原创 2023-04-02 12:45:45 · 2507 阅读 · 0 评论 -
mysql 主从(单主)模式架构以及主从延迟原理
什么是 MySQL 一主多从 ?为什么使用 MySQL 主从 ?主从复制主从复制过程同步模式异步复制全同步复制半同步复制如何保证主从一致mixed 格式的 binlog主从延迟基于主从复制原理看延迟主从延迟情况主从延迟原理主从延迟的原因主节点binLog数据未及时同步I/O线程未及时写RelayLogSQL线程未及时写数据库主从延迟解决方案强一致性方案并行复制降低并发增加NOSQL层缓存标记法总结原创 2023-04-02 12:45:00 · 728 阅读 · 0 评论 -
MVCC + next-key Lock(行锁 + 间隙锁)解决mysql幻读
行级锁临键锁(Next-Key Locks)MVCC能解决了幻读问题?RR隔离级别+无索引RR隔离级别+普通索引RR隔离级别+唯一索引间隙锁的配置查看是否开启间隙锁表锁和行锁已经保证了事务的隔离性,确保数据一致,那么为什么还要使用意向锁呢?总结原创 2023-04-02 11:12:57 · 942 阅读 · 0 评论 -
mysql主从(单主)同步原理
同步原理复制线程binlog dump线程Slave线程SQL线程主从复制优化多线程复制半同步复制数据恢复mysqlbinlog 命令的使用查看bin-log二进制文件(shell方式)查看bin-log二进制文件(带查询条件)截取日志(GTID)临时不记录binlog日志实时拉取远程主机binlog文件中的数据原创 2023-04-01 16:03:59 · 862 阅读 · 0 评论 -
mysql事务隔离级别的实现原理
一、什么是事务的隔离级别二、再看可重复读原理锁定读(当前读)一致性非锁定读(快照读)隐式锁定(两阶段锁)显式锁定原创 2023-04-01 16:02:36 · 523 阅读 · 0 评论 -
一文彻底搞懂mysql binlog redolog undolog 作用原理以及运行机制
bin logbinlog主要应用场景查看bin log日志使用日志恢复数据删除二进制日志写入时机Binlog的日志格式StatementRowMixedBinlog 相关参数是否启用binlog日志配置文件参数说明清理过期的Binlog日志手工删除binlog自动删除binlog常用的Binlog操作命令Binlog文件以及扩展Redo Log为什么不直接修改磁盘中的数据?修改内存再异步同步到磁盘的问题redo log一定能保证事务的持久性吗?redo log原创 2023-04-01 16:02:05 · 566 阅读 · 0 评论 -
一文读懂 mysql 为什么要两阶段提交以及两阶段提交原理
为什么要两阶段提交redo log与binlog两份日志之间的逻辑不一致,会出现什么问题?两阶段提交是怎么保证逻辑一致的呢?当 binlog 写完,redo log 还没 commit 前发生 crash,那崩溃恢复后 MySQL 如何处理?redo 与 binlog 的刷盘时机MySQL 的双 1 配置能否只用 redo log 不要 binlog?Binlog 组提交机制原创 2023-04-01 16:00:12 · 1174 阅读 · 0 评论