首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

1万属性,100亿数据,每秒10万吞吐,架构如何设计?

; (3)每个属性上都有查询需求,各组合属性上都可能有组合查询需求,招聘要查职位/经验/薪酬范围,二手手机要查颜色/价格/型号,二手要查冰箱/洗衣机/空调; (4)吞吐量很大,每秒几10万吞吐; 如何解决...能否具备自描述性; (3)随时可以增加属性,保证扩展性; 解决完海量异构数据的存储问题,接下来,要解决的是类目的扩展性问题。...对于这个搜索引擎架构,简单说明一下: 为应对100亿级别数据量、几十万级别的吞吐量,业务线各种复杂的复杂检索查询,扩展性是设计重点: (1)统一的代理层,作为入口,其无状态性能够保证增加机器就能扩充系统性能...; (2)统一的结果聚合层,其无状态性也能够保证增加机器就能扩充系统性能; (3)搜索内核检索层,服务和索引数据部署在同一台机器上,服务启动时可以加载索引数据到内存,请求访问时从内存中load数据,访问速度很快...: 为了满足数据容量的扩展性,索引数据进行了水平切分,增加切分份数,就能够无限扩展性能 为了满足一份数据的性能扩展性,同一份数据进行了冗余,理论上做到增加机器就无限扩展性能 系统时延,100亿级别帖子检索

89720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    1万属性,100亿数据,每秒10万吞吐,架构如何设计?

    3)每个属性上都有查询需求,各组合属性上都可能有组合查询需求,招聘要查职位/经验/薪酬范围,二手手机要查颜色/价格/型号,二手要查冰箱/洗衣机/空调; (4)吞吐量很大,每秒几10万吞吐; 如何解决100...能否具备自描述性; (3)随时可以增加属性,保证扩展性; 解决完海量异构数据的存储问题,接下来,要解决的是类目的扩展性问题。...* 对于这个内核自研服务的搜索引擎架构,简单说明一下: 为应对100亿级别数据量、几十万级别的吞吐量,业务线各种复杂的复杂检索查询,扩展性是设计重点: (1)统一的代理层,作为入口,其无状态性能够保证增加机器就能扩充系统性能...: 为了满足数据容量的扩展性,索引数据进行了水平切分,增加切分份数,就能够无限扩展性能 为了满足一份数据的性能扩展性,同一份数据进行了冗余,理论上做到增加机器就无限扩展性能 系统时延,100亿级别帖子检索...ps:入口层是Java研发的,聚合层与检索层都是C语言研发的。 帖子业务,一致性不是主要矛盾,E-search会定期全量重建索引,以保证即使数据不一致,也不会持续很长的时间。

    1.8K20

    Java入门(1)-- 初识Java

    1.1 Java简介 1.1.1 什么是Java语言 Java是1995年由Sun公司推出的一门面向对象的程序设计语言,由有“Java之父”之称的Sun研究院院士詹姆斯•戈士林博士设计而成。...Java最初的名字是OAK,在1995年被重命名为Java,并正式发布。 使用Java语言编写的程序是跨平台的,从PC机到手持电话,到处都运行着Java开发的程序和游戏。...Java SE Java SE是Java的标准版,主要用于桌面应用程序的开发,同时也是Java的基础,它包含Java语言基础、JDBC(Java数据库连接性)操作、I/O(输入/输出)、网络通信、多线程等技术...1)语法规则和C++类似; 2)Java语言对C++进行了简化和提高; 3)Java提供了丰富的类库、API文档以及第三方开发包,另外还有大量基于Java的开源项目。...1.2.10 动态 Java可以动态调整库中的方法和增加变量,而客户端却不需要任何更改。

    41420

    Java漫谈1

    对于接触编程的人来说,Java更多地代表了一门编程语言。 Java是一门通用的计算机编程语言,它是并行的,基于类的,面向对象的,可以一次编写到处运行的一门语言。 以上这句话摘自维基百科。...今天有朋友问我什么是Java的话,我通常会这么表达,如下: 你可以把软件产业想象成是一个江湖,在这个江湖中,C语言是易筋经,C++是少林七十二绝技。而Java就相当于是独孤求败用过的那柄玄铁重剑。...这种表述没有直接回答Java的本质,而是先从其在体系中的关系入手,来描述它。...不过在现实的考试中你要是没有模版也能写出一些话出来,但在Java中,要是没有类,那可就什么程序都run不起来了。...小结一下,这篇文章主要分享了我对Java概念的理解,其中最重要的是它基于类,并且面向对象的特征。Java概念的话题就聊到这儿,我们下回见。

    649140

    java概念1

    static void main(String[] args) {//其中[]也可以写在args后面,args也可以随便写成其他字母,例如asdfjkl,这里args只是一个形式参数,所以可以随便改变 Java...注:case语句后一般要加break语句;多个case可以合并在一起;default可以省略,但不推荐这样做;Java中swith语句只能探测int类型值。     ...1Java 多态的实现 答案:继承、重载、覆盖 2、String 类是否能被继承 答案:不能,是个final 修饰的类。...15、说出ArrayList,Vector,  LinkedList 的存储性能和特性 答案:ArrayList 和Vector 都是使用数组方式存储数据,此数组元素数大于 实际存储的数据以便增加和插入元素...254 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制

    1K110

    Java笔记(1)

    注意: 由于多继承可能引起继承结构的混乱,而且会大大降低程序的可理解性,所以Java不支持多继承。 在编程语言领域,还有一个“基于对象”的概念,这两个概念极易混淆。...类之间有三种基本关系: ➢ 关联(包括聚合、组合) ➢ 泛化(与继承同一个概念) ➢ 依赖 1.关联 客观世界中的两个实体之间总是存在千丝万缕的关系,当把这两个实体抽象到软件系统中时,两个类之间必然存在关联关系...➢ 一般→特殊关系:这种关系就是典型的继承关系,Java语言使用extends关键字来表示这种继承关系,Java的子类是一种特殊的父类。因此,这种一般→特殊的关系其实是一种“is a”关系。...➢ 整体→部分结构关系:也被称为组装结构,这是典型的组合关系,Java语言通过在一个类里保存另一个对象的引用来实现这种组合关系。因此,这种整体→部分结构关系其实是一种“has a”关系。...开发者定义了Java类之后,就可以使用new关键字来创建指定类的对象了,每个类可以创建任意多个对象,多个对象的成员变量值可以不同—这表现为不同对象的数据存在差异。

    56220
    领券