在这篇文章中,我们将讨论以下话题:
- Docker 是否仍然相关
- 一张图解释 8 种流行网络协议
- IBM MQ → RabbitMQ → Kafka → Pulsar:消息队列架构如何演进
- 什么是数据库?常见数据库类型有哪些
Docker 架构
Docker 架构由三个主要组件组成:
- Docker 客户端:这是用户交互的界面。它与 Docker 守护进程通信
- Docker 主机:这里,Docker 守护进程监听 Docker API 请求并管理各种 Docker 对象,包括镜像、容器、网络和卷
- Docker 注册表:这是存储 Docker 镜像的地方。例如 Docker Hub 是一个广泛使用的公共注册表
8 种流行网络协议
网络协议是在网络中两台计算机之间传输数据的标准方法。
1. HTTP(超文本传输协议)
HTTP 是获取资源(如 HTML 文档)的协议。它是 Web 上任何数据交换的基础,是客户端 - 服务器协议。
2. HTTP/3
HTTP/3 是 HTTP 的下一个主要修订版。它在 QUIC(一种为移动重度互联网使用设计的新传输协议)上运行。它依赖 UDP 而不是 TCP,这使得更快的网页响应速度。VR 应用需要更多带宽来渲染虚拟场景的复杂细节,可能会从迁移到由 QUIC 驱动的 HTTP/3 中受益。
3. HTTPS(超文本传输协议安全)
HTTPS 扩展 HTTP 并使用加密进行安全通信。
4. WebSocket
WebSocket 是一个协议,在 TCP 上提供全双工通信。客户端建立 WebSocket 以从后端服务接收实时更新。与总是”拉取”数据的 REST 不同,WebSocket 使数据能够被”推送”。像在线游戏、股票交易和消息应用这样的应用利用 WebSocket 进行实时通信。
5. TCP(传输控制协议)
TCP 设计用于通过互联网发送数据包并确保数据和消息在网络上的成功交付。许多应用层协议建立在 TCP 之上。
6. UDP(用户数据报协议)
UDP 直接将数据包发送到目标计算机,无需先建立连接。UDP 通常用于时间敏感通信中,偶尔丢包比等待更好。语音和视频流量通常使用此协议发送。
7. SMTP(简单邮件传输协议)
SMTP 是将电子邮件从一个用户传输到另一个用户的标准协议。
8. FTP(文件传输协议)
FTP 用于在客户端和服务器之间传输计算机文件。它有单独的控制通道和数据通道连接。
消息队列架构演进
IBM MQ(1993)
IBM MQ 于 1993 年推出。最初称为 MQSeries,2002 年更名为 WebSphere MQ。2014 年更名为 IBM MQ。IBM MQ 是非常成功的产品,广泛用于金融部门。其收入在 2020 年仍达到 10 亿美元。
RabbitMQ
RabbitMQ 架构与 IBM MQ 不同,更类似于 Kafka 概念。生产者将消息发布到具有指定交换类型的交换器。它可以是 direct、topic 或 fanout。然后交换器基于不同消息属性和交换类型将消息路由到队列。消费者相应地拾取消息。
Kafka(2011)
2011 年初,LinkedIn 开源了 Kafka,这是一个分布式事件流平台。它以 Franz Kafka 命名。顾名思义,Kafka 针对写入进行了优化。它提供了一个高吞吐、低延迟平台用于处理实时数据流。它提供统一事件日志以实现事件流,并广泛用于互联网公司。Kafka 定义了生产者、代理、主题、分区和消费者。其简单性和容错性允许它取代以前基于 AMQP 的消息队列等产品。
Pulsar
Pulsar 最初由 Yahoo 开发,是一个全合一的消息和流媒体平台。与 Kafka 相比,Pulsar 结合了来自其他产品的许多有用功能,并支持广泛的功能。此外,Pulsar 架构更云原生,为集群扩展和分区迁移等提供更好的支持。Pulsar 架构有两层:服务层和持久层。Pulsar 原生支持分层存储,我们可以利用更便宜的对象存储(如 AWS S3)来更长期持久化消息。
问题:你使用过哪些消息队列?
数据库类型
首先,什么是数据库?把它想象成一个数字游乐场,我们以结构化方式组织和存储大量信息。现在,让我们振作起来,看看主要数据库类型。
关系型数据库
想象它像以整齐表格组织数据。把它想象成行为良好的兄弟姐妹,保持一切有序。
OLAP 数据库
在线分析处理(OLAP)是一种针对报告和分析目的优化的技术。
NoSQL 数据库
这些叛逆者有自己的酷俱乐部,对传统 SQL 方式说”不”。NoSQL 数据库有四种令人兴奋的风格:
- 图数据库:想象社交网络,人与人之间的关系最重要。就像映射谁是谁的朋友
- 键值存储数据库:就像一个宝箱,每件物品都有唯一键。找到你需要的东西易如反掌
- 文档数据库:文档数据库是一种以类似 JSON 格式存储信息的数据库。它与传统数据库不同,用于处理文档而不是表格
- 列数据库:想象像厨师准备食材一样切片和切丁你的数据。它高效且快速
问题:所以下次你听到数据库时,记住,外面是一个狂野的世界——从有序表格到叛逆 NoSQL 变体!你最喜欢哪个?分享你的想法!
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP80: Explaining 8 Popular Network Protocols in 1 Diagram。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。