一、Docker容器
定义:
- 开源的应用容器(Paas),可以实现虚拟化,共享所在主机的操作系统/内核。
- 容器完全使用沙盒机制,相互之间不会存在任何接口。
- 他们不依赖于任何语言、框架或者包装系统。
功能:
实现技术及原理:
- 内核命名空间(kernel Namespace)
- 控制组(Control Group)
- 联合文件系统(Union File System)
主要组成:
docker引擎
docker镜像
docker网络
docker数据化管理(卷与持久化、非持久化)
注意事项:
虚拟机:
容器技术
二、zookeeper
**定义:**分布式协调服务
应用:
- 服务注册与发现 :管理分布式系统中服务
- 分布式锁:在分布式环境,对进程进行调度
- 配置管理:管理核心配置文件
- 负载均衡:让高并发的请求能够平均的分配到集群中的每一个服务,避免有些服务压力过大
实现技术及原理:
Zookeeper 通信原理,
Zookeeper 监听机制,
Zookeeper ACL,
Zookeeper 序列化方式,
Zookeeper ZAB 协议
三、Kafka消息队列
定义: 是一个高性能的分布式流处理平台
应用:
- Kafka 可以发布和订阅消息。
- Kafka 可以储存消息。
- Kafka 可以在消息产生时就进行处理
实现技术及原理:
Broker: 消息管理者,Kafka 通常使用集群模式来提供服务,集群中的单个 Kafka 节点就称为 Broker;
Topic: 消息的主题,用于区分消息的类型,保存在 Broker 中;
Partition: 消息的分区,Topic 下可以有一个或者多个分区;
Producer: 消息生产者,Producer 将消息发布到 Topic 中,由 Broker 把消息存放到 Partition 中;
Consumer:消息消费者,Consumer 从 Broker 中的 Topic 拉取消息,可以拉取多个 Topic 的消息;
Consumer Group: 消费者分组,对 Consumer 进行分组,方便对多个 Consumer 进行消息广播;
Leader: 分区副本的领导者,当前负责读写操作的 Partition;
Follower: Leader 的跟随者,会同步 Leader 的数据,Leader 失效后从 Follower 中选举 Leader ;
Offset: Partition 消息的消费数量记录。
四、Mongdb分布式非关系型数据库
定义:
- 一个基于分布式文件存储 的数据库。由C++语言编写。
- 是非关系数据库当中功能最丰富,最像关系数据库的。
- 它支持的数据结构非常松散,是类似json的bson格式。
- 它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言。
- 默认端口为27017
- 文档是 MongoDB 中数据的基本单位,集合就是一组文档,类似于关系数据库中的表;MongoDB 中多个文档组成集合,多个集合组成数据库。
应用:
- 在为WEB应用提供可扩展的高性能数据存储解决方案;
- 网站数据、缓存场景、大尺寸、低价值的数据场景、 高伸缩性的场景、用于对象及JSON 数据的存储、
实现技术及原理:
- “面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。
- 模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
- BSON数据格式, 它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。基于json开发,
优点是:1.更快遍历速度 2.操作更简易 3.增加byte array 数据类型