Docker 安装 kafka (bitnami/kafka:4.0)
1、拉取镜像
docker pull bitnami/kafka:4.0
2、创建挂载目录
mkdir -p /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/data
mkdir -p /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/logs
3、给挂载目录授权
chmod 777 /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/data
chmod 777 /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/logs
4、运行容器
4.1、运行命令
docker run -d \--name bitnami_kafka_4.0 \--restart always \--ulimit nofile=65536:65536 \-e TZ=Asia/Shanghai \-e KAFKA_ENABLE_KRAFT=yes \-e KAFKA_CFG_NODE_ID=0 \-e KAFKA_CFG_PROCESS_ROLES=controller,broker \-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@127.0.0.1:9093 \-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://113.45.38.93:9092 \-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \-e KAFKA_CFG_LOG_DIRS=/bitnami/kafka/data \-p 9092:9092 \-v /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/data:/bitnami/kafka \-v /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/logs:/opt/bitnami/kafka/logs \--memory=512m \--cpus="1.0" \bitnami/kafka:4.0
4.2、命令解释
下面先给出这条 docker run
命令的整体概览,然后逐行详解各个参数和环境变量的作用。
这条命令启动了一个基于 Bitnami 提供的 Kafka 4.0 镜像的容器,并在 KRaft 模式(即不依赖 Zookeeper)下同时担任 controller 和 broker。它设置了时区、节点 ID、监听器及广告地址,指定数据和日志存储目录,限制了文件句柄数、内存和 CPU 使用,并在主机上映射了对应端口,保证容器重启策略为“始终重启”。
4.2.1、 基本启动与命名
docker run -d \--name bitnami_kafka_4.0 \--restart always \
docker run -d
:以“后台模式”(detached)启动容器,使其在后台运行,不占用当前终端。--name bitnami_kafka_4.0
:为容器指定名字,方便后续管理和运维。--restart always
:容器退出(无论退出码为何)或 Docker 守护进程重启后,都会自动重启该容器,保证 Kafka 服务的高可用性。
4.2.2、 文件句柄限制
--ulimit nofile=65536:65536 \
--ulimit nofile=65536:65536
:将容器内“最大打开文件数”(nofile
)软限制和硬限制都设置为 65536,避免 Kafka 在高并发情况下因文件描述符不足而崩溃。
4.2.3、时区设置
-e TZ=Asia/Shanghai \
-e TZ=Asia/Shanghai
:设置容器时区为北京时间(东八区),使 Kafka 日志及监控时间戳与本地时间保持一致,便于分析与排查。
4.2.4、 KRaft 模式开启及节点角色
-e KAFKA_ENABLE_KRAFT=yes \-e KAFKA_CFG_NODE_ID=0 \-e KAFKA_CFG_PROCESS_ROLES=controller,broker \-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@127.0.0.1:9093 \
KAFKA_ENABLE_KRAFT=yes
:启用 KRaft 模式(Kafka Raft Metadata),这是 Kafka 未来推荐的无 Zookeeper 架构。KAFKA_CFG_NODE_ID=0
:为该 Kafka 实例分配唯一的节点 ID,KRaft 模式下用于集群内部元数据选举。KAFKA_CFG_PROCESS_ROLES=controller,broker
:指定该节点同时承担 “controller” 和 “broker” 两种角色。KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@127.0.0.1:9093
:定义控制器选举的投票列表,格式为<nodeId>@<host>:<port>
,此处只有一个节点自身(单节点集群)。
4.2.5、 监听器配置
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://IP:9092 \-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
:定义两个监听端口:PLAINTEXT
:对外提供普通客户端连接,监听容器内部9092
端口;CONTROLLER
:内部控制器通信,监听容器内部9093
端口。
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://IP:9092
:告诉客户端连接时使用的地址和端口,通常设置为宿主机或对外 IP,方便外部服务或用户连接。KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
:将每个监听器映射到安全协议,此处均为明文(PLAINTEXT)。KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
:指定用于 controller 通信的监听器名称为CONTROLLER
。
4.2.6、 日志与数据目录挂载
-e KAFKA_CFG_LOG_DIRS=/bitnami/kafka/data \-p 9092:9092 \-v /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/data:/bitnami/kafka \-v /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/logs:/opt/bitnami/kafka/logs \
KAFKA_CFG_LOG_DIRS=/bitnami/kafka/data
:Kafka 存储分区数据的目录。-p 9092:9092
:将宿主机的9092
端口映射到容器的9092
,使外部客户端可以访问。-v …/data:/bitnami/kafka
:把宿主机的数据目录挂载到容器中,用于持久化 Kafka topic 数据。-v …/logs:/opt/bitnami/kafka/logs
:把宿主机的日志目录挂载到容器,用于持久化 Kafka 日志文件,便于排查。
4.2.7、 资源限制
--memory=512m \--cpus="1.0" \
--memory=512m
:限制容器使用最多 512MB 内存,避免单容器占用过多宿主机资源。--cpus="1.0"
:限制容器最多使用一个 CPU 核心,保障宿主机上其他服务的性能。
4.2.8、 镜像与版本
bitnami/kafka:4.0
- 使用 Bitnami 官方维护的
bitnami/kafka:4.0
镜像。Bitnami 镜像通常附带最佳实践的配置和管理脚本,方便快速部署生产级 Kafka 服务。
相关文章:
Docker 安装 kafka (bitnami/kafka:4.0)
1、拉取镜像 docker pull bitnami/kafka:4.02、创建挂载目录 mkdir -p /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/datamkdir -p /user/lzl/tool/docker/kafka/bitnami/bitnami_kafka_4.0/home/logs3、给挂载目录授权 chmod 777 /user/lzl/tool/docker/ka…...
NameSilo转入转出域名
一、总起 域名转入转出主要沟通方式就是靠注册邮箱收取转移授权码。 因为namesilo的界面一直在慢慢改动(很慢很慢),所以本文和网上教程里的截图有所不同,以后本文可能也会与实际界面有所不同。 二、转入域名 1. 在其它域名服务商…...
Python----深度学习(基于DNN的吃鸡预测)
一、目标 如何使用 PyTorch 实现一个简单的深度神经网络(DNN)模型,并用于回归任务。该模型通过训练数据集来预测玩家在游戏中的最终排名百分比。代码通过读取数据集、数据处理、模型训练和模型评估等步骤。 二、数据集介绍 和平精英…...
DeepSeek系列(10):与其他AI工具协同
DeepSeek与绘图AI配合使用 在当今多元化的AI生态中,将不同专长的AI工具协同使用,能够实现远超单一工具的综合效果。DeepSeek作为强大的语言模型,与专业绘图AI的配合尤为默契,可以在创意构思与视觉呈现之间建立无缝桥梁。 创意-视觉协作流程 从文本到图像的完整路径 创意…...
Spark-Streaming核心编程:有状态转化操作与DStream输出
在Spark-Streaming的学习旅程中,有状态转化操作和DStream输出是两个关键知识点,今天就来深入聊聊它们。 先说说有状态转化操作,这里面 UpdateStateByKey 和 WindowOperations 很重要。 UpdateStateByKey 主要用于跨批次维护状态,就…...
Ldap高效数据同步- MirrorMode双主复制模式配置详解(上)
#作者:朱雷 文章目录 一、Syncrepl 复制和MirrorMode复制1.1. 什么是复制模式1.2. 什么是 syncrepl同步复制1.3. 什么是 MirrorMode 复制(双主模式)1.4. 双数据中心配置镜像模式架构 二、Ldap环境部署三、配置Mirror复制类型3.1. 配置节点1配…...
【刷题Day28】Python/JAVA - 02(浅)
Python 什么是 Python 的闭包? 闭包(Closure)是Python中的一种独特的函数机制。简而言之,闭包是指在一个内部函数中,引用了外部函数的变量,而这个外部函数已经执行完毕并返回了内部函数,然而内…...
纯净IP的优势:稳定性与安全性的结合
在跨境电商、数据采集、社交运营等对网络质量要求高的场景中,选择一个可靠的IP资源,是保护账号安全、提升业务效率的关键。纯净IP凭借其独特的稳定性与安全性,成为越来越多用户的选择。本文将带你深入了解纯净IP的价值,以及如何应…...
探索DeepWiki:GitHub源码阅读的变革性工具
DeepWiki 是什么 DeepWiki 是由 Cognition Labs 精心打造的一款创新工具,堪称 GitHub Repo 源代码的 “智慧解读器”,能将其转化为可对话式文档 ,为开发者提供实时交流、即时更新文档的功能。它基于 Devin 技术,为每一个 GitHub …...
基于WebRTC技术,EasyRTC音视频实时通话助力全网会议的智能化转型
一、方案背景 随着数字化转型,企业、教育、政府等对全网会议需求激增。传统视频会议部署复杂、成本高、兼容性差,无法满足远程协作的多样化需求。EasyRTC实时通信功能强大,能为全网会议提供高效、稳定、易用的解决方案,支持多终端…...
设计模式全解析:23种经典设计模式及其应用
创建型模式 1. 单例模式(Singleton Pattern) 核心思想:确保一个类只有一个实例,并提供一个全局访问点。适用场景:需要共享资源的场景,如配置管理、日志记录等。 public class Singleton {// 静态变量保存…...
Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式
知识点: 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、演示案例-WEB开发-JavaEE-第三方依赖&FastJson&XStream FastJson 一个阿里巴巴开发的J…...
小集合 VS 大集合:MySQL 去重计数性能优化
小集合 VS 大集合:MySQL 去重计数性能优化 前言一、场景与问题 🔎二、通俗执行流程对比三、MySQL 执行计划解析 📊四、性能瓶颈深度剖析 🔍五、终极优化方案 🏆六、总结 前言 📈 测试结果: 在…...
什么是模块化区块链?Polkadot 架构解析
原文:https://polkadot.com/blog/understanding-modular-blockchains/ 作者:Joey Prebys 编译:OneBlock 区块链的构建方式有很多种,而不同的架构选择会直接影响性能、可扩展性和开发者体验。随着行业的发展,单体区块…...
C++翻转数相乘 2024年信息素养大赛复赛 C++小学/初中组 算法创意实践挑战赛 真题详细解析
目录 C++翻转数相乘 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 六、 推荐资料 1、C++资料 2、Scratch资料 3、Python资料 C++翻转数相乘 2024年信息素养大赛 C++复赛真题 一、题目要求 1、编程实现 假设一个…...
Go 语言中的 `select` 语句详解
select 是 Go 语言中处理通道(Channel)操作的一个强大控制结构,它允许 goroutine 同时等待多个通道操作。下面我将全面详细地解释 select 语句的各个方面。 基本语法 select 语句的基本语法如下: select { case <-ch1:// 如果从 ch1 成功接收数据&…...
Nacos简介—4.Nacos架构和原理二
大纲 1.Nacos的定位和优势 2.Nacos的整体架构 3.Nacos的配置模型 4.Nacos内核设计之一致性协议 5.Nacos内核设计之自研Distro协议 6.Nacos内核设计之通信通道 7.Nacos内核设计之寻址机制 8.服务注册发现模块的注册中心的设计原理 9.服务注册发现模块的注册中心的服务数…...
Web服务器技术选型指南:主流方案、核心对比与策略选择
Web服务器技术选型指南:主流方案、核心对比与策略选择 一、主流Web服务器概览 在当今互联网架构中,Web服务器承担着处理HTTP请求、管理资源分配和保障服务稳定性的核心职责。根据应用场景和技术特性的不同,主流的Web服务器可分为以下五类&a…...
Git和Gitlab的部署和操作
一。GIT的基本操作 1.GIT的操作和查看内容 [rootmaster ~]# yum install git -y [rootmaster ~]# git config --list:查看所有配置 2.GIT仓库初始化 [rootmaster ~]# mkdir /gittest:创建目录 [rootmaster ~]# cd /gittest/:进入目录 [rootm…...
【Git】初始Git及入门命令行
目录 为什么学习 Git 这么重要? 1. 安装 Git 2. 配置 Git 3. 创建本地 Git 仓库 1. git初始化远程仓库: git init 2. 就是要新增两个必须要配置的选项: name 和 email 3. 查看当前本地仓库的配置情况: git config -l 4. 删…...
自然语言to SQL的评估
一、怎么进行一个自然语言to SQL评估? 1.DB——准备可用的数据表 2.准备问题集,自然语言|正确的预期SQL 3.大模型执行完成的SQL 4.Table.json——一个存储表格数据或者数据库表结构信息的 JSON 文件。当前是存储的表结构信息的,存储数据库…...
详解React Fiber架构中,reconcile阶段的具体工作流程
在 React Fiber 架构里,协调(Reconcile)阶段处于虚拟 DOM(VDOM)与实际 DOM 渲染之间,主要承担着把 VDOM 转化为 Fiber 节点树、开展 Diff 比较并标记节点变化的任务。下面详细阐述协调阶段的具体工作流程&a…...
迅雷精简绿色融合版【高速下载版】12.1.9.2870【11.2.2.1716】【20250426】
迅雷Thunder 11官方版会提示敏感需升级不能使用,本人制作的迅雷 12.1.9.2870【11.2.2.1716】精简绿色融合版是在11.2.2.1716版本的基础上制作的,实际版本号显示为12.1.9.2870,不是真正意义的迅雷12.1.9.2870精简绿色版,本实质上还…...
决策树相关案例
全流程 以下是一个更复杂、全流程的决策树和随机森林示例,不仅包括模型训练和预测,还涵盖了数据预处理、超参数调优以及模型评估的可视化。我们依旧使用鸢尾花数据集,并额外引入 GridSearchCV 进行超参数调优,使用 matplotlib 进…...
AI音频核爆!Kimi开源“六边形战士”Kimi-Audio,ChatGPT语音版?
音频处理领域的天花板被撕开了。 刚刚,kimi 发布全新通用音频基础模型 Kimi-Audio,这款由月之暗面(Moonshot AI)推出的开源模型,在 24 小时内收获 3.2 万星标,不仅以 1.28% 词错率刷新语音识别纪录…...
vscode vue 的插件点击组件不能跳转到文件问题解决
ctrl shift p 打开命令行,搜索 更改语言模式 选择第二项 选择 vue 现在可以了...
二叉树的前序、中序和后序遍历:详解与实现
1. 前序遍历(Pre-order Traversal) 1.1 定义 前序遍历的顺序是:先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。 1.2 访问顺序 对于任意节点: 访问根节点。 递归遍历左子树。 递归遍历右子…...
5、Rag基础:RAG 专题
RAG 简介 什么是检索增强生成? 检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强…...
FISCO BCOS 智能合约开发详解
一、FISCO BCOS 智能合约开发概览 FISCO BCOS 是一个国产开源联盟链平台,支持两种类型的智能合约:FISCO BCOS Documentation Solidity 合约:与以太坊兼容,使用 Solidity 语言编写,适用于灵活的业务逻辑开发。 预…...
Linux操作系统从入门到实战(四)Linux基础指令(下)
Linux操作系统从入门到实战(四)Linux基础指令(下) 前言一、date 指令二、cal 指令三、find 指令四、which 指令五、whereis 指令六、alias 指令七、grep 指令八、zip/unzip 指令九、tar 指令(重要)十、bc 指…...
使用 LLM助手进行 Python 数据可视化
在数据科学中,数据可视化是一项至关重要的任务,旨在揭示数据背后的模式和洞察,并向观众传达这些信息。然而,在编程语言(如 Python)中创建有洞察力的图表有时可能会耗时且复杂。本文介绍了一种借助 AI 助手&…...
docker安装jenkins自动化测试
#搭建gitlab docker pull gitlab/gitlab-ce docker run -d\--hostname localhost \-p 443:443 -p 80:80 -p 2222:22 \--name gitlab \-v /myproject/gitlab/config:/etc/gitlab \-v /myproject/gitlab/logs:/var/log/gitlab \-v /myproject/gitlab/data:/var/opt/gitlab \gitla…...
Python3:面向对象编程
这里写目录标题 🧩 面向对象编程:让代码化身为积木世界一、核心概念:类与对象二、四大基石:面向对象的核心特性1️⃣ 封装(Encapsulation):包装复杂性,提供简单接口2️⃣ 继承(Inheritance):站在…...
数据可视化 —— 饼图
一、饼图的所有常用使用场景 饼图是一种直观展示数据占比关系的图表,适用于以下常见场景: 1. 市场与商业分析 市场份额:展示不同品牌/产品在市场中的占有率。 收入构成:分析公司各业务线或产品的收入占比。 客户分布࿱…...
OpenLayers WebGL与3D渲染 (进阶一)
1. WebGL概述 WebGL是一种JavaScript API,它基于OpenGL ES 2.0/3.0标准,允许在不使用插件的情况下在兼容的Web浏览器中呈现高性能的交互式3D和2D图形。在地理信息系统(GIS)领域,WebGL为地图渲染和空间数据可视化提供了强大的性能支持。 1.1…...
ARP协议(地址解析协议)
ARP协议是用来把IP地址转换成MAC地址的。 因为在局域网里,真正通信靠的是MAC地址,但我们平时只知道目标的IP地址,所以需要一个办法把IP地址变成MAC地址 —— 这个过程就是靠ARP完成的。 举个超简单的例子: 你电脑要发数据给192.1…...
深度学习常见框架:TensorFlow 与 PyTorch 简介与对比
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、为什么需要深度学习框架? 2、框架的发展背…...
iOS 类与对象底层原理
iOS 类与对象底层原理 文章目录 iOS 类与对象底层原理探索对象本质objc_setProperty 源码cls与类的关联原理联合体isa的类型isa_t 原理探索initIsa方法通过setClass方法中的shiftcls来验证绑定的一个流程通过 isa & ISA_MSAK通过object_getClass通过位运算 类&类的结构…...
Babel、core-js、Loader之间的关系和作用全解析
在现代前端开发中,Babel、polyfill(如 core-js)和 Loader 是非常常见又容易混淆的几个概念。为了彻底搞明白它们的作用、关系和使用方法,下面一篇文章详细梳理。 一、Babel的作用 Babel 是一个 JavaScript 的编译器,主…...
总线位宽不变,有效数据位宽变化的缓存方案
总线位宽不变,有效数据位宽变化的缓存方案 譬如总线位宽为64bit,但是有时候只有高32bit有效,有时只有低32bit有效,有时64bit都有效。总线上收到的数据要先缓存到FIFO中,那么这个FIFO的宽度和深度如何设置呢࿱…...
若依脱敏功能升级:接口返回想脱就脱,想不脱就不脱(实现灵活可控制的数据脱敏)
若依原生框架中的脱敏功能不够灵活(默认超级管理员不脱敏,其他则脱敏)。 有时候,我们有些接口想要脱敏,但是有些接口又不想脱敏。(例如列表查询的时候脱敏。修改的时候,不想数据脱敏࿰…...
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口IP地址即可。两步即可实现此目的! 1)查询 App Service 的出口IP…...
如何解决无训练数据问题:一种更为智能化的解决方案
手动标注数据真的很费时间,而且买数据集又贵得要命,还不一定能完全符合你的需求。但这里有个令人兴奋的好消息,为啥不用 AI 来解决这个问题呢? 别再依赖传统方法了,你可以用像 LLM(大型语言模型)和图像生成器这样的 AI 工具,为你的特定目标创建合成训练数据。如今有那…...
AI 应用同质化:一场看不见的资源 “吞噬战”
大家好,我是涛涛,今天聊聊令人担心的事情。 一、同质化的“繁荣”背后 当ChatGPT在2022年掀起全球AI热潮时,中国互联网行业迅速进入“All in AI”模式。根据艾瑞咨询数据,2023年国内AI应用市场新增注册企业超2.3万家,…...
Java + Spring Boot + MyBatis获取以及持久化sql语句的方法
在Java的Spring Boot项目中结合MyBatis获取实际执行的SQL语句,可以通过以下几种方法实现: 方法一:配置MyBatis日志级别 通过调整日志级别,MyBatis会输出执行的SQL语句及参数,适用于快速调试。 修改application.prope…...
「浏览器即OS」:WebVM技术栈如何用Wasm字节码重构冯·诺依曼体系?
一、冯诺依曼架构的维度坍塌 1. 传统计算模型的能量耗散 浏览器执行效率瓶颈分析: 操作x86指令周期Wasm指令周期能效比提升矩阵乘法3894.2x内存访问1234x系统调用120012100x 二、WebVM的量子纠缠架构 1. 浏览器内核的重构 // 基于WASI的系统调用处理 #[no_mangl…...
Vue3项目目录结构规范建议
以下是一个推荐的 Vue 3 项目目录结构规范,适用于中大型项目并遵循最佳实践: 基础目录结构 bash src/ ├─ assets/ # 静态资源 │ ├─ images/ # 图片文件 │ ├─ fonts/ # 字体文件 │ └─ styles/ …...
【计算机视觉】CV实战项目- Four-Flower:基于TensorFlow的花朵分类实战指南
深度解析Four-Flower:基于TensorFlow的花朵分类实战指南 项目概述与技术背景技术栈组成 完整实战流程环境配置1. 基础环境安装2. 项目环境搭建3. 环境验证 数据准备模型架构解析训练过程优化1. 训练配置2. 关键参数建议3. 训练监控 常见问题与解决方案1. 内存不足错…...
4.27 JavaScript核心语法+事件监听
JavaScript负责网页的行为(交互行为) JS基本语法: 引用方式 变量&常量&数据类型: alert()标签输出弹出框,如以上代码会输出true。 函数: 自定义对象: 属性方法行为 JS中的全局变量是window。 js…...
于键值(KV)的表
基于键值(KV)的表 将行编码为键值(KVs) 索引查询:点查询和范围查询 在关系型数据库中,数据被建模为由行和列组成的二维表。用户通过SQL表达他们的意图,而数据库则神奇地提供结果。不那么神奇的…...