【C++后端学习】15、分布式应用开发

一、Docker容器

在这里插入图片描述

定义:

  • 开源的应用容器(Paas),可以实现虚拟化,共享所在主机的操作系统/内核。
  • 容器完全使用沙盒机制,相互之间不会存在任何接口。
  • 他们不依赖于任何语言、框架或者包装系统。
    功能:
    实现技术及原理:
  1. 内核命名空间(kernel Namespace)
  2. 控制组(Control Group)
  3. 联合文件系统(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 数据的存储、

实现技术及原理:

  1. “面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。
  2. 模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
  3. BSON数据格式, 它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。基于json开发,
    优点是:1.更快遍历速度 2.操作更简易 3.增加byte array 数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值