云服务器内容精选

  • Kafka实例信息准备 实例连接地址与端口 实例创建后,从Kafka实例控制台的基本信息页面中获取。Kafka实例为集群部署时,至少有3个连接地址,在客户端配置时,建议将连接地址都配上。 如果开启公网访问,还可以使用基本信息页面下方的公网连接地址访问Kafka实例。 图1 查看Kafka实例Broker连接地址与端口 Topic名称 从Kafka实例控制台的Topic管理页面中获取Topic名称。 图2 查看Topic名称 SASL信息 如果实例创建时开启SASL访问,则需要获得SASL_SSL用户名与密码、SSL证书、Kafka安全机制和SASL认证机制。 SASL用户名在Kafka实例控制台的“用户管理”页面中查看,如果忘记密码,可通过重置SASL_SSL密码重新获得。 图3 查看SASL用户名 SSL证书在Kafka实例控制台的基本信息页面中下载。 使用Java语言连接实例时,需要用JKS格式的证书。使用Python语言连接实例时,需要用CRT格式的证书。 SASL认证机制在Kafka实例控制台的基本信息页面中获取。如果SCRAM-SHA-512和PLAIN都开启了,根据实际情况选择其中任意一种配置连接。如果页面未显示“开启的SASL认证机制”,默认使用PLAIN机制。 图4 开启的SASL认证机制 Kafka安全机制在Kafka实例控制台的基本信息页面中获取。如果页面未显示“启用的安全协议”,默认使用SASL_SSL协议。
  • 细粒度授权 使用自定义细粒度策略,请使用管理员用户登录IAM控制台,按需选择DMS的细粒度权限进行授权操作。DMS for Kafka细粒度权限依赖说明请参见表3。 表3 DMS for Kafka细粒度权限依赖说明 权限名称 权限描述 权限依赖 dms:instance:list 查看实例列表 无 dms:instance:get 查看实例详情信息 无 dms:instance:create 创建实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:getBackgroundTask 查看实例后台任务详情 无 dms:instance:deleteBackgroundTask 删除实例后台任务 无 dms:instance:modifyStatus 重启实例 无 dms:instance:resetAuthInfo 重置实例访问密码 无 dms:instance:modifyAuthInfo 修改实例访问密码 无 dms:instance:modify 修改实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:scale 实例开启扩容功能 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update dms:instance:delete 删除实例 无 dms:instance:connector 实例开启转储功能 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update dms:instance:createConnectorSinkTask 创建转储任务 无 dms:instance:getConnectorSinkTask 查看转储任务详情 无 dms:instance:listConnectorSinkTask 查看转储任务列表 无 dms:instance:deleteConnectorSinkTask 删除转储任务 无
  • DMS for Kafka权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 DMS for Kafka部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问DMS for Kafka时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DMS for Kafka服务,管理员能够控制IAM用户仅能对实例进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,DMS for Kafka支持的API授权项请参见细粒度策略支持的授权项。 如表1所示,包括了DMS for Kafka的所有系统权限。 表1 DMS for Kafka系统权限 系统角色/策略名称 描述 类别 依赖关系 DMS FullAccess 分布式消息服务管理员权限,拥有该权限的用户可以操作所有分布式消息服务的功能。 系统策略 无 DMS UserAccess 分布式消息服务普通用户权限(没有实例创建、修改、删除、扩容、转储)。 系统策略 无 DMS ReadOnlyAccess 分布式消息服务的只读权限,拥有该权限的用户仅能查看分布式消息服务数据。 系统策略 无 DMS VPCAccess 分布式消息服务租户委托时需要授权的VPC操作权限。 系统策略 无 DMS KMSAccess 分布式消息服务租户委托时需要授权的KMS操作权限。 系统策略 无 DMS Administrator 分布式消息服务的管理员权限。 系统角色 依赖Tenant Guest和VPC Administrator。 系统策略有包含OBS授权项,由于缓存的存在,对用户、用户组以及企业项目授予OBS相关的系统策略后,大概需要等待5分钟系统策略才能生效。 表2列出了DMS for Kafka常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 常用操作与系统策略的关系 操作 DMS FullAccess DMS UserAccess DMS ReadOnlyAccess DMS VPCAccess DMS KMSAccess 创建实例 √ × × × × 修改实例 √ × × × × 删除实例 √ × × × × 变更实例规格 √ × × × × 开启转储 √ × × × × 创建转储任务 √ √ × × × 重启实例 √ √ × × × 查询实例信息 √ √ √ × ×
  • 与RabbitMQ、RocketMQ的差异 表1 功能差异 功能项 RocketMQ Kafka RabbitMQ 优先级队列 不支持 不支持 支持。建议优先级大小设置在0-10之间。 延迟队列 支持 不支持 不支持 死信队列 支持 不支持 支持 消息重试 支持 不支持 不支持 消费模式 支持客户端主动拉取和服务端推送两种方式 客户端主动拉取 支持客户端主动拉取以及服务端推送两种模式 广播消费 支持 支持 支持 消息回溯 支持 支持。Kafka支持按照offset和timestamp两种维度进行消息回溯。 不支持。RabbitMQ中消息一旦被确认消费就会被标记删除。 消息堆积 支持 支持。考虑吞吐因素,Kafka的堆积效率比RabbitMQ总体上要高。 支持 持久化 支持 支持 支持 消息追踪 支持 不支持 不支持 消息过滤 支持 支持 不支持,但可以自行封装。 多租户 支持 不支持 支持 多协议支持 兼容RocketMQ协议 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现,同时支持MQTT、STOMP等协议。 跨语言支持 支持多语言的客户端 采用Scala和Java编写,支持多种语言的客户端。 采用Erlang编写,支持多种语言的客户端。 流量控制 待规划 支持client和user级别,通过主动设置可将流控作用于生产者或消费者。 RabbitMQ的流控基于Credit-Based算法,是内部被动触发的保护机制,作用于生产者层面。 消息顺序性 单队列(queue)内有序 支持单分区(partition)级别的顺序性。 不支持。需要单线程发送、单线程消费并且不采用延迟队列、优先级队列等一些高级功能整体配合,才能实现消息有序。 安全机制 支持SSL认证 支持SSL、SASL身份认证和读写权限控制。 支持SSL认证 事务性消息 支持 支持 支持
  • Kafka实例Topic数量计算 Kafka实例对Topic分区数之和设置了上限,当达到上限之后,用户无法继续创建Topic。 所以,Topic数量和实例分区数上限、每个Topic的分区数有关,其中,每个Topic分区数可在创建Topic时设置,如图1,实例分区数上限参考表1、表2。 图1 Topic的分区数 kafka.2u4g.cluster * 3 broker实例的分区数上限为750。 如果该实例下每个Topic的分区个数都为3,则Topic个数为750/3=250个。 如果该实例下每个Topic的分区个数都为1,则Topic个数为750/1=750个。
  • 新老规格对应关系 2种Kafka实例规格对比,新老规格的对应关系如表3所示。 表3 Kafka实例新老规格对应关系 老规格 对应的新规格 规格类型 实例网络总流量 规格类型 实例网络总流量 100MB/s 100MB/s kafka.2u4g.cluster.small * 3 120MB/s 300MB/s 300MB/s kafka.2u4g.cluster * 3 300MB/s 600MB/s 600MB/s kafka.4u8g.cluster * 3 600MB/s 1200MB/s 1200MB/s kafka.4u8g.cluster * 6 1250MB/s 新老规格区别如下: 老规格使用的非独享资源,在高负载情况下容易出现资源抢占情况。新规格(kafka.2u4g.cluster.small除外)使用的独占资源,性能更优,性价比更高。 新规格支持最新的功能,例如:分区平衡、动态开启SSL、重平衡日志可观测等。 新规格支持规格灵活变更,例如:Broker规格的扩缩容。 新规格的磁盘大小选择更加灵活,磁盘大小不与实例规格进行绑定,仅与Broker数量相关。 新规格选择粒度更细,根据Broker规格和数量进行灵活的规格选择,并且最大规格可以达到10000MB/s以上。 新规格除了原有的磁盘类型,还支持通用型SSD、极速型SSD等多种磁盘类型,客户选择更加灵活。
  • Kafka实例规格参考 kafka.2u4g.cluster.small,三个代理 Kafka客户端连接数在6000以内,消费组个数在45个以内,业务TPS为60000以内时推荐选用。 kafka.2u4g.cluster,三个代理 Kafka客户端连接数在6000以内,消费组个数在60个以内,业务TPS为90000以内时推荐选用。 kafka.4u8g.cluster,三个代理 Kafka客户端连接数在12000以内,消费组个数在300个以内,业务TPS为300000以内时推荐选用。 kafka.8u16g.cluster,三个代理 Kafka客户端连接数在12000以内,消费组个数在450个以内,业务TPS为450000以内时推荐选用。 kafka.12u24g.cluster,三个代理 Kafka客户端连接数在12000以内,消费组个数在600个以内,业务TPS为600000以内时推荐选用。 kafka.16u32g.cluster,三个代理 Kafka客户端连接数在12000以内,消费组个数在600个以内,业务TPS为750000以内时推荐选用。
  • 实例规格和网络带宽说明 Kafka实例的网络带宽主要由以下两个部分组成: 实例Broker对应的网络带宽 实例Broker的磁盘所对应的带宽值(不同类型的磁盘对应的带宽值不同,具体参考:如何选择磁盘类型) 注意事项: Kafka默认情况下测试均为尾读场景(即仅消费最新生产的数据),而不是冷读场景(即从头开始消费历史数据的场景)。 老规格实例(即实例规格为100MB/s等)的带宽指的是实例所有Broker对应的网络带宽总和 新规格实例(即实例规格为kafka.2u4g.cluster等)的流量规格测算模型说明如下: 测试模型读写比例为1:1 默认Topic的副本数为3 实例网络总流量 = 单个代理流量规格 * 代理数量 实例整体流量 = 业务流量 + 代理节点间数据复制流量 参考上述测算模型说明,假如当前规格为kafka.2u4g.cluster,单个代理流量规格为100MB/s,代理数量为3,实例网络总流量、最大读流量和最大写流量分别为多少? 实例网络总流量 = 单个代理流量规格 * 代理数量 = 100MB/s * 3 = 300MB/s 最大读流量 = 实例网络总流量 / 默认副本数 / 2 = 300MB/s / 3 / 2 = 50MB/s 最大写流量 = 实例网络总流量 / 默认副本数 / 2 = 300MB/s / 3 / 2 = 50MB/s
  • Kafka实例的存储空间估算参考 Kafka实例支持多副本存储,存储空间用于存储消息(包括副本中的消息)、日志和元数据。您在创建Kafka实例,选择初始存储空间时,建议根据业务消息体积预估、副本数量以及预留磁盘大小选择合适的存储空间。每个Kafka代理会预留33GB的磁盘空间,用于存储日志和元数据。 例如:业务消息体积预估100GB,副本数为2,Kafka实例的代理数为3,则磁盘容量最少应为100GB*2+33GB*3=299GB。 Kafka实例支持对存储进行扩容,根据业务增长,随时扩容,节约成本。
  • Kafka实例规格 Kafka实例兼容开源Kafka 1.1.0、2.7和3.x,Kafka实例分为集群版和单机版,集群版实例由三个及以上代理组成,单机版实例由一个代理组成。 实例规格以实例提供的ECS规格分类,具体如下: 集群版实例 kafka.2u4g.cluster.small kafka.2u4g.cluster kafka.4u8g.cluster kafka.8u16g.cluster kafka.12u24g.cluster kafka.16u32g.cluster 单机版实例 kafka.2u4g.single.small kafka.2u4g.single TPS(Transaction per second),在Kafka场景中,指每秒能写入到Kafka实例的最大消息数量。下表中TPS性能,是指以1KB大小的消息为例的每秒处理消息条数。测试场景为使用内网连接未开启SASL、磁盘类型为超高I/O的实例。如果您想要了解更多关于TPS的性能,请参考不同实例规格的TPS测试。 集群版实例支持Kafka 1.1.0、2.7和3.x版本,单机版实例支持Kafka 2.7版本。 表1 Kafka实例规格(集群版实例) 实例规格 代理个数范围 单个代理TPS 单个代理分区上限 单个代理建议消费组数 单个代理客户端总连接数上限 存储空间范围 单个代理流量规格(MB/s) kafka.2u4g.cluster.small 3~30 20000 100 15 2000 300GB~300000GB 40 kafka.2u4g.cluster 3~30 30000 250 20 2000 300GB~300000GB 100 kafka.4u8g.cluster 3~30 100000 500 100 4000 300GB~600000GB 200 kafka.8u16g.cluster 3~50 150000 1000 150 4000 300GB~1500000GB 375 kafka.12u24g.cluster 3~50 200000 1500 200 4000 300GB~1500000GB 625 kafka.16u32g.cluster 3~50 250000 2000 200 4000 300GB~1500000GB 750 表2 Kafka实例规格(单机版实例) 实例规格 代理个数 单个代理TPS 单个代理分区上限 单个代理建议消费组数 单个代理客户端总连接数上限 存储空间范围 单个代理流量规格(MB/s) kafka.2u4g.single.small 1 20000 100 15 2000 100GB~10000GB 40 kafka.2u4g.single 1 30000 250 20 2000 100GB~10000GB 100
  • 产品优势 分布式消息服务Kafka版完全兼容开源社区版本,旨在为用户提供便捷高效的消息队列。业务无需改动即可快速迁移上云,为您节省维护和使用成本。 一键式部署,免去集群搭建烦恼 您只需要在实例管理界面选好规格配置,提交订单。后台将自动创建部署完成一整套Kafka实例。 兼容开源,业务零改动迁移上云 兼容社区版Kafka的API,具备原生Kafka的所有消息处理特性。 业务系统基于开源的Kafka进行开发,只需加入少量认证安全配置,即可使用分布式消息服务Kafka版,做到无缝迁移。 Kafka实例兼容开源社区Kafka 1.1.0、2.7、3.x版本。在客户端使用上,推荐使用和服务端版本一致的版本。 安全保证 独有的安全加固体系,提供业务操作云端审计,消息存储加密等有效安全措施。 在网络通信方面,除了提供SASL(Simple Authentication and Security Layer)认证,还借助虚拟私有云(VPC)和安全组等加强网络访问控制。 数据高可靠 Kafka实例支持消息持久化,多副本存储机制。副本间消息同步、异步复制,数据同步或异步落盘多种方式供您自由选择。 集群架构与跨AZ部署,服务高可用 Kafka后台为多集群部署,支持故障自动迁移和容错,保证业务的可靠运行。 Kafka实例支持跨AZ部署,代理部署在不同的AZ,进一步保障服务高可用。不同AZ之间基于Kafka ISR(in-sync replica)进行数据同步,Topic需要选择数据多副本并且将不同副本分布到不同的ISR上,在ISR正常同步状态下,故障RPO(Recovery Point Objective)趋近于0。 无忧运维 华为云提供一整套完整的监控告警等运维服务,故障自动发现和告警,避免7*24小时人工值守。Kafka实例自动上报相关监控指标,如分区数、主题数、堆积消息数等,并支持配置监控数据发送规则,您可以在第一时间通过短信、邮件等获得业务消息队列的运行使用和负载状态。 海量消息堆积与弹性扩容 内建的分布式集群技术,使得服务具有高度扩展性。分区数可配置多达200个,存储空间、代理数量和代理规格支持弹性扩展,保证在高并发、高性能和大规模场景下的访问能力,轻松实现百亿级消息的堆积和访问能力。 多规格灵活选择 Kafka实例的带宽与存储资源可灵活配置,并且自定义Topic的分区数、副本数。
  • 与其他云服务的关系 云审计(Cloud Trace Service) 云审计为您提供云服务资源的操作记录,记录内容包括您从管理控制台或者开放API发起的云服务资源操作请求以及每次请求的结果,供您查询、审计和回溯使用。 当前CTS记录的操作,请参考云审计日志。 虚拟私有云(Virtual Private Cloud) Kafka实例运行于虚拟私有云,需要使用虚拟私有云创建的IP和带宽。通过虚拟私有云安全组的功能可以增强访问Kafka实例的安全性。 弹性云服务器(Elastic Cloud Server) 弹性云服务器是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。Kafka实例运行在弹性云服务器上,一个代理对应一台弹性云服务器。 云硬盘(Elastic Volume Service) 云硬盘为云服务器提供块存储服务,Kafka的所有数据(如消息、元数据和日志等)都保存在云硬盘中。 统一身份认证 (Identity and Access Management) 统一身份认证提供了权限管理功能,可以帮助您安全地控制云服务和资源的访问权限。您可以为不同的用户设置不同的访问Kafka实例的权限,以达到不同用户之前的权限隔离。 云监控(Cloud Eye) 云监控是一个开放性的监控平台,提供资源的实时监控、告警、通知等服务。 Kafka实例向CloudEye上报监控数据的更新周期为1分钟。 弹性公网IP(Elastic IP) 弹性公网IP提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。Kafka实例绑定弹性公网IP后,可以通过公网访问Kafka实例。 标签管理服务(Tag Management Service) 标签管理服务是一种快速便捷将标签集中管理的可视化服务,提供跨区域、跨服务的集中标签管理和资源分类功能。 为Kafka实例添加标签,可以方便用户识别和管理拥有的实例资源。
  • 与开源Kafka的差异 分布式消息服务Kafka版在兼容开源Kafka基础上,对版本特性做了一定程度的定制和增强,所以,除了拥有开源Kafka的优点,分布式消息服务Kafka版提供了更多可靠、实用的特性。 表1 分布式消息服务Kafka版与开源Kafka的差异说明 对比类 对比项 分布式消息服务Kafka版 开源Kafka 简单易用 立等可用 即开即用,可视化操作,自助创建,自动化部署,分钟级创建实例,立即使用,实时查看和管理消息实例。 自行准备服务器资源,安装配置必要的软件并进行配置,等待时间长。 易出错。 简单API 提供简单的实例管理RESTful API,使用门槛低。 无 成本低廉 按需使用 提供多种规格,按需使用,支持一键式在线进行实例代理个数、磁盘存储空间和代理规格扩容。 搭建消息服务本身需要费用,而且即使没有使用,所占用资源本身依旧要收费。 完全托管 租户不需要单独采购硬件资源,直接使用就绪的服务,无需额外成本。 需要购买硬件资源,自行搭建整个消息服务,使用和维护成本高。 实践验证 成熟度高 经受电商网站大规模访问考验,并且已经在华为云许多产品中使用,广泛部署运行在分布于世界各地的电信级客户云业务系统里。满足严苛的电信级故障模式库标准。紧随社区主流版本,修复开源bug,持续上线新功能,进行版本升级。 使用开源软件成熟度低,无法保证关键业务,商业案例少;自研周期长,并需要长时间进行验证。 能力强大 100%兼容开源,支持一键扩容,深度优化开源代码提升性能和可靠性,支持消息查询、消息转储等高级特性。 功能不完善,需额外投入进行开发。 稳定可靠 稳定高可用 支持跨AZ部署,提升可靠性。故障自动发现并上报告警,保证用户关键业务的可靠运行。 需要自己开发或基于开源实现,开发成本高昂,无法保证业务可靠运行。 无忧运维 后台运维对租户完全透明,整个服务运行具有完备的监控和告警功能。有异常可以及时通知相关人员。避免7*24小时人工值守。 需要自行开发完善运维功能,尤其是告警及通知功能,否则只能人工值守。 安全保证 VPC隔离,支持SSL通道加密。 需要自行进行安全加固。
  • 实例功能区别 单机版实例与集群实例的功能主要区别如表2所示。 表2 功能区别 功能名称 单机版实例 集群实例 变更实例规格 × √ 修改实例的接入方式 只支持开启/关闭公网访问明文接入 支持修改如下接入方式: 开启内网访问密文接入 开启/关闭内网访问明文接入 开启/关闭公网访问明文接入 开启/关闭公网访问密文接入 重置Kafka密码 × √ 查看磁盘使用量 × √ 分区平衡 × √ 设置Topic权限 × √ 用户管理 × √ 查看重平衡日志 × √ Smart Connect × √ 流控管理 × √ 修改配置参数 × √
  • 准备Kafka配置信息 为了方便,下文分生产与消费两个配置文件介绍。其中涉及SASL认证配置,如果Kafka实例没有开启SASL,使用的是不加密连接,请注释相关代码;如果Kafka实例开启了SASL,则必须使用加密方式连接,请设置相关参数。 生产消息配置文件(对应生产消息代码中的dms.sdk.producer.properties文件) 以下粗体部分为不同Kafka实例特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #Kafka实例的broker信息,ip:port为实例的连接地址和端口,参考“收集连接信息”章节获取。举例:bootstrap.servers=100.xxx.xxx.87:909x,100.xxx.xxx.69:909x,100.xxx.xxx.155:909x bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #发送确认参数 acks=all #键的序列化方式 key.serializer=org.apache.kafka.common.serialization.StringSerializer #值的序列化方式 value.serializer=org.apache.kafka.common.serialization.StringSerializer #producer可以用来缓存数据的内存大小 buffer.memory=33554432 #重试次数 retries=0 ####################### #如果不使用SASL认证,以下参数请注释掉。 ####################### #设置SASL认证机制、账号和密码。 #sasl.mechanism为SASL认证机制,username和password为SASL_SSL的用户名和密码,参考“收集连接信息”章节获取。 #SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。security.protocol为安全协议。 #安全协议为“SASL_SSL”时,配置信息如下。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.jks #ssl truststore.password为服务器证书密码,配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #安全协议为“SASL_PLAINTEXT”时,配置信息如下。 security.protocol=SASL_PLAINTEXT 消费消息配置文件(对应消费消息代码中的dms.sdk.consumer.properties文件) 以下粗体部分为不同Kafka实例特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #Kafka实例的broker信息,ip:port为实例的连接地址和端口,参考“收集连接信息”章节获取。举例:bootstrap.servers=100.xxx.xxx.87:909x,100.xxx.xxx.69:909x,100.xxx.xxx.155:909x bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #用来唯一标识consumer进程所在组的字符串,如果设置同样的group id,表示这些processes都是属于同一个consumer group group.id=1 #键的序列化方式 key.deserializer=org.apache.kafka.common.serialization.StringDeserializer #值的序列化方式 value.deserializer=org.apache.kafka.common.serialization.StringDeserializer #偏移量的方式 auto.offset.reset=earliest ####################### #如果不使用SASL认证,以下参数请注释掉。 ####################### #设置SASL认证机制、账号和密码。 #sasl.mechanism为SASL认证机制,username和password为SASL_SSL的用户名和密码,参考“收集连接信息”章节获取。 #SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。security.protocol为安全协议。 #安全协议为“SASL_SSL”时,配置信息如下。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.jks #ssl truststore.password为服务器证书密码,配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #安全协议为“SASL_PLAINTEXT”时,配置信息如下。 security.protocol=SASL_PLAINTEXT