摘要: 这篇博客主要讲:分词器概念、ES内置分词器、ES中文分词器。 一、分词器概念 1、Analysis 和 Analyzer Analysis: 文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词。Analysis是通过Analyzer来实现的。 当一个文档被索引时,每个Field 阅读全文
posted @ 2022-02-16 21:15 hanease 阅读(362) 评论(0) 推荐(0)
摘要: 上一篇讲了Elasticsearch聚合查询中的Metric聚合:Elasticsearch(8) 聚合查询(Metric聚合) 说明 本文主要参考于Elasticsearch 官方文档 7.3版本。 Bucket Aggregations 概念:Bucket 可以理解为一个桶,它会遍历文档中的内容 阅读全文
posted @ 2022-02-16 21:14 hanease 阅读(184) 评论(0) 推荐(0)
摘要: 在Mysql中,我们可以获取一组数据的 最大值(Max)、最小值(Min)。同样我们能够对这组数据进行 分组(Group)。那么对于Elasticsearch中 我们也可以实现同样的功能,聚合有关资料官方文档内容较多,这里大概分两篇博客写这个有关Elasticsearch聚合。 官方对聚合有四个关键 阅读全文
posted @ 2022-02-16 21:11 hanease 阅读(441) 评论(0) 推荐(0)
摘要: 复合查询有:bool query(布尔查询)、boosting query(提高查询)、constant_score (固定分数查询)、dis_max(最佳匹配查询)、function_score(函数查询)。 一、bool query(布尔查询) 1、概念 定义 可以理解成通过布尔逻辑将较小的查询 阅读全文
posted @ 2022-02-16 21:04 hanease 阅读(519) 评论(0) 推荐(0)
摘要: 这篇博客主要分为 :Query查询和Filter查询。有关复合查询、聚合查询也会单独写篇博客。 一、概念 1、概念 一个查询语句究竟具有什么样的行为和得到什么结果,主要取决于它到底是处Query还是Filter。两者有很大区别,我们来看下: Query context 查询上下文 这种语句在执行时既 阅读全文
posted @ 2022-02-16 20:57 hanease 阅读(342) 评论(0) 推荐(0)
摘要: 这篇博客的命令分为ES集群相关命令,索引CRUD命令,文档CRUD命令。这里不包括Query查询命令,它单独写一篇博客。 一、ES集群相关命令 ES集群相关命令主要是_cat命令,所以这里详细讲解下该命令。 1、_cat命令 _cat系列提供了一系列查询Elasticsearch集群状态的接口。 / 阅读全文
posted @ 2022-02-16 20:50 hanease 阅读(159) 评论(0) 推荐(0)
摘要: 这篇博客讲到基本概念包括: Index、Type、Document。集群,节点,分片及副本,倒排索引。 一、Index、Type、Document 1、Index index:索引是文档(Document)的容器,是一类文档的集合。 索引这个词在 ElasticSearch 会有三种意思: 1)、索 阅读全文
posted @ 2022-02-16 20:29 hanease 阅读(836) 评论(0) 推荐(0)
摘要: 想加强ES有关的知识,看了阮一鸣老师讲的《Elasticsearch核心技术与实战》收获很大,所以接下来会跟着他来更加深入的学习ES。 这篇博客的目的就是部署好ES和跟ES相关的辅助工具,同时通过Logstash将测试数据导入ES,这些工作完成之后,之后我们就可以在此基础上深入的去学习它。 一、Do 阅读全文
posted @ 2022-02-16 20:25 hanease 阅读(568) 评论(0) 推荐(0)
摘要: 一、基于spring-boot-starter-data-elasticsearch整合 开发环境:springboot版本:2.0.1,elasticSearch-5.6.8.jar版本:5.6.8,服务器部署ElasticSearch版本:6.3.2 1、application.properti 阅读全文
posted @ 2022-02-16 20:21 hanease 阅读(285) 评论(0) 推荐(0)
摘要: 1. 单机部署-场景描述 elasticsearch只用过,没有部署或者维护过,从头完整走一遍,记录下,原创实战,有需要的朋友参考下。 2 . 解决方案 特别说下,以前win7下安装的3台虚拟机,没有联网,因为要安装elasticsearch-head需要安装前端报,调整为联网,安装yum、npm等 阅读全文
posted @ 2022-02-16 20:15 hanease 阅读(170) 评论(0) 推荐(0)
摘要: 第二十一章 授予身份及切换身份——《跟我学Shiro》 在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他秘书,只是想把工作委托给他;此时和我们可以使用Shiro的RunAs功能,即允许一个用户假装为另一个用户(如果他 阅读全文
posted @ 2022-02-16 15:51 hanease 阅读(96) 评论(0) 推荐(0)
摘要: 第十四章 SSL——《跟我学Shiro》 对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问。 首先生成数字证书,生成证书到D:\localhost.keystore 使用JDK的keytool命令,生成证书(包含证书/公钥/私钥)到D:\loc 阅读全文
posted @ 2022-02-16 15:48 hanease 阅读(114) 评论(0) 推荐(0)
摘要: 第八章 拦截器机制——《跟我学Shiro》 8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展;所以如果对Filter不熟悉可以参考《Servlet3.1规范》http://www.iteye.com/blogs/subjects/Servlet-3-1了解Filte 阅读全文
posted @ 2022-02-16 15:36 hanease 阅读(56) 评论(0) 推荐(0)
摘要: 第四章 INI配置——《跟我学Shiro》 之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始。 4.1 根对象 阅读全文
posted @ 2022-02-16 15:27 hanease 阅读(74) 评论(0) 推荐(0)
摘要: 第一章 Shiro简介——《跟我学Shiro》 1.1 简介 Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂 阅读全文
posted @ 2022-02-16 15:20 hanease 阅读(76) 评论(0) 推荐(0)
摘要: 最近在学习Flume源码,所以想写一份Flume源码学习的笔记供需要的朋友一起学习参考。 1、Flume介绍 Flume是cloudera公司开源的一款分布式、可靠地进行大量日志数据采集、聚合和并转移到存储中;通过事务机制提供了可靠的消息传输支持,自带负载均衡机制来支撑水平扩展;并且提供了一些默认组 阅读全文
posted @ 2022-02-16 15:04 hanease 阅读(1221) 评论(0) 推荐(0)
摘要: 流量复制 在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用ngin 阅读全文
posted @ 2022-02-16 14:56 hanease 阅读(380) 评论(0) 推荐(0)
摘要: 本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格、库存、服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后拼装网页模板的。 http://item.jd.com/1217499.html 如图所示,商品页主 阅读全文
posted @ 2022-02-16 14:55 hanease 阅读(288) 评论(0) 推荐(0)
摘要: 此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存 阅读全文
posted @ 2022-02-16 14:52 hanease 阅读(690) 评论(1) 推荐(0)
摘要: 在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Wo 阅读全文
posted @ 2022-02-16 14:50 hanease 阅读(374) 评论(0) 推荐(0)
摘要: 目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redi 阅读全文
posted @ 2022-02-16 14:46 hanease 阅读(262) 评论(0) 推荐(0)
摘要: 第一章 安装OpenResty(Nginx+Lua)开发环境 首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应 阅读全文
posted @ 2022-02-16 14:44 hanease 阅读(902) 评论(0) 推荐(0)
摘要: 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开发主要是以C/C++模块的形式进行,整体学习和开发成本偏高;如果有一种简单的语言来实现Web应用的开 阅读全文
posted @ 2022-02-16 14:41 hanease 阅读(2491) 评论(0) 推荐(0)
摘要: Java反射机制详解 | |目录 1反射机制是什么 2反射机制能做什么 3反射机制的相关API ·通过一个对象获得完整的包名和类名 ·实例化Class类对象 ·获取一个对象的父类与实现的接口 ·获取某个类中的全部构造函数 - 详见下例 ·通过反射机制实例化一个类的对象 ·获取某个类的全部属性 ·获取 阅读全文
posted @ 2022-02-16 14:15 hanease 阅读(51) 评论(0) 推荐(0)
摘要: Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 正则表达式实例 一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。 阅读全文
posted @ 2022-02-16 14:14 hanease 阅读(634) 评论(0) 推荐(0)
摘要: 1、Java 全文搜索引擎框架 Lucene毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene为开发人员提供了相当完整的工具包,可以非常方便地实现强大的全文检索功能。下面有几款搜索引擎框架也 阅读全文
posted @ 2022-02-16 13:59 hanease 阅读(1716) 评论(0) 推荐(0)
摘要: Lucene教程 1 lucene简介1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。2 lucene的工作方式 lucene提供的服务实际包含 阅读全文
posted @ 2022-02-16 13:58 hanease 阅读(2431) 评论(0) 推荐(0)
摘要: 原文:http://www.cnblogs.com/JChen666/p/3399951.html 1.同源策略如下: URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jsh 阅读全文
posted @ 2022-02-16 13:54 hanease 阅读(6907) 评论(0) 推荐(0)
摘要: Token一般用在两个地方: 1: 防止表单重复提交 2: anti csrf攻击(Cross-site request forgery 跨站点请求伪造) 两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到sessio 阅读全文
posted @ 2022-02-16 13:53 hanease 阅读(1023) 评论(0) 推荐(1)
摘要: 一、基本语法 1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)<img src="$info.imgs" border=0>#else<img 阅读全文
posted @ 2022-02-16 11:00 hanease 阅读(1138) 评论(0) 推荐(0)
摘要: 前言 SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏。所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面纱,让它不在神秘。 正文 我们开发任何一个Spring Boot项目,都会用到如下的启动类 @Spr 阅读全文
posted @ 2022-02-16 10:55 hanease 阅读(251) 评论(0) 推荐(0)
摘要: 1、ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 阅读全文
posted @ 2022-02-16 10:53 hanease 阅读(41) 评论(0) 推荐(0)
摘要: http+SSL 最近大家在使用百度、谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护。仔细观察,会发现这些网站已经全站使用 HTTPS。同时,iOS 9 系统默认把所有的 http 请求都改为 HTTPS 请求。随着互联网的发展,现 阅读全文
posted @ 2022-02-16 10:49 hanease 阅读(186) 评论(0) 推荐(0)
摘要: 1 package com.chauvet.utils.json; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.FileWri 阅读全文
posted @ 2022-02-16 10:48 hanease 阅读(522) 评论(0) 推荐(0)
摘要: 1 import java.io.FileOutputStream; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import java.io.Ou 阅读全文
posted @ 2022-02-16 10:46 hanease 阅读(1067) 评论(0) 推荐(0)
摘要: Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。 阅读全文
posted @ 2022-02-16 10:40 hanease 阅读(122) 评论(0) 推荐(0)
摘要: 一 序:本章业务场景:队列在数据结构中是一种线性表,从一端插入数据,然后从另一端删除数据。作者举例的场景有:进行异步处理、系统解耦、数据同步、流量削峰、缓冲、限流等。 前面的比较浅,总结起来,核心知识点有两块: 1. disruptor+redis队列 2. 基于canal实现数据异构。 下面说的就 阅读全文
posted @ 2022-02-16 10:39 hanease 阅读(268) 评论(0) 推荐(0)
摘要: 构建集群的历史 物理机器的时代(2004年-2014年) 在2014年之前,我们公司的应用程序都部署在物理机器上。在物理机器时代,为了给即将上线的应用程序分配物理机器,我们平均需要等上一周的时间。由于缺乏隔离机制,应用程序会彼此影响,导致了许多潜在风险。那时候,每个物理机器上的Tomcat实例的平均 阅读全文
posted @ 2022-02-16 10:36 hanease 阅读(198) 评论(0) 推荐(0)
摘要: JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。 自动装箱,只需将该值赋给 阅读全文
posted @ 2022-02-16 10:25 hanease 阅读(1087) 评论(0) 推荐(0)
摘要: 为什么需要线程池?线程池能够对线程进行统一分配,调优和监控:- 降低资源消耗(线程无限制地创建,然后使用完毕后销毁)- 提高响应速度(无须创建线程)- 提高线程的可管理性 Java是如何实现和管理线程池的?从JDK 5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable 阅读全文
posted @ 2022-02-16 10:22 hanease 阅读(167) 评论(0) 推荐(0)
摘要: 本文的主要内容如下图所示: 什么是延迟任务?顾明思议,我们把需要延迟执行的任务叫做延迟任务。 延迟任务的使用场景有以下这些: 红包 24 小时未被查收,需要延迟执退还业务;每个月账单日,需要给用户发送当月的对账单;订单下单之后 30 分钟后,用户如果没有付钱,系统需要自动取消订单。等事件都需要使用延 阅读全文
posted @ 2022-02-16 10:18 hanease 阅读(268) 评论(0) 推荐(0)
摘要: 1. 图解es内部机制 1.1. 图解es分布式基础 1.1.1es对复杂分布式机制的透明隐藏特性 分布式机制:分布式数据存储及共享。 分片机制:数据存储到哪个分片,副本数据写入。 集群发现机制:cluster discovery。新启动es实例,自动加入集群。 shard负载均衡:大量数据写入及查 阅读全文
posted @ 2022-02-16 10:14 hanease 阅读(363) 评论(0) 推荐(0)
摘要: Lambda表达式 接口新增方法 四大函数式接口 方法引用 Stream(1) Stream(2) Stream(3) 时间API 加强注解 Base64 排序 Lambda体验Lambda是一个匿名函数,可以理解为一段可以传递的代码。Lambda表达式写法,代码如下:借助Java 8的全新语法,上 阅读全文
posted @ 2022-02-16 09:52 hanease 阅读(84) 评论(0) 推荐(0)
摘要: 什么是高并发? 高并发(High Concurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。 阅读全文
posted @ 2022-02-16 09:39 hanease 阅读(1317) 评论(0) 推荐(0)
摘要: 前言在进行冷热分离的时候,需要将数据实时的复制在历史数据库中,我们使用的是binlog+canal的思想,将每次数据库数据的变更转换成消息发出来,然后再操作这些消息达到数据复制的在京东,实现同样功能的组件,叫binlake接下来详细说下: 1.Binlogmysql有多种日志,常见的有: 错误日志( 阅读全文
posted @ 2022-02-16 09:38 hanease 阅读(564) 评论(0) 推荐(0)
摘要: 订阅专栏主要内容:第一部分 TBSchedule基本概念及原理1. 概念介绍2. 工作原理3. 源码分析4. 与其他开源调度框架对比第二部分 TBSchedule分布式调度示例1. TBSchedule源码下载2. 引入源码Demo开发示例3. 控制台配置任务调度4. selectTasks方法参数 阅读全文
posted @ 2022-02-16 09:35 hanease 阅读(708) 评论(0) 推荐(0)
摘要: 一、前言 任务调度管理作为基础架构通常会出现于我们的业务系统中,目的是让各种任务能够按计划有序执行。比如定时给用户发送邮件、将数据表中的数据同步到另一个数据表都是一个任务,这些相对耗时的操作通过任务调度系统来异步并行执行,既能提高任务的执行效率又能保障任务执行的可靠性。 实现的方式也是多种多样,比如 阅读全文
posted @ 2022-02-16 09:29 hanease 阅读(625) 评论(0) 推荐(0)
摘要: [京东技术]京东的MQ经历了JQ->AMQ->JMQ的发展,其中JQ的基于关系数据库,严格意义上讲称不上消息中间件,JMQ的存储是JFS和HBase,AMQ即ActiveMQ,本文说说JMQ。 JMQ是京东自主研发的一款消息中间件系统,具有高可用、数据高可靠等特性。广泛应用于公司内部系统,包括订单、 阅读全文
posted @ 2022-02-16 09:25 hanease 阅读(286) 评论(0) 推荐(0)