当前位置: 首页 > news >正文

镇江市住房城乡建设局网站山西太原网站建设

镇江市住房城乡建设局网站,山西太原网站建设,wordpress 标题,制作网站需要怎么做的es elastocsearch 倒排索引是在数据查询之前建立,在查询的时候可以直接通过关键词定位到文档内容。用空间换时间 分布式架构原理说一下? es底层是基于lucene来的 大概就是一个用于全文检索的jar包 用es来做分布式的搜索引擎 可以承载一秒钟几千的…

es elastocsearch

倒排索引是在数据查询之前建立,在查询的时候可以直接通过关键词定位到文档内容。用空间换时间

分布式架构原理说一下?

es底层是基于lucene来的   大概就是一个用于全文检索的jar包

用es来做分布式的搜索引擎  可以承载一秒钟几千的搜索

es用来存储数据的基本单位是索引。

index:mysql里的一张表

type:一个index里可以有多个type,每个type的字段都是差不多的,但是有一些略微的差别

比如mysql中的表  有些订单是实物订单,有些是游戏点卡。两种订单大部分字段一样,但是少部分字段可能有略微的差别。

mapping代表了对这个type表结构的定义,定义了这个type中每个字段名称,字段是什么类型,然后还有这个字段的各种配置

document:往index里的一个type里面写一条数据,叫做一条document,一条document代表了mysql中某个表的一行,每个document有多个field,每个field就代表了document中一个字段的值

架构:

每台机器中有一个es进程,每个es进程中有多个shard,每个shard都会在其他的某个机器上有一个副本   一个索引的数据会被分布式存储在多个shard上面    primary为主版本,replica为副版本

如果说masterNode节点(代表一个机器)突然挂了,那么es会重新选举一个新的节点成为masterNode     原本需要的不是shard01跟shard02么  此时新的masterNode里面是02跟03,02是replica Shard  此时会将它变成primary Shard   

kafka是只能在lead里面读写   而es是可以在primary里面写读写  可以在replica里面读

当刚刚宕机了的节点恢复后,它里面的shard02会变成replica shard

写入与查询的工作原理?

客户端可以挑任意一个进程去写,进去以后  如果是找到了replica节点,那么replica会把数据路由到primary中,写进primary,然后primary会将数据同步到replica中

写进shard怎么写的?

在写进shard之后  会写进内存buffer中,同时会写进tanslog日志中,每隔一段时间会把buffer中的数据刷进磁盘,refresh操作->刷到segmentFile中,segmentfile 中就存储最近1秒内buffer中写入的数据  刷到segmentfile之前会先进os cache操作系统级别的一个内存缓存中 为什么说es是准实时的,因为是每隔1秒refresh一次,写入的数据1秒后才能被看到

这样一直重复,新的数据不断进入buffer和translog中,不断将buffer数据写入一个又一个新的segment file中去,每次refresh完buffer清空,tanslog保留,随着过程推进,translog会变得越来越大,当translog达到一定长度的时候,就会触发conmit操作

commit操作:1写comimit point  2 OS cache数据fsync强刷到磁盘上去 3.清空translog日志文件

一般不叫commit  一般叫flash操作

translog主要是用来做数据的恢复  内存如果宕机 那么就可以根据translog来做一个恢复

1.他是准实时的,数据写入一秒后可以搜索到,2可能会丢失数据的,你的数据有5秒的时间停留在buffer、translog、segment file  os cache中  

此时如果宕机  可能会导致五秒的数据丢失

如果你希望一定不丢数据的话 ,可以设置参数,每次写入一条数据,都是直接写入buffer,同时写入磁盘中的translog

删除数据:有个.del的文件  如果某条数据被删除了,.del文件中会标记这条数据。然后你就不会搜索到这条数据了

merge操作:三个segment合并成一个segment,如果原来的segment中某条数据被标志成.del  那么在合并后  它就没了  被物理删除了

读数据过程:不断轮询 每次随机找一个shard去读,

在几十亿数量级场景下如何优化查询性能?

仅仅只是写入es中要用来检索的少数几个字段就可以了 , fileSystemcache里面的内存要大一点

你最好写入es的数据小于等于 fileSystem cache   最好让查询大量的命中filesystemcache

数据预热:经常要访问的数据 把他刷到filesystemCache中  就是从内存拿  而不是磁盘

比如电商 你可以吧一些平时查看得比较多的商品,热数据提前后台搞个程序,每隔一分钟,自己主动访问一次,刷到filesystemCache中去

冷热分离:  就是经常用的数据放在一张表里面,不经常用的放在另一个shard里面

用es做分页,越往后翻越慢

两个思路来解决:

1.不允许深度分页

2.默认翻得越深,性能越差

微博:可以用scroll  api

其实现在很多产品是不能随意翻页的   做成的是往下拉的这种  而不是说一下从一百页跳到200页

生产环境的分布式搜索引擎是怎么部署的?

中小型公司:

 

集群部署了5台机器,每台机器是6核64G的,集群总内存是320G

日增量数据大概是2000万条,每天日常增量数据大概是500MB,每月

http://www.yayakq.cn/news/888191/

相关文章:

  • php class 做网站php企业网站
  • 手机网站类型网站建设价格评审资料清单
  • 那个网站可以做宣传wordpress简洁企业主题
  • 怎么进入广告联盟看广告赚钱网站权重优化
  • 彩票理财网站建设郴州网站建设企业
  • 专业做微视频的网站做视频网站成本
  • 天津网站建设制作软件东莞公共资源交易中心官网
  • 四川省城乡住房与建设厅网站首页做网站枣庄
  • 设备上哪个网站做外贸推广软件开发模型及特点
  • 牡丹江哈尔滨网站建设产品报价网
  • 免费建设网站c3sales网站怎么制作 优帮云
  • 网站如何生成静态阿里云网站建设教程2017
  • 邯郸企业网站建设比分网站怎么做
  • 网站开发详细设计模板标识导视设计公司官网
  • 山东住房和建设庭网站宁波江北区网站推广联系方式
  • 织梦可以放两个网站如何自建网站 优帮云
  • 清远网站seo长沙百度推广排名优化
  • 有哪些网站做的很有特色无经验培训 网页设计学员
  • 邢台企业做网站的公司广州佛山建立网站的公司
  • 怎么自己做网站卡扣华为荣耀商店
  • 做阿里巴巴网站图片大全怎么查询自己的二建信息
  • 品牌微信网站定制东莞横沥网站建设
  • wordpress 在线检测seo快速培训
  • 域名网站怎么做的网页开发用什么软件
  • 手机网站图片宽度上海原画培训机构排名
  • 企业模板网站建设优势分析学校网站建设教程
  • 深圳网站开发公司宝网湛江的网站
  • 静态网站开发预期效果最美情侣免费视频
  • 买了域名之后怎么做网站东莞黄页大全
  • 什么网站可以用手机做兼职赚钱吗电子商务网站建设毕业设计