草庐IT

canal同步mysql数据到es中

背景:项目中业务数据量比较大,每类业务表都达到千万级别,虽然做了分库分表和读写分离,每张表数据控制在500W一下,但是效率还是达不到要求,为了提高查询效率,我们使用ES查询。而将mysql实时同步到es中保证数据一致性就成了我们的工作之下。环境:jdk1.8(依赖jdk环境,需要先安装这个)mysql5.7canal1.1.5(也有一个坑,多张表公用一个es索引,但是多表有字段同名的时候,你更新一个表的同名字段,es会把数据表同名的所有字段都更新,虽然你在es索引中的字段名称不一样,也会导致,cannl开发者修复了这个问题,但是并没有在1.1.5版本中更新,我们是自己下载源码手动改cannl才

ES深度分页查询详解

一、ES支持的三种分页查询方式From+Size查询Scroll遍历查询SearchAfter查询说明:官方已经不再推荐采用ScrollAPI进行深度分页。如果遇到超过10000的深度分页,推荐采用search_after+PIT。官方文档地址二、分布式系统中的深度分页问题为什么分布式存储系统中对深度分页支持都不怎么友好呢?首先我们看一下分布式存储系统中分页查询的过程。假设在一个有4个主分片的索引中搜索,每页返回10条记录。当我们请求结果的第1页(结果从1到10),每一个分片产生前10的结果,并且返回给协调节点,协调节点对40个结果排序得到全部结果的前10个。当我们请求第99页(结果从990到

项目Es、kafka、mysql容量评估方案和服务器资源预估方案

目录1、Es评估计划一个接口jmeter压测qps1万,logstash读取日志文件写入esLogstash配置Es容量变化前后差值/1万*1.67*(1+副本数)~=次接口es容量(日志数据30kb)影响es存储的主要原因通过kibana查看堆栈》索引》通过数据中的值/压测的数量=平均容量​编辑服务器资源预估计算公式多级别预估2、Kafka评估计划基准测试创建test主题基准测试生产数据基准测试消费数据先用程序插入1万条当前业务数据使用如下命令查看主题占用大小容量计算规则参考es建议定期清理时间设置方案体量计算3、Mysql评估计划普遍上浮情况例子建议1、Es评估计划一个接口jmeter压测

JS 怎么理解ES6新增Set、Map两种数据结构?

目录一、前言二、Set1.Set数据结构定义2.Set数据结构的特性3.Set数据结构的基本使用4.Set遍历数据5.Set的使用场景6.WeakSet的使用7.垃圾回收机制三、Map1.Map数据结构定义2.Map数据结构的特性3.Map数据结构的基本使用 4.Map遍历数据5.Map的使用场景6.WeakMap的使用7.垃圾回收一、前言Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构什么是集合?什么又是字典?集合是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合字典是一些元素的集合。每个元素有一个称作key的域,不同元素的key各不相同区别?共同点:集合

关于ES中Function_Score在自定义打分中的应用

应用背景现在有许多商品需要在商品列表中进行排序展示,排序要求使用ES并且尽量一次性查出来,有要求如下:重点商品,收藏商品,优质商品,普通商品的顺序展出在同一类商品发生冲突时,按照自主产品,非自主产品进行展出(是否自主产品是一个集合,只有集合里面有7才属于自主产品,没有7则属于非自主产品)如果继续发生冲突按照商品录入时间展出最后用id来进行兜底优质商品首先根据商品的等级来排序,然后才走第二行ES中使用到的字。id(商品的序列号),create_time(创建商品时间),one_hand_commodity(是否是优质商品),commodity_level,(商品等级4个级别S,A,B,C)com

JavaScript笔记——快速了解 ES6 新增数组方法,开箱即用(含案例)

文章目录📋前言🎯Array.from()🎯Array.of()🎯Array.find()🎯Array.findIndex()🎯Array.includes()🎯Array.flat()🎯Array.flatMap()🎯Array.every()🎯Array.some()🎯Array.reduce()🎯Array.reduceRight()🎯Array.sort()🎯Array.reverse()🎯Array.fill()🎯Array.slice()🎯Array.splice()🎯Array.copyWithin()🎯Array.forEach()🎯Array.map()🎯Array.filte

【ES】分布式集群

【ES】分布式集群单节点集群故障转移水平扩容应对故障路由计算本文主要参考尚硅谷的资料,少部分自己原创,有错误之处请指出。单节点集群node-1001配置如下:#集群名称,节点之间要保持一致cluster.name:my-elasticsearch#节点名称,集群内要唯一node.name:node-1001#表示节点是否具有成为主节点的资格(此属性的值为true,并不意味着这个节点就是主节点)node.master:true#表示节点是否存储数据node.data:true#IP地址network.host:localhost#http端口http.port:1001#tcp监听端口(节点间通

【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详解

 【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详细 🧛‍♂️iecne个人主页:点赞关注收藏评论支持哦~💡每天关注iecne的作品,一起进步✨一起学习内容专栏:C++保姆级入门教程  C++每日一题  C++游戏设计教程👉本文收录专栏:C++游戏引擎教程与实战🐳希望大家多多支持🥰一起进步呀!目录 【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详细✨前言任务描述Easy2D导读一.准备 1.准备图片2.设置窗口二.创建Man类1.man类2.与Sprite联通3.添加场景4.居中显示三.实现移动 1.onUpdate2.KeyCode::up、Input::isDown

【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详解

 【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详细 🧛‍♂️iecne个人主页:点赞关注收藏评论支持哦~💡每天关注iecne的作品,一起进步✨一起学习内容专栏:C++保姆级入门教程  C++每日一题  C++游戏设计教程👉本文收录专栏:C++游戏引擎教程与实战🐳希望大家多多支持🥰一起进步呀!目录 【游戏引擎Easy2D】三分钟学会游戏的控制移动,键盘识别详细✨前言任务描述Easy2D导读一.准备 1.准备图片2.设置窗口二.创建Man类1.man类2.与Sprite联通3.添加场景4.居中显示三.实现移动 1.onUpdate2.KeyCode::up、Input::isDown

【ES】---ES的基本操作

目录一、前言二、Jestclient和Restclient使用2.1、Restclient方式三、Restclient方式3.1、基本操作3.2、联合查询一、前言ES有4种客户端,分别是:Jestclient、Restclient、Transportclient、Nodeclient。ES支持两种协议HTTP协议,支持的客户端有Jestclient和RestclientNativeElasticsearchbinary协议,也就是Transportclient【7.0弃用】和Nodeclient【2.3弃用】Jestclient非官方支持,在ES5.0之前官方提供的客户端只有Transport