首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/GreatSQL/blog/11053069

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

从 MySQL 到 DynamoDB,Canva 如何应对每天新增的 5000 万素材

原文 From Zero to 50 Million Uploads per Day: Scaling Media at Canva 作为一款设计工具,Canva 吸引人的一个重要特色就是拥有数以亿计的照片和图形资源,支持用户上传个人素材。 Canva 于 2013 年推出,设立了一个包含大量照片和图形的资源库,并允许用户上传自己的素材以用于设计。从发布之日起,Canva 的用户群就迅速扩大:现在我们的月活用户已超过一亿,Canva 用户每天上传 5000 万个媒体素材。为了支持这种快速增长,同时让用户能够全天二十四小时使用 Canva,我们必须不断改进 Canva 的媒体存储方式。 Canva 的微服务和媒体服务 我们采用微服务架构来构建 Canva,大多数服务面向资源,管理 Canva 内部不同资源的操作,例如用户、文档、文件夹和媒体。服务提供公开的 API,具有独立的持久性,并且每个服务都由一个小型工程师团队负责。 媒体服务的简化架构概述 Canva 的媒体服务管理媒体资源的操作并封装媒体资源的状态。对于每个媒体,服务都会存储: 资源的唯一标识 ID。 它的所属用户。 是否属于 ...

动态配置Lua脚本及应用

NGINX 向云原生演进,All inOpenNJet OpenNJet 是基于Nginx fork并独立演进的应用引擎,提供的Lua脚本运行能力移植自OpenResty 社区开源的lua-nginx-module 模块,该开源的Lua模块可以将Lua脚本通过内嵌的方式直接写在配置文件中,或者通过 *_by_lua_file 的指令(如content_by_lua_file, access_by_lua_file) 写在外部文件中。 Nginx 上难于进行动态化配置的问题,同样存在于Lua脚本的修改上。一旦完成初始配置,脚本内容进行修改后,需要生效一般只能通过两种方式。其一是服务进程重新加载配置(reload),另一种方案是将脚本放置于外部文件,并通过配置 lua_code_cache off的方式关闭代码缓存机制,但这种方式只适用于开发阶段,生产环境并不适用。 OpenNJet 架构设计已经考虑了动态配置的问题,Lua 脚本内容的修改上,使用架构提供的能力,在兼顾性能的情况下,实现了无需重启或重加载,实时更新Lua脚本的功能。 功能说明 Lua动态配置能力,通过模块 ”njt_htt...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。