架构设计
微服务:将服务打散,服务之间通过网络协议调用
面临问题:
- 微服务架构增加了系统的复杂性,把集中部署变成了分布式部署。需要实现基于消息或 RPC 的进程间通讯,需要处理部分失败等分布式系统的复杂问题
- 微服务采用分区数据库架构,一个事物需要更新不同微服务的数据库,分布式事务更复杂(失败回滚)
- 测试更复杂
- 部署监控更复杂
优点: - 将一个庞大系统分解成高内聚、松耦合的组件使得系统部署更快,更易理解和维护
- 不同服务由不同team维护,分工更细,更关注和关注业务
- 微服务往往是异构系统,开发团队可自主选择技术栈
- 微服务架构使每个服务独立部署,易于持续集成
Docker
- 基于 Linux 内核的 Cgroup,Namespace,以及 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其他的隔离的进程,因此也称为容器
优点
- 高效利用资源。虚拟机占有几百M资源
- 快速启动
docker run
-it 交互
-d 后台运行
-p 端口映射
-v 磁盘挂载
docker inspect (CONTAINER ID) 查看容器的细节
容器的主要特性:安全性、隔离性、便携性、可配额
Namespace:
查看 linux 上 namespace
lsns
lsns -t