cap

分布式系统的事务一致性是一个技术难题

OLTP系统领域,很多业务场景都会面临事务一致性方面的需求,最经典转账的案例

传统企业开发,系统往往是以单体应用形式存在,没有横跨多个数据库

通常只需借助开发平台中特有数据访问技术和框架(Spring、JDBC、ADO.NET),结合rdbms自带事务管理机制来实现事务性的需求(ACID)

互联网平台往往由一系列分布式系统构成,开发语言平台和技术栈也相对比较杂,尤其微服务架构盛行,看起来简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,情况复杂很多

单一技术手段和解决方案,无法应对和满足这些复杂的场景

java nio

网上资料很多以IO五种模型为基础讲解NIO

  • 五种模型又涉及很多概念:同步/异步/阻塞/非阻塞/多路复用而不同的人又有不同的理解方式

  • select/epoll/poll/pselectfd这些关键字,没有相关基础的人看起来简直是天书

导致初学时认为nio远不可及

封装

封装原则倡导通过隐藏抽象的实现细节隐藏变化等,实现关注点分离和信息隐藏

容器进化史

容器技术和虚拟机,都是 资源隔离的虚拟化技术

1
2
3
4
5
6
7
8
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]
 

rocketmq

RMQ用了好多年,该重新回顾一下了

springboot

Spring Boot做了那些没有它你也会去做的Spring Bean配置

“习惯优于配置”的理念让项目快速运行起来

容易创建一个独立运行(bootable jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置