链家网8000+万个文件何处安家?

简介:
房产中介来由已久,“牙人”便是唐代时对中介人的称呼。无论买房、卖房还是租房,绝大多数房产相关的商业行为都离不开中介。从实体店到线上,从网站到移动App,从内部系统到2C业务,与蓬勃发展的中国房地产行业一道,链家网也不断与时俱进,更新系统架构,满足不断变化的市场和业务需求。

十年链家网,S3终回归

“现在,链家网存储服务承载的总文件数量已达8270万+,房屋实堪图占66%,其他图片占15%,音视频占13%,文件备份占4%,其他类型数据占2%,总存储容量43TB。”2016 AWS北京峰会上,链家网平台服务架构师吕毅分享了最新的存储服务相关数据。不过时至今日,这些数据或许又会有变化了。

事实上,早在2007年,链家在线(链家网前身)、HERP系统就已上线运营,到2008年“楼盘字典”项目启动,2012年提出“真房源”,SE(Sales Effectiveness)、TE(Transaction Effectiveness)系统上线,“掌上链家”App发布,近六年时间,链家网存储架构采用的一直是传统文件系统。

随着业务线不断扩展,数据量不断增长,传统架构中存储服务的瓶颈日益凸显。2014年,更名的链家网明确了大力发展2C业务、着手自研究SE、TE系统的业务思路。其间,存储架构经历了从传统文件系统到轻量级开源分布式文件系统FastDFS的变迁。再后来,链家网又选用了开源分布式文件系统Ceph,直到2016年,SE、TE合并为Link系统,“楼盘字典”积累了7000万房产信息,更多的UGC、PGC内容产生,AWS S3终担重任。

链家网存储架构变迁

十年链家网,S3终回归。巧合的是,2015年,链家网开始启用AWS时,S3也已十岁了。吕毅表示,在大家熟悉的AWS S3能力之外,链家网对S3服务进行包装后实现了更多的能力:采用Huge Bucket统一管理公司内部Bucket、使用数据库存储文件Meta信息供检索、非常划算的冷数据存储、代理S3服务让用户可在S3能力上封装公司通用逻辑……AWS S3为用户提供了足够抽象的能力,方便企业、个人基于S3通用能力之上进行改造与包装,这些方面也都是链家网选择AWS的重要原因。

选择S3的N个理由

开源商用领域,Ceph一直是分布式文件系统的热门选项。然而,并不是所有人都有时间和精力玩儿转Ceph,尤其是在竞争激烈,业务瞬息变化的房地产市场,时间窗口是横亘在所有市场行为主体面前的一座大山。

时不我待,千言万语一个字:“快”!吕毅坦言,链家网在使用Ceph的过程中遇到了容量、运维、数据备份等方面的问题,各种因素叠加,反而推高了综合成本,因此下定决心改造系统。

容量不够、运维成本高、数据备份堪忧……使用Ceph过程中遇到的问题恰恰是S3用户不需操心的事,容量规划、存储管理、数据备份,S3统统能轻松搞定,更无需硬件维护。此外,S3具备高达11个9的持久性,可让长期数据留存“高枕无忧”。

链家网基于AWS S3的存储架构

存储架构改造过程中,不可避免地会遇到这样那样的问题。吕毅表示,以链家网自身的实践经验看,数据存量与增量问题、业务方迁移成本是两个主要问题,相信这也是很多用户面临的共性问题。恰好在这些方面,AWS都能提供高均衡度的解决方案。“2015年底,链家网刚开始采用AWS服务时,EC2和ELB只承担了外网20%的负载,本地数据中心和云通过AWS Direct Connect连接。现在,主备中心已经对调了位置,云端已承载了近80%的外网负载,并引入S3和数据仓库服务Redshift,高效、可靠、安全地整理数据资料。”吕毅表示。

下一个十年,链家网又将经历怎样的变革之旅?搭上了云快车,未来充满想象和期待。

本文转自d1net(转载)

目录
相关文章
|
并行计算 安全 Java
C# .NET面试系列四:多线程
<h2>多线程 #### 1. 根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i > 10 时是否会引起死锁? 并简要说明理由。 ```c# public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } } ``` 在给定的代码中,不会发生死锁。死锁通常是由于两个或多个线程互相等待对方释放锁而无法继续执行的情况。在这个代码中,只有一个线程持有锁,且没有其他线程参与,因此不
838 3
|
数据采集 数据可视化 安全
Python:房价爬虫设计
Python:房价爬虫设计
591 0
Python:房价爬虫设计
|
机器学习/深度学习 数据采集 算法
【MATLAB】BiGRU神经网络回归预测算法
【MATLAB】BiGRU神经网络回归预测算法
1080 0
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
Kubernetes 应用服务中间件 nginx
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)(上)
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)
52452 30
|
机器学习/深度学习 并行计算 PyTorch
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
2177 1
|
存储 数据采集 运维
DataWorks产品使用合集之DataWorks创建HTTP触发器节点背景信息的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
294 0
|
数据安全/隐私保护
超级弱口令检查工具
超级弱口令工具在检测系统漏洞中的作用,包括如何使用和自定义设置。
2511 2
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
21498 0