云服务器内容精选

  • 约束与限制 如果“allow.everyone.if.no.acl.found”设置为“true”,且Topic未授权任何用户,此时所有的用户都可以订阅/发布此Topic。如果Topic已授权某一个或多个用户,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果“allow.everyone.if.no.acl.found”设置为“false”,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果Topic同时设置了“默认用户”权限和单个用户权限,取两者的并集。
  • 步骤五:验证接口连通性 参考使用客户端连接Kafka(关闭SASL)或者使用客户端连接Kafka(开启SASL),测试是否可以生产和消费消息。 测试接口连通性时,注意以下几点: 连接Kafka实例的地址为“advertised.listeners IP:9011”,以图8为例,连接Kafka实例的地址为“192.168.0.71:9011,192.168.0.11:9011,192.168.0.21:9011”。 在Kafka实例安全组的入方向规则中放通9011端口,以及198.19.128.0/17网段的地址。 如果Kafka实例的子网配置了网络ACL功能,需要在网络ACL的入方向规则中放通198.19.128.0/17网段的地址,以及 VPC终端节点 涉及的子网。 198.19.128.0/17是为VPC终端节点分配的网段,使用VPC终端节点需要放通此网段。
  • 准备实例依赖资源 创建Kafka实例前,请提前准备好如表1所示资源。 表1 Kafka实例依赖资源 资源名称 要求 创建指导 VPC和子网 Kafka实例可以使用当前账号下已创建的VPC和子网,也可以使用新创建的VPC和子网,还可以使用共享VPC和子网,请根据实际需要进行配置。 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。有关VPC子网共享的更多信息,请参见共享VPC。 在创建VPC和子网时应注意:创建的VPC与Kafka实例在相同的区域。 在创建VPC和子网时应注意: 创建的VPC与Kafka实例在相同的区域。 子网开启IPv6后,Kafka实例支持IPv6功能。Kafka实例开启IPv6后,客户端可以使用IPv6地址连接实例。 创建VPC和子网的操作指导请参考创建虚拟私有云和子网,若需要在已有VPC上创建和使用新的子网,请参考为虚拟私有云创建新的子网。 安全组 不同的Kafka实例可以重复使用相同的安全组,也可以使用不同的安全组,请根据实际需要进行配置。 连接Kafka实例前,请根据连接方式配置对应的安全组,具体请参考表2。 创建安全组的操作指导请参考创建安全组,为安全组添加规则的操作指导请参考添加安全组规则。 弹性IP地址 如果客户端使用公网连接Kafka实例,请提前创建弹性IP地址。 在创建弹性IP地址时,应注意如下要求: 创建的弹性IP地址与Kafka实例在相同的区域。 弹性IP地址的数量必须与Kafka实例的代理个数相同。 Kafka控制台无法识别开启IPv6转换功能的弹性IP地址。 创建弹性IP地址的操作指导请参考申请弹性公网IP。
  • 功能介绍 华为 云消息 &短信服务为您提供流量阈值与区域管理等功能,以降低因业务被盗刷短信等引起的损失。 设置流量阈值限制: 设置发送预警值:当短信发送总量超过设定的预警数值,系统会向联系人发出告警短信通知。 设置发送限额值:当短信发送总量超过设定的限额数值,系统会再次向联系人发出告警短信通知并自动帮您暂停发送短信。 设置发送区域限制:选择短信需要送达的国家或地区,禁止发送短信至未选中的国家或地区。 设置号码管控规则:支持允许/禁止向该号码发送短信,或禁止向该号段发送短信,系统将根据设置的国家/地区号段或号码规则策略发送短信。
  • 注意事项 创建短信签名前,您需要先申请资质。 签名需审核通过后才能使用。 国内短信必须申请短信签名,以获取短信发送方号码,在调用短信业务API时使用。 每个应用下默认最多支持创建200个签名,如需扩大配额,请提交工单或联系客户经理申请。签名规则请查看国内短信签名规范。 只有审核不通过的短信签名才允许重新修改。如果确实需要修改,请添加新的签名并提交申请。 同一账号下,不支持重复添加签名名称相同且签名类型一致的签名。 华为云账户余额不足时,无法添加签名,请参考华为云账户充值完成充值。如果充值完成仍提示无法添加签名,请退出并重新登录重试。控制台支持的浏览器版本请参考浏览器兼容性。
  • 通过访问控制,保护数据安全性 建议对不同角色的 IAM 用户仅设置最小权限,避免权限过大导致数据泄露或被误操作。 为了更好的进行权限隔离和管理,建议您配置独立的IAM管理员,授予IAM管理员IAM策略的管理权限。IAM管理员可以根据您业务的实际诉求创建不同的用户组,用户组对应不同的数据访问场景,通过将用户添加到用户组并将IAM策略绑定到对应用户组,IAM管理员可以为不同职能部门的员工按照最小权限原则授予不同的数据访问权限,详情请参见权限管理。 建议配置安全组访问控制,保护您的数据不被异常读取和操作。 参照表1配置安全组的入方向规则限制,控制连接实例的网络范围,避免DMS for RocketMQ暴露给不可信的第三方。 表1 安全组规则 实例版本 方向 协议 端口 源地址 说明 4.8.0 5.x 入方向 TCP 8100 访问DMS for RocketMQ实例的客户端地址,应避免设置为0.0.0.0/0。 使用TCP协议,通过内网访问实例的端口。 4.8.0 5.x 入方向 TCP 8200 使用TCP协议,通过公网访问实例的端口。 4.8.0 5.x 入方向 TCP 10100-10199 使用TCP协议,访问业务节点的端口。 5.x 入方向 TCP 8080 使用gRPC协议,通过内网访问实例的端口。 5.x 入方向 TCP 8081 使用gRPC协议,通过公网访问实例的端口。 建议将访问DMS for RocketMQ实例方式设置为密码访问(即开启ACL访问控制),防止未经认证的客户端误操作实例。 您可以选择如下任意一种方法开启ACL访问控制。 在“购买实例”页面开启ACL访问控制,具体可参考购买RocketMQ实例。 购买实例后,在实例的“基本信息”页面中开启ACL访问控制,具体可参考查看和修改RocketMQ实例基本信息。 开启敏感操作多因子认证保护您的数据不被误删。 DMS for RocketMQ支持敏感操作保护,开启后执行删除实例等敏感操作时,系统会进行身份验证,进一步对数据的高危操作进行控制,保证DMS for RocketMQ数据的安全性。详情请参见敏感操作。
  • 审计是否存在异常数据访问 开启 云审计 服务,记录DMS for RocketMQ的所有访问操作,便于后期审查。 云审计服务(Cloud Trace Service, CTS ),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 您开通云审计服务并创建和配置追踪器后,CTS可记录DMS for RocketMQ的管理事件和数据事件用于审计。相关文档请参见查看RocketMQ审计日志。 使用 云监控服务 对安全事件进行实时监控和告警。 为使您更好地掌握DMS for RocketMQ实例状态,华为云提供了 云监控 服务(Cloud Eye)。您可使用该服务监控自己的DMS for RocketMQ实例,执行自动实时监控、告警和通知操作,帮助您实时掌握DMS for RocketMQ实例中所产生的请求、流量等信息。 云监控服务不需要开通,会在用户创建DMS for RocketMQ实例后自动启动。相关文档请参见RocketMQ支持的监控指标、配置RocketMQ监控告警。
  • 实施方法 从上面的消费重复场景可以看到,不同Message ID的消息可能有相同的消息内容,因此Message ID无法作为消息的唯一标识符。RocketMQ可以为消息设置Key,把业务的唯一标识作为消息的唯一标识,从而实现消息的幂等。为消息设置Key的示例代码如下: Message message = new Message(); message.setKey("Order_id"); // 设置消息的Key,可以使用业务的唯一标识作为Key,例如订单号等。 SentResult sendResult = mqProducer.send(message); 生产者发送消息时,消息已经设置了唯一的Key,在消费者消费消息时,可以根据消息的Key进行幂等处理。消费者通过getKeys()能够读取到消息的唯一标识(如订单号等),业务逻辑围绕该唯一标识进行幂等处理即可。
  • 方案概述 在RocketMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。消息幂等保证了无论消息被重复投递多少次,最终的处理结果都是一致的,避免了因消息重复而对业务产生影响。 例如在支付场景下,用户购买商品后进行支付,由于网络不稳定导致用户收到多次扣款请求,导致重复扣款。但实际上扣款业务只应进行一次,商家也只应产生一条订单流水。这时候使用消息幂等就可以避免这个问题。 在实际应用中,导致消息重复的原因有网络闪断、客户端故障等,且可能发生在消息生产阶段,也可能发生在消息消费阶段。因此,可以将消息重复的场景分为以下两类: 生产者发送消息时发生消息重复: 生产者发送消息时,消息成功发送至服务端。如果此时发生网络闪断,导致生产者未收到服务端的响应,此时生产者会认为消息发送失败,因此尝试重新发送消息至服务端。当消息重新发送成功后,在服务端中就会存在两条内容相同的消息,最终消费者会消费到两条内容一样的重复消息。 消费者消费消息时发生消息重复: 消费者消费消息时,服务端将消息投递至消费者并完成业务处理。如果此时发生网络闪断,导致服务端未收到消费者的响应,此时服务端会认为消息投递失败。为了保证消息至少被消费一次,服务端会尝试投递之前已被处理过的消息,最终消费者会消费到两条内容一样的重复消息。
  • 步骤二:创建RocketMQ实例 使用RocketMQ进行消息生产和消费时,必须先创建RocketMQ实例。实例中的虚拟机资源会存储Topic信息。 进入购买RocketMQ实例页面。 设置实例信息,配置详情请参考表2。 表2 设置实例信息 参数 参数说明 计费模式 选择实例的计费模式。此处选择“按需计费”,即按照实例的实际使用时长计费,秒级计费,按小时结算。 区域 选择靠近您客户的区域,可以降低网络时延、提高访问速度。此处选择“华北-北京四”。 项目 选择区域对应的项目。此处选择“华北-北京四”。 可用区 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。此处选择“可用区1”。 实例名称 填写实例名称,此处配置为“rocketmq-test”。 企业项目 企业项目是对企业不同项目间资源的分组和管理,属于逻辑隔离。此处选择“default”。该参数针对企业用户使用。 规格选择模式 选择实例的规格设置模式,此处选择“默认”,即自定义RocketMQ实例的版本号、实例类型、部署架构、实例规格和存储空间。 版本 选择实例的版本。此处选择“4.8.0”。 RocketMQ实例创建后,版本号不支持修改。 部署架构 选择实例的部署架构。此处选择“集群”。 代理规格 选择实例相应的代理规格。此处选择“rocketmq.4u8g.cluster”。 代理数量 选择实例相应的代理数量。此处选择“1”。 代理存储空间 选择存储RocketMQ数据的磁盘类型和单个代理存储空间。选择“超高I/O 300GB”。实例总存储空间 = 单个代理的存储空间 * 代理数量 虚拟私有云 选择实例的VPC和子网。此处选择步骤一:准备工作中已创建的VPC和子网。 安全组 选择实例的安全组。此处选择步骤一:准备工作中已创建的安全组。 SSL 开启SSL,表示服务端与客户端之间通过密文传输,安全性较高,性能较低。此处选择开启SSL。 ACL访问控制 开启ACL访问控制可以对生产消息和消费消息进行权限管理。此处选择关闭ACL访问控制。 更多配置 公网访问 开启公网访问需要绑定弹性IP地址。此处选择关闭公网访问。 标签 标签是RocketMQ实例的标识。此处不设置标签。 描述 描述是对实例的补充说明。此处不填写描述信息。 图2 设置实例信息 填写完上述信息后,单击“立即购买”,进入规格确认页面。 确认实例信息无误后,勾选“协议”,并单击“提交”请求。 在实例列表页面,查看RocketMQ实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。 实例创建成功后,单击实例名称,进入实例基本信息页面。 记录实例的连接地址,便于生产和消费消息时使用。 图3 记录实例连接地址
  • 相关信息 如果您想了解关于RocketMQ的相关概念,请参考RocketMQ基本概念。 RocketMQ实例创建时,如果消费者客户端与生产者客户端无需通过密文传输,那么您可以关闭SSL。此时连接RocketMQ实例生产和消费消息的操作请参见使用客户端连接RocketMQ(关闭SSL)。 如果您需要创建多个用户并为其赋予不同的Topic和消费组权限,以达到用户之间的权限隔离,那么您需要先开启ACL访问控制并配置ACL用户,具体操作请参考开启RocketMQ ACL访问和配置RocketMQ ACL用户。 如果您需要通过公网访问RocketMQ实例,请参见配置RocketMQ实例的公网访问。
  • 步骤四:连接RocketMQ实例生产和消费消息 在E CS 环境中进入“rocketmq-tutorial/bin”目录。 cd rocketmq-tutorial/bin 运行生产普通消息命令。 命令示例如下: JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 -p "hello rocketmq" 10.xxx.xxx.89:8100;10.xxx.xxx.144:8100:表示RocketMQ实例的“连接地址”,即7中记录的连接地址。 Topic01:表示RocketMQ实例下创建的Topic名称,即4中创建的Topic名称。 hello rocketmq:表示生产消息的内容。 运行消费普通消息命令。 命令示例如下: JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 如上图中BODY显示的内容即为消费消息的内容。 如需停止消费使用Ctrl+C命令退出。
  • 步骤三:创建Topic Topic,即消息主题,消息发送与接收的基本单元。创建RocketMQ实例成功后,需要手动创建Topic,然后才能进行生产消息和消费消息。 单击RocketMQ实例的名称,进入实例基本信息页面。 在左侧导航栏,单击“Topic管理”,进入“Topic管理”页面。 单击“创建Topic”,弹出“创建Topic”页面。 参考表3,填写Topic名称和配置信息。 表3 Topic参数说明 参数 说明 Topic名称 填写Topic的名称。此处配置为“Topic01”。 权限 选择Topic的权限。此处选择“发布+订阅”,表示生产者可以发布消息到该Topic,消费者可以消费该Topic中的消息。 关联代理 选择Topic关联的代理。此处选择“代理”为“broker-0”,“队列个数”为“3”。 图4 创建Topic 配置完成后,单击“确定”,完成Topic的创建。
  • 操作流程 图1 RocketMQ使用流程 准备工作。 在创建RocketMQ实例前,您需要完成注册华为云并实名认证、为账户充值、为用户添加操作权限、创建VPC和子网、创建安全组、创建弹性云服务器并配置环境的准备工作。 创建RocketMQ实例。 在创建实例时,您需要开启SSL、关闭ACL,并配置已创建的VPC和子网、安全组。 创建Topic。 在实例创建成功后,您需要创建Topic,用于发送与接收消息。 连接RocketMQ实例生产和消费消息。 使用客户端连接实例,并通过命令行生产消费消息。
  • 导入预置数据 其他数据表支持批量导入预置数据。 登录圆桌。 选择设置入口。 个人设置入口 在圆桌右上角单击个人头像,选择“个人信息”,选择“应用管理”页签。 团队设置入口 在左侧栏选择团队,单击左上角团队图标,选择“应用管理”页签。 在“已选应用”页签,选择需预置数据的业务流模板,单击“操作”列。 进入“预置数据”页面, 在左侧栏选择数据表,单击“导入”。 其他数据表是模板构建者自定义创建。具体创建操作可参见创建数据表。 在弹出的界面中,单击“下载模板”,下载模板到本地。 填写完模板文件后,上传文件。 单击“确定”,即可导入对应数据。