主页

RabbitMQ最佳实践-1

使用RabbitMQ消息队列时两个重要的考虑因素是:吞吐与可靠。有的场景要求高吞吐,有的场景要求高可靠。在系统设计时候如何平衡消息队列的的吞吐量与可靠性,是使用好RabbitMQ消息队列的关键。 这篇文章列出RabbitMQ的最佳实践,基于吞吐量与可靠性两个指标,给出怎么做是好的、怎么做是差的指导,包括队列大小、常见错误、延迟加载队列、预提取值、连接与通道、集群节点数量等,这些指导都是在实践中总结出来的。

阅读更多

RabbitMQ基础

为什么使用队列,为什么使用RabbitMQ队列 消息队列用于系统之间解耦,通过高性能消息中间件,提升系统吞吐量,降低导致系统耦合。 当前有各种消息队列,RabbitMQ、Kafka、ActiveMQ等,为什么使用RabbitMQ?

阅读更多

如何设计租户VPC网络-AWS

如何设计租户VPC AWS VPC 提供了丰富的网络虚拟化能力,基于此能力用户可以通过多种选择来设计与实现租户网络。但是,如何使用这些丰富的网络虚拟化能力设计出一个理想的租户网络有一定的难度,特别是很多企业并没有专业的网络人员情况下。因此这篇文章提供了VPC网络设计的最佳实践,包括设计原则、配置规则。

阅读更多

AWS CTO对过去十年的经验总结 - 十条军规

AWS(Amazon Web Service) 开始于 2006 年 3 月 14 日 Amazon S3 的发布,距今已有十年时间。回首过去十年,我们在构建和运营 AWS 云计算服务中积累了大量的经验教训——这些服务不仅需要确保安全性、可用性和可扩展性,同时还要以尽可能低廉的成本提供可预测的性能。考虑到 AWS 是世界范围内构建和运营此类服务的开拓者,这些经验教训对我们的业务来说至关重要。正如我们多次重申的,“经验不存在压缩算法”。考虑到 AWS拥有每月超过一百万的活跃用户,而这些用户也许会为数以亿计的自家客户提供服务。因此,积累上述经验教训的机会在 AWS 比比皆是, 在这些经验教训中,我挑选了一些分享给大家,希望对各位也能有所帮助。

阅读更多

使用Python SDK访问华为云ROMA MQS

背景 ROMA是新一代企业集成平台,其中的消息集成服务MQS使用Kafka队列实现。本样例介绍如何使用ROMA服务中的MQS收发消息。 安装 Kafka Python SDK 使用原生的 Python SDK confluent-kafka-python ,执行 pip install confluent-kafka 完成安装。 当前只支持1.x版本的SDK,不支持0.x以及2.x版本的SDK。

阅读更多

Redis跨云迁移实践

背景 Redis是使用最广泛的缓存数据库,各家公有云厂商都有提供Redis服务,虽然都是Redis服务,但是不同云厂商的架构与性能规格都有差异,在跨云迁移的时候,需要谨慎评估,避免迁移后出现性能问题。 前提条件 本文的对比都是基于Proxy模式的Redis集群的,当前主流的Redis集群是Proxy模式;Redis原生集群对开发者来说,比使用Proxy模式集群要更复杂,提供的云厂家也相对较少,因此还是起步阶段。

阅读更多

使用云厂商托管K8S时容器域名解析注意事项

云厂商托管 Kubernetes 服务的 Pod 域名解析注意事项 使用云厂家提供托管式Kubernetes,Pod的域名解析参数,通过界面创建Pod的话,可能厂商界面没有开放dnsConfig配置,采用了一些默认值,在使用时候,需要了解清楚厂商提供的默认配置,否则会存在问题。 典型的一个配置是 ndots ,如果你在Pod内访问的域名字符串,点 数量在 ndots 阈值范围内,则被认为是Kubernetes集群内部域名,会被追加 **..svc.cluster.local** 后缀,这样会导致每次解析域名时候有2次(IP4/IP6)无效解析,在大规模并发场景下存在性能瓶颈。 云厂商一般将Kubernetes的DNS服务(CoreDNS或SkyDNS)与厂商提供的外部DNS级联了,因...

阅读更多

在容器内获取Pod或Container属性

在容器内获取Pod或Container属性 容器内的应用程序有获取容器定义元数据的需求,如容器名称,容器IP地址,容器资源配额等,这些信息在容器调用系统K8S中都存在。在早期的K8S中是不暴露的应用使用的,随着客户诉求的增多,K8S开放了这些信息给应用程序。 通过环境变量将Pod信息呈现给容器

阅读更多