6 贾红平

尚未进行身份认证

本人喜欢技术,一致从事于大数据搜索推荐系统架构及其相关工作,最近几年开始熟悉人工智能和机器学习领域,擅长高可用高并发系统架构设计..技术的追求从没有停止过..

等级
TA的排名 2w+

Kylin

Kylin第1章 概述1.1 Kylin定义Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。1.2 Kylin架构1)REST ServerREST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平...

2020-01-07 17:51:00

Elasticsearch

Elasticsearch第一章 基础概念1.1 基本概念nrt接近实时搜索,索引有1秒的延迟index存储数据的索引cluster代表一个集群,去中心化节点document索引的实体mapping文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤type每个文档都有与之对应的类型shard索引分片,分片的数量...

2020-01-07 17:30:26

Redis-技术汇总

RedisRedis-优势总结1 性能高,读每秒是11w,写每秒是8w2 丰富的数据结构,支持string,list,set,hash,sortedset3 原子性操作,要不全部成功,要不全部失败4 发布与订阅,完成类似队列功能5 分布式锁的内在支持6 高可用,高性能,支持集群,支持哨兵,支持读写分离Redis-使用场景数据缓存(商品数据、新闻、热点数据)单点登录...

2020-01-07 12:29:47

Thread技术体系

并发编程专题第一章 线程入门基本概念串行Ø 一个任务执行完再去执行另一个任务并行Ø 用齐头并进的方式去完成任务,其实只是时间片的切换,离开时间片,无意义并发Ø 一段时间内以交替的方式去完成任务进程Ø 资源分配的最小单位线程Ø CPU调度的最小单位,共享进程中的资源,必须依附于进程,不能独立存在任务Ø 线程要完成特定计算的任务并发编程意义Ø 充分利用CPU资源Ø 加...

2020-01-07 11:45:13

maven 模块打包 找不到符号

今天,要对之前的一个老系统改造,在改造过程当中,遇到maven打包找不到符号,具体报的错误如下所示说实话,解决这个错误花费了很长时间,所以特此记录下来,留着做警惕。因为要改造的系统是一个一体化(没有分模块),如下图所示然后就开始进行模块的拆分,如下所示然后把配置文件相关的 ,都配置好,使用maven install 进行打包,第一个seds-model打包成功,等到第二...

2019-12-28 17:08:56

java 多线程批量插入数据 带返回值

之前写过一篇文章是关于多线程如何操作数据库,且控制事务的全局回滚,今天继续上一次进行扩展,上一次主要是针对单个线程操作没有返回值,而有时候我们希望进行多个线程批量操作数据库的同时,能返回每次成功插入到数据库的主键,这个时候就需要callable接口上场了,但是如果是希望线程执行结果是有返回的,还有很多地方需要注意的!特别是多个子线程和主线程协同操作,下面看一下具体的业务场景描述场景描述:现...

2019-12-17 19:11:28

springboot后端跨域

在项目当中,现在开发都是前后端分离,有时候会产生请求的跨域,这个时候一般的解决方案有两种,一种是基于nginx进行跨域配置,还有一种是后端通过实现filter来允许跨域,下面看一下通过filter实现的跨域代码:@Component@Order(Ordered.HIGHEST_PRECEDENCE)public class CorsFilter implements Filter {...

2019-12-05 18:29:34

springmvc获取request,response,session对象

在springboot有时候也需要获取request,response,session等对象,为了方便特封装一个父类,直接调用即可。import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.context...

2019-11-06 17:45:02

Spring源码扩展篇-BeanDefinitionRegistryPostProcessor

把一个bean注册到spring容器,一般有3个方法可以实现:我们开发的类,如果想注册到spring容器,让spring来完成实例化,常用方式如下:1. xml中通过bean节点来配置;2. 使用@Service、@Controller、@Conponent等注解;3.使用bean自定义注册工厂处理器可以参考下面它的执行核心原理和步骤boolean reiterate = ...

2019-11-01 18:53:09

Spring源码扩展篇-BeanPostProcessor

在spring中关于对bean的扩张可以分为两种:1 基于所有bean:可以使用beanfactorypostproccessor进行修改,但是这种修改是全局的,也就是所有的bean都会被进行修改2 基于单个bean:只针对单个特定的bean的实例化修改,这种情况可以使用BeanPostProcessor,也是接下来要简单介绍和使用的从spring源码的来看,主...

2019-11-01 18:51:28

Spring源码扩展篇-BeanFactoryPostProcessor

spring容器初始化时,从资源中读取到bean的相关定义后,保存在beanFactory的成员变量中,在实例化bean的操作就是依据这些bean的定义来做的,而在实例化之前,spring允许我们通过自定义扩展来改变bean的定义,定义一旦变了,后面的实例也就变了,而beanFactory后置处理器,即BeanFactoryPostProcessor就是用来改变bean定义的;这里总结一下sp...

2019-11-01 18:49:54

Spring源码-内部好用的工具类

今天主要说一下,大家在研读或者使用spring的过程中,可能忽略一些了spring提供的内部工具类,而且这些内部工具对于我们开发人员使用起来是非常的爽,效率也高,所以今天就简单介绍几个.1AnnotationUtils:处理注解的工具类介绍Class提供的获取注解相关方法:1.1 <A extends Annotation>A getAnnotation(Cla...

2019-11-01 18:59:48

java多线程之CountDownLatch

今天主要简单说明一下,如何使用countdownlatch来完成多线程之间的协助操作,看一下具体的业务背景:开发同事,需要对大量数据进行插入操作,因为数据量比较大,所以自然而然会想到用到多线程来提高效率,但是问题来了,就是因为一旦牵涉插入库操作,势必会牵涉到事务,本质需求就是,当多个线程进行插入操作,等所有线程执行完毕,一旦发现有一个或多个子线程在执行过车过程中出现了异常,就需要对事务进行全局...

2019-10-15 16:37:14

ES-索引查询机制(三)

ES查询可以分为两大类,一类是Get,一类是Search,下面说一下Es内部是怎么实现的.一:Get检索通过ID检索特定的Doc> 查询的时候是先查询内存中的TransLog,如果找到就立即返回> 如果没找到再查询磁盘上的TransLog> 如果还没有则再去查询磁盘上的Segment(原始Lucene)二:Search检索通过query查询来匹配对应的D...

2019-09-23 19:07:07

ES-索引写入机制(二)

ES在建立索引的时候和Lucene是有一定区别的,因为它对Lucene进行了一定的优化,内部还牵涉到分布式索引的分发,下面就详细的分析一下写入原理思想以及流程和对应节点的处理一:写入原理以及特性1 写入索引的时候,首先先写入到lucene,然后再写入到translog,主要原因如下.Lucene的内存写入会有很复杂的逻辑,很容易失败.避免TransLog中有大量无效记录,减少rec...

2019-09-23 19:14:22

ES-基础概念和原理(一)

ES其实就是基于lucene之上封装的一个分布式 索引框架,所以lucene拥有的特性,它都是有的,同时因为它使基于分布式的,所以对很多的功能进行了扩展,要想掌握ES,需要先熟悉一下Lucene,因为熟悉了Lucene之后,不论是学ES,还是Solr都是比较容易的.在这里插一句经常有人在选型的时候,不知道用ES还是Solr,建议可以参考下面的方案:如果系统是从头接入搜索引擎,那么就不要犹豫了,直接...

2019-09-23 19:05:13

MySQL Binlog 解析工具 -Maxwell 详解

maxwell 简介Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。官网(http://m...

2019-09-19 15:35:32

Maven-jar的依赖打入

开发过程中,我们通常会把一个jar打包成一个组件给其他同事使用,但有时想需要把相关的依赖的jar都打入,这个时候可以使用下面的方法,没啥就是为了记录一下,方便以后使用 <plugins> <plugin> <groupId>org.apache.maven.plug...

2019-09-06 14:32:38

Spring-同个接口注入多个实例

一般开发,都是一个接口对应一个实现类,但是有时候有些业务场景可能面临一个接口对应多个实现类,这个时候如果直接使用@Autowire注入有可能就会报错,下面就把常用解决方法阐述一下:比如下面这个服务接口,就有多个实现//生产消息服务接口public interface IProducerService {}//使用kafak发送消息@Service("kafkaProducerServ...

2019-09-04 20:46:49

Spring-使用事务面板

正常开发,我们一般会使用基于事务的注解来实现事务的机制,但是有的时候或者某种场景,完全通过注解是达不到效果的,比如 我们想完成以下的场景:1 根据条件,手动回滚或者提交事务2 获取事务是否已经彻底完成的状态3 设置事务具体的回滚point等,一句话想更好灵活的去控制事务的使用,这个时候推荐自定义事务的实现,一般通过如下两种方式3.1 基于TransactionTemplate使...

2019-08-29 00:28:36

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。