发布于
业务场景变化带来业务量激增导致高性能需求
小额支付的流行:
以前超市十几块钱东西刷卡,收银员白眼
现在大街小巷的商户摊贩都支持扫码支付,没人跟你叽歪
业务场景变化带来业务量激增导致高性能需求
小额支付的流行:
以前超市十几块钱东西刷卡,收银员白眼
现在大街小巷的商户摊贩都支持扫码支付,没人跟你叽歪
Jim Gray进入数据库领域时,RDBMS基本理论已成熟,但各大厂遇到一系列技术问题
答案太多,抄篇不错的
看似简单?
分布式系统的事务一致性是一个技术难题
OLTP系统领域,很多业务场景都会面临事务一致性方面的需求,最经典转账的案例
传统企业开发,系统往往是以单体应用形式存在,没有横跨多个数据库
通常只需借助开发平台中特有数据访问技术和框架(Spring、JDBC、ADO.NET),结合rdbms自带事务管理机制来实现事务性的需求(ACID)
互联网平台往往由一系列分布式系统构成,开发语言平台和技术栈也相对比较杂,尤其微服务架构盛行,看起来简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,情况复杂很多
单一技术手段和解决方案,无法应对和满足这些复杂的场景
网上资料很多以IO五种模型为基础讲解NIO
五种模型又涉及很多概念:同步/异步/阻塞/非阻塞/多路复用
,而不同的人又有不同的理解方式
select/epoll/poll/pselect
,fd
这些关键字,没有相关基础的人看起来简直是天书
导致初学时认为nio远不可及
烧脑
封装原则倡导通过隐藏抽象的实现细节和隐藏变化等,实现关注点分离和信息隐藏
容器技术和虚拟机,都是 资源隔离的虚拟化技术
graph LR
A[UNIX chroot] --> B(FreeBSD Jails)
B --> C[Linux VServer,Solaris Containers]
C --> D[OpenVZ]
D --> E[Google cgroups]
E --> F[LXC]
F --> G[Docker]