华为云用户手册

  • 实例状态说明 表1 实例状态说明 状态 说明 Creating 申请实例后,在实例状态进入运行中之前的状态。 Running 实例正常运行状态。在这个状态的实例可以运行您的业务。 Faulty 实例处于故障的状态。 Restarting 实例正在进行重启操作。 Starting 实例从已冻结到运行中的中间状态。 Changing 实例正在进行规格变更操作。 Change failed 实例处于规格变更操作失败的状态。 Frozen 实例处于已冻结状态,用户可以在“我的订单”中续费开启冻结的实例。 Freezing 实例从运行中到已冻结的中间状态。 Upgrading 实例正在进行升级操作。 Rolling back 实例正在进行回滚操作。 父主题: 附录
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 tags Array of TagEntity objects 标签列表 表3 TagEntity 参数 参数类型 描述 key String 键。 key不能为空,长度1~128个字符(中文也可以输入128个字符)。 可用UTF-8格式表示的字母、数字和空格,以及以下字符: _ . : = + - @ key两头不能有空格字符。 value String 值。 长度0~255个字符(中文也可以输入255个字符)。 可用UTF-8格式表示的字母、数字和空格,以及以下字符: _ . : / = + - @。 value可以为空字符串。
  • 客户端是否可以连接同个RabbitMQ下多个Vhost? 客户端可以连接同个RabbitMQ下多个Vhost。 Vhost(Virtual Hosts)是RabbitMQ的基本特性,每个Vhost相当于一个相对独立的RabbitMQ服务器,每个Vhost数据目录不同,共用一个进程。性能上,连接多个Vhost和单独使用一个Vhost差别不大,只是RabbitMQ进程多一些对象,建议使用业务模型实测。 Vhost的相关介绍,请参考官网文档Virtual Hosts。 父主题: 连接问题
  • 消息堆积产生的原因 一般来说消息堆积是由于生产消息的速率远大于消费消息的速率所导致的。比如某个时间段消费端处理消息异常缓慢,发送一条消息只要3秒钟,而消费一条消息需要1分钟,每分钟发送20个消息,只有一个消息被消费端处理,这样队列中就会产生大量的消息堆积。 消费者出现异常,生产者一直在发送消息,但是消费者不能消费,造成消息积压。 消费者没有出现异常,但是消费者与队列间的订阅可能出现了异常,也会导致消息无法被消费从而造成堆积的情况。 消费者正常,与队列间的订阅也正常,但是消费端的代码本身逻辑耗费时间长导致了消费能力降低,这时候就会出现1中的情况从而导致消息堆积。
  • 新规格为什么比老规格贵? 在相同规格的情况下,新规格最大连接数是老规格的1.5倍,建议队列数是老规格的2倍。 表1 RabbitMQ实例新老规格对应关系 老规格 最大连接数(老规格) 建议队列数(老规格) 新规格 最大连接数(新规格) 建议队列数(新规格) 2U4G*1 2000 100 rabbitmq.2u4g.single*1 3000 200 4U8G*1 3000 200 rabbitmq.4u8g.single*1 4500 400 8U16G*1 5000 400 rabbitmq.8u16g.single*1 7500 800 16U32G*1 8000 800 rabbitmq.16u32g.single*1 12000 1600 4U8G*3 9000 600 rabbitmq.4u8g.cluster*3 13500 1200 4U8G*5 15000 1000 rabbitmq.4u8g.cluster*5 22500 2000 4U8G*7 21000 1400 rabbitmq.4u8g.cluster*7 31500 2800 8U16G*3 15000 1200 rabbitmq.8u16g.cluster*3 22500 2400 8U16G*5 25000 2000 rabbitmq.8u16g.cluster*5 37500 4000 8U16G*7 35000 2800 rabbitmq.8u16g.cluster*7 52500 5600 16U32G*3 24000 2400 rabbitmq.16u32g.cluster*3 36000 4800 16U32G*5 40000 4000 rabbitmq.16u32g.cluster*5 60000 8000 16U32G*7 56000 5600 rabbitmq.16u32g.cluster*7 84000 11200 父主题: 实例问题
  • 重启RabbitMQ实例时,若其中一台RabbitMQ重启失败,会如何处理? 重启RabbitMQ实例时,不会重启实例所在虚拟机,仅重启RabbitMQ进程。 重启集群实例时,若其中一台RabbitMQ进程重启失败,则重启后实例状态依然为“运行中”,并提示“部分节点故障”。在每台虚拟机上都有RabbitMQ的守护进程,定时检查RabbitMQ进程是否存在,当进程不存在时会自动拉起RabbitMQ进程。 如果RabbitMQ实例异常持续超过1分钟,会上报告警,华为云技术支持人员将会立即跟进处理。 父主题: 实例问题
  • 如何配置安全组? RabbitMQ实例支持VPC内访问和公网访问,配置安全组的方式如下: VPC内访问实例 客户端只能部署在与RabbitMQ实例处于相同虚拟私有云(VPC)的弹性云服务器(ECS)上。 除了ECS、RabbitMQ实例必须处于相同VPC之外,还需要他们的安全组分别配置了正确的规则,客户端才能访问RabbitMQ实例。 建议ECS、RabbitMQ实例配置相同的安全组。安全组创建后,默认包含组内网络访问不受限制的规则。 如果配置了不同安全组,可参考如下配置方式: 假设ECS、RabbitMQ实例分别配置了安全组:sg-53d4、sg-RabbitMQ、Default_All。 以下规则,远端可使用安全组,也可以使用具体的IP地址。 ECS所在安全组需要增加如下规则,以保证客户端能正常访问RabbitMQ实例。 图1 配置ECS安全组 RabbitMQ实例所在安全组需要增加如下规则,以保证能被客户端访问。 图2 配置RabbitMQ实例安全组 通过公网访问实例 RabbitMQ实例所在安全组需要增加如下规则,以保证能被客户端访问。 表1 安全组规则 方向 协议端口 源地址 入方向 TCP:5672 0.0.0.0/0 具体如图3所示。 图3 安全组规则1 父主题: 连接问题
  • 可能原因二:端口不正确 VPC内访问场景下,端口不正确时,报错如下: [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.111 5673 user *******Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 公网访问场景下,端口不正确时,报错如下: [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 139.xxx.179 5673 user *******Exception in thread "main" java.net.SocketTimeoutException: connect timed outat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 解决方法:修改端口号。
  • 可能原因五:未创建Vhost或者填错Vhost名称 报错如下: Couldn't log in: server connection error 530, message: NOT_ALLOWED - vhost /localdev/ not found 解决方法: 如果未创建Vhost,进入RabbitMQ控制台的“Vhost列表”页面,创建Vhost。 如果是Vhost名称填错了,请参考RabbitMQ控制台的“Vhost列表”页面显示的Vhost名称,修改连接URL和配置文件。
  • 可能原因三:用户名或密码错误 报错如下: [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.111 5672 user *******Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:351)at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64) 解决方法:修改用户名或密码。如果忘记密码,参考重置实例密码,重置密码。
  • 可能原因一:连接地址不正确 VPC内访问场景下,连接地址不正确时,报错如下: [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.110 5672 user *******Exception in thread "main" java.net.NoRouteToHostException: No route to host (Host unreachable)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 公网访问场景下,连接地址不正确时,报错如下: [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 139.xxx.178 5672 user *******Exception in thread "main" java.net.SocketTimeoutException: connect timed outat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 解决方法:在RabbitMQ控制台的“基本信息”页面,获取“内网连接地址”/“公网连接地址”,修改连接实例代码中的连接地址。
  • RabbitMQ实例支持延时消息队列么? RabbitMQ可以通过设置消息的有效期和死信队列来实现延迟消息。同时,也提供安装插件实现延迟消息。当前RabbitMQ支持的插件:rabbitmq_amqp1_0、rabbitmq_delayed_message_exchange、rabbitmq_federation、rabbitmq_sharding、rabbitmq_shovel、rabbitmq_tracing、rabbitmq_mqtt、rabbitmq_web_mqtt、rabbitmq_stomp、rabbitmq_web_stomp和rabbitmq_consistent_hash_exchange。 父主题: 消息问题
  • 实例是否支持修改可用区? 不支持,您可以重新购买实例,以满足可用区要求,然后进行实例元数据的迁移。 实例元数据的迁移步骤如下: 登录重新购买前的RabbitMQ实例的WebUI页面。 在“Overview”页签中,单击“Download broker definitions”,导出元数据。 登录重新购买的RabbitMQ实例的WebUI页面,在“Overview”页签中,单击“选择文件”,选择2中导出的元数据。 单击“Upload broker definitions”,上传元数据。 上传成功后,显示如下信息。 父主题: 实例问题
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total_count Integer 总记录数。 tags Array of ProjectTagItem objects 标签列表。 表5 ProjectTagItem 参数 参数类型 描述 key String 标签键。 values Array of strings 标签值。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • URI GET /v3/{project_id}/tags 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。 limit 否 Integer 查询记录数。默认为100,不能为负数,最小值为1,最大值为100。
  • 响应示例 状态码: 200 Success. { "configurations" : [ { "id" : "887ea0d1bb0843c49e8d8e5a09a95652pr07", "name" : "configuration_test", "description" : "configuration_test", "datastore_version_name" : "8.0", "datastore_name" : "GaussDB(for MySQL)", "created" : "2019-05-15T11:53:34+0000", "updated" : "2019-05-15T11:53:34+0000", "user_defined" : true }, { "id" : "3bc1e9cc0d34404b9225ed7a58fb284epr07", "name" : "Default-GaussDBforMySQL", "description" : "Default parameter template for GaussDBforMySQL", "datastore_version_name" : "8.0", "datastore_name" : "GaussDB(for MySQL)", "created" : "2019-05-27T03:38:51+0000", "updated" : "2019-05-27T03:38:51+0000", "user_defined" : false } ]}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 configurations Array of ConfigurationSummary objects 参数模板信息。 total_count Integer 参数模板的总数。 表4 ConfigurationSummary 参数 参数类型 描述 id String 参数组ID。 name String 参数组名称。 description String 参数组描述。 datastore_version_name String 引擎版本。 datastore_name String 引擎名。 created String 创建时间,格式为"yyyy-MM-ddTHH:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 updated String 更新时间,格式为"yyyy-MM-ddTHH:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 user_defined Boolean 是否是用户自定义参数模板: false,表示为系统默认参数模板。 true,表示为用户自定义参数模板。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token。 X-Language 否 String 语言。 表3 请求Body参数 参数 是否必选 参数类型 描述 password 是 String 数据库密码。 取值范围:至少包含以下字符的三种:大小写字母、数字和特殊符号~!@#$%^*-_=+?,()&,长度8~32个字符。建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险。如果您输入弱密码,系统会自动判定密码非法。
  • 响应参数 状态码: 202 表5 响应Body参数 参数 参数类型 描述 job_id String 修改数据库用户密码的任务ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Language 否 String 语言。 表3 请求Body参数 参数 是否必选 参数类型 描述 users 是 Array of ResetDatabasePassword objects 准备修改密码的数据库用户列表,列表最大长度为50。 表4 ResetDatabasePassword 参数 是否必选 参数类型 描述 name 是 String 数据库用户名。 host 是 String 主机地址。 password 是 String 数据库用户密码,非空,至少包含以下字符中的三种:大写字母、小写字母、数字和特殊符号~!@#$%^*-_=+?,()&组成,长度8~32个字符。建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险
  • 请求示例 修改数据库用户“gaussdb_mysql_user1”的密码。 PUT https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/a23fb62bd61e4e9e9636fd2225f395bein07/db-users/password{ "users" : [ { "name" : "gaussdb_mysql_user1", "host" : "127.0.0.1", "password" : "***" } ]}
  • 响应示例 状态码: 200 Success. 示例 1 { "error_log_list" : [ { "node_id" : "cc07c60e94ec4575989840e648fb4f66no07", "count" : 1, "time" : "1.04899 s", "lock_time" : "0.00003 s", "rows_sent" : 0, "rows_examined" : 0, "database" : "gaussdb-mysql", "users" : "root", "query_sample" : "INSERT INTO time_zone_name (Name, Time_zone_id) VALUES (N @time_zone_id);", "type" : "INSERT", "start_time" : "2121-03-25T10:55:16", "client_ip" : "192.*.*.1" } ]} 示例 2 10 示例 3 15
  • URI GET /mysql/v3/{project_id}/instances/{instance_id}/slowlog 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID 表2 Query参数 参数 是否必选 参数类型 描述 start_date 是 String 开始时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 end_date 是 String 结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数 limit 否 Integer 查询记录数。默认为100,不能为负数,最小值为1,最大值为100 type 否 String 语句类型,取空值,表示查询所有语句类型,也可指定如下日志类型:INSERT、UPDATE、SELECT、DELETE和CREATE node_id 是 String 节点ID
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 slow_log_list Array of MysqlSlowLogList objects 错误日志具体信息。 long_query_time String 慢日志阈值。 total_record Integer 总记录数。 表5 MysqlSlowLogList 参数 参数类型 描述 node_id String 节点ID。 count String 执行次数。 time String 执行时间。 lock_time String 等待锁时间。 rows_sent String 结果行数量。 rows_examined String 扫描的行数量。 database String 所属数据库。 users String 账号。 query_sample String 执行语法。 type String 语句类型。 start_time String 发生时间,UTC时间 client_ip String IP地址。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token X-Language 否 String 语言 表3 请求Body参数 参数 是否必选 参数类型 描述 password 是 String 数据库密码。取值范围:至少包含以下字符的三种:大小写字母、数字和特殊符号~!@#$%^*-_=+?,()&,长度8~32个字符。建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险。如果您输入弱密码,系统会自动判定密码非法。
  • URI POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/restart 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 node_id 是 String 节点ID。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 job_id String 任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Language 否 String 语言。 表3 请求Body参数 参数 是否必选 参数类型 描述 delay 否 Boolean 实例节点是否延迟重启。默认false,立即重启。 true: 延迟重启,实例节点将在运维时间窗内自动重启。 false: 立即重启。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 schedules Array of ScheduleTask objects 任务详情 total_count Integer 记录总数。 表5 ScheduleTask 参数 参数类型 描述 job_id String 任务ID。 instance_id String 实例ID。 instance_name String 实例名称。 instance_status String 实例状态。 取值: 值为“createfail”,表示实例创建失败。 值为“creating”,表示实例创建中。 值为“normal”,表示实例正常。 值为“abnormal”,表示实例异常。 值为“deleted”,表示实例已删除。 project_id String 租户在某一region下的project ID。 job_name String 任务名称。取值有: "CreateGaussDBforMySQLInstance"表示创建实例。 "RestoreGaussDBforMySQLNewInstance"表示恢复新实例。 "AddGaussDBforMySQLNodes"表示添加节点。 "DeleteGaussDBforMySQLNode"表示删除节点。 "RebootGaussDBforMySQLInstance"表示重启实例。 "ModifyGaussDBforMySQLPort"表示修改实例端口。 "ModifyGaussDBforMySQLSecurityGroup"表示修改实例安全组。 "ResizeGaussDBforMySQLFlavor"表示实例规格变更。 "SwitchoverGaussDBforMySQLMasterNode"表示只读升主。 "GaussDBforMySQLBindEIP"表示绑定弹性公网IP。 "GaussDBforMySQLUnbindEIP"表示解绑弹性公网IP。 "RenameGaussDBforMySQLInstance"表示修改实例名称。 "DeleteGaussDBforMySQLInstance"表示删除实例集群。 "UpgradeGaussDBforMySQLDatabaseVersion"表示版本升级。 "EnlargeGaussDBforMySQLProxy"表示实例的数据库代理节点扩容。 "OpenGaussDBforMySQLProxy"表示开启实例的数据库代理。 "CloseGaussDBforMySQLProxy"表示关闭实例的数据库代理。 "GaussdbforMySQLModifyProxyIp"表示修改数据库代理ip。 "ScaleGaussDBforMySQLProxy"表示实例的数据库代理节点规格变更。 "GaussDBforMySQLModifyInstanceMetricExtend"表示实例秒级监控。 "GaussDBforMySQLModifyInstanceDataVip"表示修改实例数据Vip。 "GaussDBforMySQLSwitchSSL"表示切换实例SSL开关。 "GaussDBforMySQLModifyProxyConsist"表示修改代理一致性。 "GaussDBforMySQLModifyProxyWeight"表示修改代理权重。 create_time String 任务创建时间,格式为"yyyy-mm-ddThh:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如偏移1个小时显示为+0100。 说明:创建时返回值为空,数据库实例创建成功后该值不为空 start_time String 任务开始时间,格式为"yyyy-mm-ddThh:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如偏移1个小时显示为+0100。 说明:创建时返回值为空,数据库实例创建成功后该值不为空 end_time String 任务结束时间,格式为"yyyy-mm-ddThh:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如偏移1个小时显示为+0100。 说明:创建时返回值为空,数据库实例创建成功后该值不为空 job_status String 任务执行状态。 取值: 值为“Pending”,表示延时任务,未执行。 值为“Running”,表示任务正在执行。 值为“Completed”,表示任务执行成功。 值为“Failed”,表示任务执行失败。 datastore_type String 数据库类型。 target_config Object 实例配置相关信息,比如规格等。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • 响应示例 状态码: 200 Success. { "schedules" : [ { "job_id" : "56d3c1138dcf4f1da73b0170700c78d0", "instance_id" : "79bc540dd4d6432784894a981fdfacfcin07", "instance_name" : "gauss-f821", "instance_status" : "BUILD", "project_id" : "053f533ead80d5102f0cc012e8d468a4", "job_name" : "VERSION_UPGRADE", "create_time" : "2018-08-06T10:41:14+0000", "start_time" : "2018-08-06T10:41:14+0000", "end_time" : "2018-08-06T10:41:14+0000", "job_status" : "Completed", "datastore_type" : "gaussdb-mysql", "target_config" : { "flavor" : "gaussdb.mysql.xlarge.arm.4", "mem" : "16", "cpu" : "4" } } ], "total_count" : 1}
共100000条