SPI全称是Service Provider Interface,是一种服务自发现机制,本质是将接口实现类的全限定名配置在文件中,在使用中,通过运行时加载,并动态地替换为具体的接口实现类。
日志:每个软件工程师都应该知道的实时数据的统一抽象
发表于
更新于
原文:The Log: What every software engineer should know about real-time data’s unifying abstraction
作者:Jay Kreps
我大约在六年前加入了领英,那是一个特别有趣的时间点。那时我们正面临着单体集中式数据库极限的挑战,需要开始向专门的分布式系统转变。这真是一个有趣的经历:我们构建、部署和运行了分布式图数据库、分布式搜索后端、Hadoop套件、一代及二代键值数据库,并运行至今。
在这个过程中,我学到的最有用的一件事情是,我们在这里构建的大多数组件,其核心都有一个简单的概念:日志,有时也被称作先写日志、提交日志或者事务日志,日志几乎与计算机的历史一样悠久,它是许多分布式数据系统和实时应用架构里面的核心。
如果你不了解日志,你也就不可能完全了解数据库、NoSQL存储、键值存储、副本、paxos、hadoop、版本控制、甚至几乎任何软件系统,然而大多数软件工程师都不熟悉它,我希望改变这个现状。在这篇文章中,我将告诉你一切你需要知道的关于日志的事情,包括什么是日志、如何在数据集成、实时处理和系统构建中使用日志。
Spring Boot源码学习:DeferredResult的处理流程
发表于
Spring Boot源码学习:事务生效原理
发表于
更新于
Spring Boot源码学习:AOP代理对象的创建
发表于
更新于
实现延时任务可以有几种方式
发表于
更新于
在开发中,延时任务属于比较常见的需求,比如,订单在限定时间内未支付则自动取消并释放库存;外卖的商家端在设置特定时间后仍未接单时则自动接单等这都需要延时任务来完成。
实现延时任务的方式可以有许多种:
1 DelayQueue(JDK提供实现)
2 ScheduledExecutorService(JDK提供实现)
3 Redis(使用ZSET数据结构实现)
4 RabbitMQ实现
5 ……
Spring Boot源码学习:getBean方法解析
发表于
更新于
Spring Boot源码学习:@Autowired的解析
发表于
更新于
Spring Boot源码学习:@Configuration类的解析
发表于
更新于
Spring Boot源码学习:自动配置原理
发表于
更新于
