QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

赵钟秋谈又拍网架构中的消息 / 任务系统

  • 2011-12-31
  • 本文字数:1812 字

    阅读完需:约 6 分钟

赵钟秋,又拍网核心开发人员,关注多种计算机语言、Web 技术和开源技术。他在 QCon 杭州 2011 大会的开放平台专题做了名为《又拍网架构中的消息 / 任务系统》的讲座,并和参会者做了热烈的讨论。会后,InfoQ 中文站对赵钟秋做了采访。

InfoQ:又拍的图片云计算平台与一般的 CDN 有什么区别与优势?

又拍图片云计算平台是 Amazon S3 + CloudFront 模式,因为源数据机房包含在整个 CDN 系统中(一般 CDN 服务源服务器往往在客户各自的机房),所以网络优化更彻底,达到整个 CDN 最佳效果。并且面对国内各省市之间复杂的网络结构,可以不断调整优化最佳链路(一般 CDN 服务,回源链路一旦确定,很少会再去为客户做变动)。另外,又拍在提供文件存储加速外,利用公司本身图片方面的技术积累,还提供一些特色功能:比如针对图片文件类型生成缩略图的功能,在线管理功能,防盗链功能等等。

InfoQ:又拍从什么时候开始使用 Erlang,目前开发团队有多大规模,除了消息系统,Erlang 还用在什么地方?给又拍带来了什么优势?

又拍从 2010 年初开始使用 Erlang,我们并没有专门的 Erlang 开发团队(需要的时候由团队中 1-2 个人负责 Erlang 相关开发)。除了消息系统,我们的文件存储系统也是使用 Erlang 开发。我们喜欢用最合适、最方便的工具解决问题,我们认为目前在分布式系统的开发中,Erlang 就是这样的工具。Erlang 的引入也的确为又拍这样的小团队快速地开发高效的、稳固的分布式系统带来了可能性。

InfoQ:选用 RabbitMQ 的时候,与其它的消息系统比如 ZMQ 等等,怎么确定造型的呢,是否有实际的 Benchmark 例子?

选择 RabbitMQ 是 2009 年的事了,当时网站架构在做比较大的变迁。又拍原来的架构是基于 Java 的,那次的迁移是打算减轻对 Java 体系的依赖,而开源消息队列中比较有名的 Apache ActiveMQ 是基于 Java 的实现,显得太厚重,所以被排除在我们的考虑之外。另外,那个时候 ZMQ 还没推出。没有具体了解过 ZMQ,以目前地认识来看,我认为它们之间也存在很大的差异。例如 RabbitMQ 比较完整的实现了 AMQP 协议,而 ZMQ 则提供了简单的接口,相比之下,前者显然比后者偏重。如果是比较性能,ZMQ 会胜出是无庸置疑。后面我们会对 ZMQ 作进一步了解,因为它可能能和 YPTask 有一个很好的结合。目前我们也没有再使用 RabbitMQ。

InfoQ: YPTask 是在 RabbitMQ 上的包装吗?有哪些自己独特的地方,是否回馈开源社区?

YPTask 和 RabbitMQ 没有任何关系,实际上 YPTask 并不是消息系统,确切地讲应该是一个基于消息的远程方法调用系统。YPTask 是基于 Erlang 的 OTP 实现的,本身就是一个很健壮的分布式系统。它具备管理、配置外部工作进程的功能,而简化了消息队列地实现。外部工作进程不是通过网络接口与 YPTask 通信的,而是通过标准输入 / 输出。所以理论上后端的工作进程可以用任何语言实现,只要它支持 Erlang 的序列化方式 BERT。事实上,BERT 的其它语言实现已经非常丰富。更重要的是,YPTask 作为一个中间层次的系统,把大多数的配置和管理工作统一起来,极大地减少了业务代码需要处理的事,使得业务逻辑的开发和管理都变得很简单。我们会将这个工具进行进一步的调整和完善,并在合适的时候将其开源。

InfoQ::Erlang 与 Python、PHP 的通信是怎么做的呢,RPC 是使用 Thrift 还是其它的例子?

目前 Erlang 与工作进程(主要由 Python 开发)是通过 Erlang 的内置序列化方式 BERT 进行通信的,与 PHP 则是通过 JSON-RPC 通信的。考虑到我们系统的迁移,目前只实现了这两个对我们来说最合适的通信方式。不过我们打算加入更多的外部通信协议,比如 msgpack,protobuf 等等。

InfoQ:之前知乎使用又拍时曾出现一些故障,现在在安全性可靠性上,主要有哪些保障?

知乎在使用过程中出现的故障是由于他们对 API 的使用不当造成的。他们将需要认证的 API 请求放到客户端发送,导致向客户端泄漏了 API 的认证信息。从又拍的角度看,这也反映出之前的 API 功能还不够丰富,调用不够方便等问题。我们也会在这个方面投入更多的精力。

InfoQ:又拍的消息系统的规模有多大,下一步会怎么发展呢?

目前又拍的消息系统规模不算太大,每天由 5 个节点处理大约 500 万条消息。目前这些节点的压力并不大。下一步的发展还要看网站的发展情况来确定。

InfoQ:除了消息系统外,整个又拍架构中还有哪些优秀的地方想和读者分享?(又拍曾分享过分库设计)

又拍也是较早在架构中引入 Redis 的站点,可能的话可以分享一下相关经验。

2011-12-31 09:457876
用户头像

发布了 133 篇内容, 共 38.2 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

让生成式 AI 触手可及:火山引擎推出 NVIDIA NIM on VKE 最佳部署实践

Geek_2d6073

企业建设零信任体系的核心思路

芯盾时代

身份安全 iam 业务层 零信任模型

运维实战来了!如何构建适用于YashanDB的Prometheus Exporter

YashanDB

yashandb 崖山数据库 崖山DB

2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,nums 中所有下标均未标记。 从第1秒到第m秒,每秒可以选择以下四种操

福大大架构师每日一题

福大大架构师每日一题

ForkLift for Mac(文件管理程序)v4.1.6激活版

Mac相关知识分享

Mac软件 文件管理程序

宠物供应链服务平台如何实现云化架构升级改造?

华为云开发者联盟

数据库 存储 企业号 8 月 PK 榜 企业号2024年8月PK榜

望繁信科技邀您共赴2024数博会,开启数智经济新篇章

望繁信科技

大数据 数字化转型 流程挖掘 大数据博览会 流程智能

DeFi 协议应提供多类封装型比特币, wBTC 不应作为唯一选择

TechubNews

Author for Mac(文档编辑工具)

Mac相关知识分享

办公软件 文档编辑软件

4家手机云电脑玩游戏:ToDesk云电脑、易腾云、达龙云、青椒云实测对比

小喵子

云电脑 云游戏 ToDesk ToDesk云电脑 云电竞

PDF编辑软件 Acrobat DC 2023中文直装下载 【mac&win】

理理

SVN管理工具Cornerstone for mac永久破解版 及Cornerstone详细使用教程

理理

阿里云Elasticsearch 企业级AI搜索方案发布

阿里云大数据AI技术

人工智能 elasticsearch 搜索 rag

LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发

汀丶人工智能

人工智能 ollama localAI openllm

聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现

bin的技术小屋

Netty java netty netty内存管理

强大的视频下载工具4K Video Downloader for Mac中文激活版

Mac相关知识分享

视频下载 Mac软件 视频下载工具

VM虚拟机VMware Fusion Pro 13:打破界限,实现多平台的无缝融合

理理

Postbox for Mac(邮件客户端)v7.0.62激活版

Mac相关知识分享

邮件管理 Mac软件

什么是 OpenSSL?

NGINX开源社区

https TLS ssl 开源安全 openssl

GreatSQL 并行Load Data加快数据导入

GreatSQL

macOS和Windows系统代码编辑器 Sublime Text 中文设置教程分享

理理

代码编辑工具 sublime text Sublime Text 4注册版

cad2024安装教程分享 Autodesk AutoCAD 2024 v2024.3中文版 附破解补丁

理理

【mac 软件推荐】SecureCRT for mac(终端SSH工具)永久激活

理理

NCH WavePad for Mac(强大的mac音频编辑软件) v19.55注册版

Mac相关知识分享

视频编辑器

AI提问实现学习弯道超车!如何使用AI加速学习?

可信AI进展

人工智能

亚信安慧AntDB数据库与实在智能完成兼容性互认证,携手助力企业数据安全

亚信AntDB数据库

AntDB

全球首发!昆仑万维重磅推出AI流媒体音乐平台Melodio

新消费日报

JProfiler for Mac(Java开发分析软件) v14.0.0永久激活版

理理

苹果电脑如何安装Windows11系统?借助PD虚拟机,mac电脑也能安装Win11了!

理理

助力人效提升!火山引擎数智平台助推头部新能源车企业务增长

字节跳动数据平台

大数据 云服务 BI 数据可视化 物化视图

etl 读写 elastic 同步数据

weigeonlyyou

hadoop elastic HBase ETL Go 语言

赵钟秋谈又拍网架构中的消息/任务系统_Erlang_黄璜_InfoQ精选文章