自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贾红平

技术是一件很有乐趣的事情

  • 博客(191)
  • 资源 (2)
  • 收藏
  • 关注

原创 git 远程删除不需要的文件

git clone [email protected]:dev/ncrm.git23 find . -name “target”24 find . -name “target”|xargs rm -rf25 find . -name “target”26 git commit -am “delete target”27 pwd28 cd ncrm29 git commit -am “delete target”30 git push origin31 git push o

2021-10-08 16:54:11 349

原创 设计模式之业务实战培训

设计模式之业务实战培训本文章通过把日常常用的设计模式,就如何结合业务并在整个业务项目中落地,做了总结。有来源于真实的业务场景,有来源大厂案例,有来源于开源框架中的经典案例,只是为了做个笔记,不喜勿喷。一:代理模式模式定义给一个对象创建一个代理对象,通过代理对象可以使用该对象的功能。模式本质控制对象访问使用场景权限控制:用户在执行某个操作的时候,需要有相关的权限方法代理:程序在执行一个方法之前或之后增加一些逻辑处理功能封装:为了屏蔽某些功能的细节,让用户无感知(上传文件...

2021-08-04 10:44:47 757

原创 2021-03-30

远程调试使用特定JVM参数运行服务端代码要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是:-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}本地连接远程服务器debug端口打开Intellij IDEA,在顶部靠右的地方选择”Edit Configurations…”,进去之后点击+号,选择”Remote”,按照下图的只是填写红框内的内容.

2021-03-30 12:41:33 302

原创 常用设计模式概括

开发中会经常用到的设计模式:1 责任链模式:实现方式一般通过链表,把各个能处理的子类给串起来,看实力,来源于阿里的开源框架 sentitle:public interface ProcessorSlot { void process(Context context) throws Throwable; void nextProcess(Context context) throws Throwable;}抽象类public abstract class Abstrac

2021-02-25 16:25:09 227

原创 Spring事务不生效的场景分析

1、数据库引擎不支持事务2、没有被 Spring 管理如下面例子所示:// @Servicepublic class OrderServiceImpl implements OrderService {@Transactionalpublic void updateOrder(Order order) {// update order}}如果此时把 @Service 注解注释掉...

2020-04-16 17:29:43 3538 2

转载 海量数据面试题整合

海量数据面试题整理   1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?  方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。  s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(...

2020-03-16 14:29:08 380

原创 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 801

原创 Elasticsearch

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

2020-01-07 17:30:26 388

原创 Redis-技术汇总

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

2020-01-07 12:29:47 629

原创 Thread技术体系

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

2020-01-07 11:45:13 855

原创 maven 模块打包 找不到符号

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

2019-12-28 17:08:56 7984

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

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

2019-12-17 19:11:28 3463

原创 springboot后端跨域

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

2019-12-05 18:29:34 429

原创 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:26 687

原创 Spring源码扩展篇-BeanDefinitionRegistryPostProcessor

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

2019-11-01 21:12:14 380

原创 Spring源码扩展篇-BeanPostProcessor

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

2019-11-01 21:01:12 363

原创 Spring源码扩展篇-BeanFactoryPostProcessor

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

2019-11-01 20:40:08 325

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

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

2019-11-01 20:25:11 495

原创 java多线程之CountDownLatch

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

2019-10-15 17:00:57 539

原创 ES-索引查询机制(三)

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

2019-09-24 19:29:11 1121

原创 ES-索引写入机制(二)

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

2019-09-24 18:29:13 511

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

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

2019-09-24 16:49:59 732

转载 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:38:24 1429

原创 Maven-jar的依赖打入

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

2019-09-06 14:34:49 203

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

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

2019-09-04 20:54:41 2547

原创 Spring-使用事务面板

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

2019-08-29 00:28:36 159

原创 Springboot-整合动态多数据源

一般在实际开发中,可能需要牵涉到多个数据源,这个时候就需要在使用service方法的时候,动态注入要使用的数据源,下面就简单分析一下如何实现1 提取数据源的公用属性一般如下所示@Configuration@Slf4j@Datapublic class CommonDataSourceProperties { /** * 自动提交从池中返回的连接 */...

2019-08-28 23:58:07 393

原创 spring-事务之嵌套事物分析

一 非嵌套事务如果是单事务的话,一般在方法上加上@Transactional注解就可以使改方法进行生效,使用也是比较简单的,但是如果牵涉到一个方法里面调用了里一个服务里面的方法,且该方法上面也加上了@Transactional注解,这个时候,事物就可能不一定生效了,看下面的代码ServiceA { void methodA() { ...

2019-08-28 23:38:46 637

原创 Spring-事务之总体概述

一 事务特性原子性 (atomicity):强调事务的不可分割. 一致性 (consistency):事务的执行的前后数据的完整性保持一致. 隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰 持久性(durability) :事务一旦结束,数据就持久到数据库如果不考虑隔离性引发安全性问题: 脏读 :一个事务读到了另一个事务的未提交的数据 不可重复读...

2019-08-28 23:14:22 133 1

原创 mysqlbinglog-解析组件maxwell

什么是Maxwell?这是一个读取MySQL binlogs并将行更新写入Kafka,Kinesis,RabbitMQ,Google Cloud Pub / Sub或Redis(Pub / Sub或LPUSH)作为JSON的应用程序。下载下载二进制发行版:https://github.com/zendesk/maxwell/releases/download/v1.17.1/maxwe...

2019-07-15 09:35:59 528

原创 mysqlbinglog-解析技术方案汇总

2019-05-09 18:13:56 611

原创 apollo-使用注意事项

总结一下在使用apollo的有关注意事项1 application和namespace配置了同样的key,会存在覆盖关系2 关于客户端更新,Apollo默认定时频率默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property:apollo.refreshInterval来覆盖3 关于服务端更新,apollo是通过Http Long Polling,他的本质...

2019-05-09 18:09:48 1162

原创 apollo-应用系统接入实例讲解

应用系统如何接入Apollo,接入方式比较多,针对使用的开发模式不同而不同> 项目是纯java> 项目是springboot> 项目是springcloud,因为数据自生产系统都是基于微服务,所以我们就用这个进行详细介绍下面以校验系统为实例。进行说明1 增加配置文件如下图所示配置文件说明 application.yaml:配置系统所有用...

2019-05-09 18:09:03 2970

原创 Apollo-原理以及架构图分析

核心组件ConfigService 提供配置获取接口 提供配置推送接口 服务于Apollo客户端 AdminService 提供配置管理接口 提供配置修改发布接口 服务于管理界面Portal Client 为应用获取配置,支持实时更新 通过MetaServer获取ConfigService的服务列表 ...

2019-05-09 18:07:57 4381

原创 apollo-整体介绍以及核心概念

简介Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。 功能介绍统一管理不同环境、不同集群的配置 Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。 ...

2019-05-09 18:06:45 1535

原创 分布式配置中心组件选型介绍

前提介绍 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 并且随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。 ...

2019-05-09 18:05:23 807 1

转载 从分布式到微服务到Service Mesh

自从几十年前第一次引入分布式系统这个概念以来,出现了很多原来根本想象不到的分布式系统使用案例,但同时也引入了各种各样的新问题。当这些系统还是比较少比较简单的时候,工程师可以通过减少远程交互的次数来解决复杂性问题。处理分布式问题最安全的方法是尽可能避免远程交互,虽然这可能意味着要在多个系统上存放重复的逻辑和数据。行业上的需求推动着我们前进的步伐,分布式系统的组成从几个大型的中央电脑发展成为数...

2018-08-27 15:05:45 363

原创 Lucene 学习总结之七-索引流程

1 IndexReader打开索引文件,读取并打开指向索引文件的流。1.1.1、找到最新的segment_N文件1.1.2、通过segment_N文件中保存的各个段的信息打开各个段1.1.3、得到的IndexReader对象如下 2 将查询语句转换为查询对象Query对象树2.1、创建Weight对象树,计算Term Weight2.2、重写Query对象树2.3、创建Weigh...

2018-08-19 17:59:45 274

转载 Lucene学习总结之六:Lucene打分公式的数学推导

在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。Lucene的打分公式非常复杂,如下:在推导之前,先逐个介绍每部分的意义:t:Term,这里的Term是指包含域信息的Term,也即title:hello和content:hello是不同的Term...

2018-08-19 16:55:38 248

转载 Lucene学习总结之五:Lucene段合并(merge)过程分析

一、段合并过程总论IndexWriter中与段合并有关的成员变量有: HashSet&lt;SegmentInfo&gt; mergingSegments = new HashSet&lt;SegmentInfo&gt;(); //保存正在合并的段,以防止合并期间再次选中被合并。 MergePolicy mergePolicy = new LogByteSizeMergePolicy...

2018-08-19 16:45:21 1601 1

RocketMQ学习笔记 .pdf

rocketmq有浅到深,带有实战案例和源码

2021-05-04

storm企业级运维 调优 实战

基于storm的运维 调优和相关的真实案例,主要从storm的基础架构开始,然后有重点的分析核心架构和对应的真实案例,以及如何解决日常问题,从安装部署和启动以及运行等多个角度进行说明,最后再介绍如何进行storm的生产调优

2018-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除