Mongodb 介绍

Mongodb 是一个以 JSON 为数据模型的文档(JSON Document)数据库。

其相较于普通关系型数据库(RDBMS)的优势如下表:

MongoDB RDBMS
数据模型 文档模型 关系模型
数据库类型 OLTP OLTP
CRUD 操作 MQL/SQL SQL
高可用 复制集 集群模式
横向扩展能力 通过原生分片完善支持 数据分区或者应用侵入式
索引支持 B-树、全文索引、地理位置索引、多键(multikey)索引、TTL 索引 B树
开发难度 容易 困难
数据容量 没有理论上限 千万、亿
扩展方式 垂直扩展+水平扩展 垂直扩展

Kubernetes in Action—服务:让客户端发现 pod 并与之通信

在没有 Kubernetes 的世界里,系统管理员要在用户端配置文件中指出服务的具体 IP 地址或主机名来让客户端应用,但这种方式在 Kubernetes 不适用,因为:

  • pod 是短暂的 — pod 会随时的启动或关闭,无论是因为减少了 pod 的数量,又或者集群中节点异常等等
  • Kubernetes 在 pod 启动前会给以及调度到节点上的 pod 分配 IP 地址 — 因此不能给客户端显示配置 pod 的 IP 地址
  • 水平伸缩意味着多个 pod 可能提供相同的服务 — 每个 pod 都有自己的 IP,客户端不应该关心 pod 的数量及对应的 IP 地址,而应该通过统一的 IP 地址进行访问

为了解决上述问题,Kubernetes 提供了服务(service)类型。

Kubernetes in Action—kubernetes 介绍

微服务相较于大型单体应用,彼此之间解耦,因此可以被独立开发,部署,升级,伸缩,使得我们可以对每一个微服务实现快速迭代,并且迭代的速度可以和市场需求变化的速度保持一致。

但随着部署组件的增多和数据中心的增长,配置、管理并保持系统正常运行变得越来越困难,因此我们需要一些自动化的措施,包括自动调度、配置、监管和故障处理,Kubernetes 可以很好地完成了这些工作。