一、背景在做玩法钱包项目时,其中一个场景,在使用账户资金创建红包时,先要预先判断账户资金是否充足,如果充足则冻结这笔资金,再创建红包,如果创建红包失败要取消冻结资金。这就涉及到了两个应用中红包库和资金库的跨应用跨库事务的问题。本打算采取处理失败后使用metaq消息重试机制来做补偿,保证最终一致性。这种方式的好处是不引用新的中间件,对系统性能和吞吐量影响不大。但缺点也很明显,为了对数据进行补偿,针对
  • arick
  • 2020-05-06 23:01:18
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基准测试:每秒写入2百万(在三台廉价机器上
  • admin
  • 2019-06-24 23:28:47
序言在后端的日常开发工作中,集合是使用频率相当高的一个工具,而其中的HashMap,则更是我们用以处理业务逻辑的好帮手,同时HashMap的底层实现和原理,也成了面试题中的常客。以前曾有详细了解过HashMap的实现原理,看过源码(JDK7版本)。但随着jdk版本的飞速迭代(现在都到JDK13了,但新特性还从没用过。。),主流的jdk使用版本也终于从JDK7挪到了JDK8。由于JDK的向前兼容,在
  • arick
  • 2020-05-13 14:48:32
java反射核心机制与原理解析一、java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection):1、Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。2、Java垃圾回收(Garbage Collecti
  • arick
  • 2019-09-24 22:13:25
关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法。希望能对多线程开发学习的童鞋有些启发和帮助。一、Threa关于Java线程池的参数关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干
  • admin
  • 2019-06-24 23:22:54
2019 年 3 月,蚂蚁金服加入分布式事务 Seata 的社区共建中,并贡献其 TCC 模式。本期是 SOFAChannel 第四期,主题:分布式事务 Seata TCC 模式深度解析,本文根据觉生的直播整理。大家晚上好,我是 Seata Committer 觉生,来自蚂蚁金服数据中间件团队。今天的内容主要分为以下四个部分:Seata TCC 模式的原理解析;从 TCC 的业务模型与并发控制分享
  • admin
  • 2019-06-19 15:33:04
 Mac 操作命令:⌘+w是关闭标签刷新,网页是Command+R插销:command+z 反向撤回:shift+command+z 文件返回的上一级:Command + 方向上mac电脑窗口最大化默认的快捷键为:Command + control + F,但是这个窗口最大化快捷键也不是通用的,对于某些应用程序无效。 IntelliJ IDEA 操作命令:command + shift + / 注
  • arick
  • 2019-09-30 14:52:32
一、Hive 基本面试1、什么是 metastore2、metastore 安装方式有什么区别3、什么是 Managed Table 跟 External Table?4、什么时候使用 Managed Table 跟 External Table?5、hive 有哪些复合数据类型?6、hive 分区有什么好处?7、hive 分区跟分桶的区别8、hive 如何动态分区9、map join 优化手段1
  • admin
  • 2019-06-25 21:53:56
开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题。云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。(以下项目排名不
  • arick
  • 2020-05-03 00:14:57
1.什么事缓存存储在计算机上的一个原始数据复制集,便于快速访问,提高系统响应效率。2.redis是一个kay-value形式的NoSql缓存存储系统3. 缓存更新策略LRU/LFU/FIFO算法剔除:处理到达阀值后的缓存数据剔除超时剔除方式: 设置数据有效期,到期后缓存数据自动删除,例如redis提供的expire命令,通常使用在业务允许一段时间内缓存数据与DB数据不一致的情况下,可以为其设置过期
  • arick
  • 2020-04-05 20:51:56
Rick ©2018