AIGC在金融场景是如何落地的? 了解详情
写点什么

WhatsApp 架构、Java EE 7 特性、HackerEarth 经验——架构周报

  • 2014-03-07
  • 本文字数:2241 字

    阅读完需:约 7 分钟

本期的架构周报主要关注 WhatsApp 架构分享、Java EE 7 的新特性、HackerEarth 利用 Apache 和 Django 建站的优化经验、MySQL 还是 NoSQL 的选择。

WhatsApp 架构分享

Facebook 以 190 亿美元收购 WhatsApp,其每月 4.5 亿活跃用户奠定了其价值,Tod Hoff 撰文分析了支撑每日数百亿消息的高可靠架构。其中的细节包括:

  • WhatsApp 做后端消息路由的服务器系统使用 Erlang 实现,如此庞大数量的活跃用户只使用非常少的服务器来管理,团队一致认为这很大程度上归功于 Erlang。
  • WhatsApp 使用了什么样的协议?WhatsApp 服务器池使用了 SSL Socket,在客户端重新连接对消息进行获取之前,所有消息都会在服务器上排队。消息的成功获取会发回给 WhatsApp 服务器,它将会被重新转发给原始发送者,一旦客户端成功接收这条消息,它就会在服务器存储中擦除。
  • 系统的健康状况主要看队列的长度,每个节点上消息队列的长度都会被一直监控,超过预先设置的临界值则会发出提醒,多个警报发生则标志着系统进入了下一个瓶颈。
  • 有些代码基本上每天都在变化,通常情况下是一天几次。当然,峰值期间必须避开的。Erlang 非常适用于将修改或者是新功能添加到产品,热加载意味着无需重新启动就可以实现修改,错误可以很快的得到解决,同样通过热加载,系统变得更加松耦合,这可以让更新快速的发布。
  • 记录整个系统状态,包括 OS 状态、硬件状态、BEAM 状态。这是为了便于从其他系统获取状态信息,如虚拟内存。跟踪记录 CPU 利用率、系统整体利用率、用户时间、系统时间、中断时间、上下文切换、系统调用、系统陷入、数据包发送和接收、所有进程队列中总消息数、繁忙的端口事件、通信速率、字节输入 / 输出、调度状态,垃圾回收状态等。

更多架构详情,可以查看 Tod Hoff 的技术文章

Java EE 7 特性

Java EE 7 的新特性主要集中在提高开发人员的生产力、加强对 HTML5 动态可伸缩应用程序的支持和进一步满足苛刻的企业需求这三个方面。Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整、全面、集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性、丰富性和简易的功能。

Java EE 7 三大新特性的介绍”介绍了组件 WebSocket 1.0、JSON Processing 1.0、JAX-RS 2.0、JSF 2.2 和 JMS 2.0 等。主要的特性可以概括为:

  • 提高开发人员的生产力——通过一个紧密集成的平台简化了应用架构,减少样板代码和加强对注释的使用来提高效率,另外借助标准 RESTful Web 服务对客户端的支持提高了应用程序的可移植性。
  • 加强对 HTML 5 动态可伸缩应用程序的支持——基于其可扩展的基础架构,Java EE 7 推动了对 HTML 5 应用的构建和支持。在新的平台中,借助具有行业标准的 JSON 简化了数据分析和交换,并通过低延迟和双向通信的 WebSockets 减少了响应时间。以及利用改进的 JAX-RS 2.0 更好地支持异步的、可扩展的、高性能的 RESTful 服务,从而更好地支持多用户的并发操作。
  • 满足苛刻的企业需求——细化批处理作业,形成可管理的区块,以实现不间断的 OLTP 性能;简化多线程并发任务的定义,以提高可扩展性;以及提供具有选择性和灵活性的事务应用程序等。

HackerEarth 利用 Apache 和 Django 建站的优化经验

HackerEarth 是一个对编程技能进行实践和测试的服务网站,highscalability 上刊载了有关 HackerEarth 利用 Apache 和 Django 建站的优化经验,其中包括:

  • 删除不必要的 Apache 模块。节省内存并提高性能。通过只包括你所需要的模块你可以将需要加载的模块数削减为一半。
  • 使用 Apache MPM (Multi-Processing Module 多路处理模块) worker。对于高流量服务器一般是一个更好的选择,因为它与 prefork MPM 相比会占用更少的内存。
  • 关掉 KeepAlive。实验显示,对于 CloudFont 中供应的静态文件来说这样做是更加有效的,进程 / 线程可以自由地瞬间处理新的请求,而不必等待一个请求到达旧的连接上去。
  • 检查配置。启用 mod_status.so 和 mod_info.so 模块来看 Apache 是怎样运行的。这些信息帮助他们显著地减少了我们要运行的服务器数量,并且使应用程序更稳定,抵御流量的突增。
  • 不要为运行了 100 台服务器而引以为豪。而应该写出更好的代码并调整系统。在大量的请求中投放许多服务器并不是什么值得骄傲的事,这意味着要确保,例如,一个请求不能查询数据库 20 以上。

MySQL 还是 NoSQL 的选择

开源数据领域被分成了两派,NoSQL 和 MySQL。John Engates撰文分析了 NoSQL 和 MySQL 的选择问题。他认为:

如果规模和性能比 24 小时的数据一致性更重要,那 NoSQL 是一个理想的选择。NoSQL 依赖于 BASE 模型——基本可用、软状态、最终一致性。但如果要保证到“始终一致”,尤其是对于机密信息和财务信息,那么 MySQL 很可能是最优的选择。MySQL 依赖于 ACID 模型——原子性、一致性、独立性和耐久性。

作为开源数据库,无论是关系型数据库还是非关系型数据库都在不断成熟,我们可以期待还会有一大批基于 ACID 和 BASE 模型的新应用产生。暂且把它称为混合方案。有时这些应用程序的设计需要认真地权衡利弊,有时还能意外的得到发展,做出一系列调整以适应不断变化的数据需求。

对架构领域感兴趣的读者可以关注即将于 2014 年 4 月 25~27 日在北京国际会议中心召开的QCon 北京 2014 大会,专题包括知名网站案例分析扩展性、可用性与高性能云计算服务探秘大数据处理与大数据应用等,许多讲座都与架构相关。读者可点击大会主页查看详情。

欢迎读者朋友推荐或者投稿架构相关的文章,联系邮箱为 editors@cn.infoq.com ,标题请注明“架构专栏”。

2014-03-07 05:062984
用户头像

发布了 501 篇内容, 共 242.1 次阅读, 收获喜欢 57 次。

关注

评论

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

测试人生 | 突破“大专学历+半路转行”标签,从拉垮菜鸟到测试团队骨干,走到这一步很知足!

霍格沃兹测试开发学社

开发者个人成长主题征文挑战赛正式启动!说出你的成长故事共谱青春乐章

InfoQ写作社区官方

个人成长 热门活动

测试人生 | 双非院校、入职某知名电商公司薪资翻倍还有股票奖励,这个90后小姐姐也太飒了吧?

霍格沃兹测试开发学社

开年见礼!云开发生态激励计划上线,近万元补贴等新年福利请查收

Lily

Apache Kafka 动态配置的原理与应用

移动云大数据

天翼云安全一体化纵深体系是怎么炼成的?

天翼云开发者社区

云安全

测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后小姐姐是怎么腾飞的?

霍格沃兹测试开发学社

测试人生 | 半年涨薪20W入职名企大厂,这个90后妹纸凭什么这么猛?

霍格沃兹测试开发学社

测试人生 | 拿到多个 offer 从了一线互联网公司并涨薪70%,90后小哥哥免费分享面试经验~

霍格沃兹测试开发学社

测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

霍格沃兹测试开发学社

是什么引起数据库响应超时?

BUG侦探

MySQL AWS 云服务

测试人生 | 从跨专业手工测试转岗外包,再到 Python 测试开发,跳槽涨薪 85%!

霍格沃兹测试开发学社

测试人生 | 双非学历入职名企大厂还薪资翻倍?

霍格沃兹测试开发学社

从云原生实战峰会看2022年云原生发展动向

Lily

笔记 | 敏捷转型常见误区及避坑指南(文末附PPT)

嘉为蓝鲸

DevOps 研发 敏捷转型 蓝鲸 嘉为

测试面试 | Java 经典面试题汇总

霍格沃兹测试开发学社

测试人生 | 毕业2年,拒绝独角兽入职名企大厂涨薪10万+,这个95后小姐姐好飒

霍格沃兹测试开发学社

计算机网络——数据链路层

StackOverflow

编程 计算机网络 9月月更

Databend JSON 复杂数据类型的设计与使用 | Databend 特性系列

Databend

json

测试人生 | 年薪50w+ 并入职名企大厂,这是双非学历小哥哥给自己30岁的礼物

霍格沃兹测试开发学社

CentOS时代即将结束 国产系统能否避免“受限”覆辙?

天翼云开发者社区

银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)

墨天轮

操作系统 国产化 银河麒麟 中标麒麟

测试开发面试真题 | 测试老兵进阶突破,成功挑战大厂 P7 Offer!

霍格沃兹测试开发学社

100+大屏模板免费领!葡萄城BI行业应用方案重磅发布!

葡萄城技术团队

BI 发布会

对话来自韩国 Kakao 的海外贡献者 | 我为什么要为 SeaTunnel 做贡献?

Apache SeaTunnel

测试人生 | 从小团队的业务到独角兽的测开,涨薪超过60%,90后小哥哥凤凰涅槃了

霍格沃兹测试开发学社

测试人生 | 做了低薪运营6年,妹纸靠什么转行拿下 20W 年薪?

霍格沃兹测试开发学社

当面试官问你:如何才能带领好团队?

霍格沃兹测试开发学社

测试人生 | 双非院校跨城重新开始,薪资翻了2倍还多,这个90后小姐姐好飒

霍格沃兹测试开发学社

ClickHouse 在海量数据下的应用实践

移动云大数据

Clickhouse

测试人生 | 从传统行业到名企大厂,薪资翻倍,我做到了

霍格沃兹测试开发学社

  • 扫码添加小助手
    领取最新资料包
WhatsApp架构、Java EE 7特性、HackerEarth经验——架构周报_Python_崔康_InfoQ精选文章