自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(260)
  • 收藏
  • 关注

转载 Elasticsearch(8) --- 聚合查询(Metric聚合)

Elasticsearch(8) --- 聚合查询(Metric聚合)在Mysql中,我们可以获取一组数据的 最大值(Max)、最小值(Min)。同样我们能够对这组数据进行 分组(Group)。那么对于Elasticsearch中我们也可以实现同样的功能,聚合有关资料官方文档内容较多,这里大概分3篇或者4篇博客写这个有关Elasticsearch聚合。官方对聚合有四个关键字: M...

2019-09-21 08:46:00 951

转载 Elasticsearch(7) --- 复合查询

Elasticsearch(7) ---复合查询复合查询有:bool query(布尔查询)、boosting query(提高查询)、constant_score(固定分数查询)、dis_max(最佳匹配查询)、function_score(函数查询)。 一、bool query(布尔查询) 1、概念定义 可以理解成通过布尔逻辑将较小的查询组合成较大的查询。Bool查询语法...

2019-09-16 22:51:00 962

转载 Elasticsearch(6) --- Query查询和Filter查询

Elasticsearch(6) --- Query查询和Filter查询这篇博客主要分为 :Query查询和Filter查询。有关复合查询、聚合查询也会单独写篇博客。 一、概念1、概念一个查询语句究竟具有什么样的行为和得到什么结果,主要取决于它到底是处Query还是Filter。两者有很大区别,我们来看下:Query context 查询上下文 这种语句在执行时既要计算文档...

2019-09-09 19:35:00 980

转载 Elasticsearch(5)--- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)

Elasticsearch(5)--- 基本命令这篇博客的命令分为ES集群相关命令,索引CRUD命令,文档CRUD命令。这里不包括Query查询命令,它单独写一篇博客。 一、ES集群相关命令ES集群相关命令主要是_cat命令,所以这里详细讲解下该命令。1、_cat命令_cat系列提供了一系列查询Elasticsearch集群状态的接口。/_cat/allocation ...

2019-09-04 22:54:00 294

转载 Elasticsearch(4)--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)...

Elasticsearch核心技术(2)--- 基本概念这篇博客讲到基本概念包括: Index、Type、Document。集群,节点,分片及副本,倒排索引。 一、Index、Type、Document1、Indexindex:索引是文档(Document)的容器,是一类文档的集合。索引这个词在 ElasticSearch 会有三种意思:1)、索引(名词)类比传统的关系型...

2019-09-02 22:45:00 1938

转载 Elasticsearch(3)--- Docker容器中运行ES、Kibana、Cerebro

Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES想加强ES有关的知识,看了阮一鸣老师讲的《Elasticsearch核心技术与实战》收获很大,所以接下来会跟着他来更加深入的学习ES。这篇博客的目的就是部署好ES和跟ES相关的辅助工具,同时通过Logstash将测试数据导入ES,这些工作完成之后,之后我们就可以在此基础上深入的去学习它。 ...

2019-08-29 23:15:00 701

转载 Mybatis框架(9)---Mybatis自定义插件生成雪花ID做为表主键项目

Mybatis自定义插件生成雪花ID做为主键项目先附上项目项目GitHub地址 spring-boot-mybatis-interceptor有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫。1、Mybatis框架---Mybatis插件原理2、java算法---静态内部类实现雪花算法该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用。...

2019-08-25 14:49:00 2408

转载 Mybatis框架(8)---Mybatis插件原理

Mybatis插件原理 在实际开发过程中,我们经常使用的Mybaits插件就是分页插件了,通过分页插件我们可以在不用写count语句和limit的情况下就可以获取分页后的数据,给我们开发带来很大的便利。除了分页,插件使用场景主要还有更新数据库的通用字段,分库分表,加解密等的处理。这篇博客主要讲Mybatis插件原理,下一篇博客会设计一个Mybatis插件实现的功能就是每当新增数据...

2019-08-21 22:25:00 231

转载 java算法(4)---静态内部类实现雪花算法

静态内部类单例模式实现雪花算法 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点主键自增:1、自增ID容易被爬虫遍历数据。2、分表分库会有ID冲突。UUID: 1、太长,并且有索引碎片,索引多占用空间的问题 2、无序。雪花算法就很适合在分布式场景下生成唯一ID,它既可以保证唯一又可以排序。为了提高生产雪花ID的效率,在这里面数据的运算都采用的是...

2019-08-18 15:58:00 334

转载 【java提高】(18)---静态内部类和非静态内部类

java提高](18)—静态内部类和非静态内部类 定义 放在一个类的内部的类我们就叫内部类。自己从开发到现在其实用到内部类主要在两个地方会考虑用内部类:1、使用静态内部类的单例模式2、将Json字符串转为Bean实体的时候,也考虑创建内部类其它比如网上说的通过内部类实现多继承,我还没有用过。这篇博客主要将静态内部类和非静态内部类中的成员内部类,至于局部内部类和匿名内部类这边就...

2019-08-17 15:53:00 229

转载 【java提高】(17)---Java 位运算符

Java 位运算符 &、|、^、~、<<、>> 以前学过有关java的运算符,不过开发了这么久也很少用过这个。现在由于开发需要,所以现在再来回顾整理下有关java的运算符。主要运算符有以下:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)。 一 与(&) 和 (|)1、&(按位...

2019-08-12 23:19:00 102

转载 java代码之美(13)--- Predicate详解

java代码之美(13)--- Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,再查看这些属性上是否有我们自定义的UUID注解。如果有该注解,那么就给该属性赋值UUID随机字符串,作为主键保存到数据库。所以前提条件就是获取带有UUID注解的属性,就需要用到Predicate。//获取所有带UUI...

2019-08-08 23:08:00 950

转载 SpringBoot(18)---通过Lua脚本批量插入数据到Redis布隆过滤器

通过Lua脚本批量插入数据到布隆过滤器有关布隆过滤器的原理之前写过一篇博客: 算法(3)---布隆过滤器原理在实际开发过程中经常会做的一步操作,就是判断当前的key是否存在。那这篇博客主要分为三部分:1、几种方式判断当前key是否存在的性能进行比较。2、Redis实现布隆过滤器并批量插入数据,并判断当前key值是否存在。3、针对以上做一个总结。 一、性能对比主要对以下方法...

2019-07-28 16:09:00 714

转载 算法(3)---布隆过滤器原理

算法(3)---布隆过滤器原理开发一个电商项目,因为数据量一直在增加(已达亿级),所以需要重构之前开发好的秒杀功能,为了更好的支持高并发,在验证用户是否重复购买的环节,就考虑用布隆过滤器。也顺便更加深入的去了解下布隆过滤器的原理,感觉还是蛮有意思的,这一连串的公式不静下心来思考,很容易被绕晕。 一、概述1、什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构...

2019-07-24 20:57:00 237

转载 分布式事务(4)---RocketMQ实现分布式事务项目

RocketMQ实现分布式事务有关RocketMQ实现分布式事务前面写了一篇博客1、RocketMQ实现分布式事务原理下面就这个项目做个整体简单介绍,并在文字最下方附上项目Github地址。一、项目概述1、技术架构项目总体技术选型SpringCloud(Finchley.RELEASE) + SpringBoot2.0.4 + Maven3.5.4 + RocketMQ4....

2019-07-17 00:43:00 163

转载 分布式事务(3)---RocketMQ实现分布式事务原理

分布式事务(3)—RocketMQ实现分布式事务原理 之前讲过有关分布式事务2PC、3PC、TCC的理论知识,博客地址:1、分布式事务(1)---2PC和3PC原理2、分布式事务(2)---TCC原理这篇讲有关RocketMQ实现分布式事务的理论知识,下篇也会示例 通过SpringCloud来实例RocketMQ实现分布式事务的项目。一、举个分布式事务场景列子:假设 A 给 ...

2019-07-15 22:51:00 197

转载 分布式事务(2)---TCC原理

分布式事务(2)---TCC原理 上篇讲过有关2PC和3PC理论知识,博客:分布式事务(1)---2PC和3PC理论我的理解:2PC、3PC还有TCC都蛮相似的。3PC大致是把2PC的第一阶段拆分成了两个阶段,而TCC我感觉是把2PC的第二阶段拆分成了两个阶段。一、概念 1、概念TCC又称补偿事务。其核心思想是:"针对每个操作都要注册一个与其对应的确认和补偿(撤销操作)"。它分...

2019-07-11 21:00:00 152

转载 分布式事务(1)---2PC和3PC原理

分布式事务(1)---2PC和3PC原理 分布式事物基本理论:基本遵循CPA理论,采用柔性事物特征,软状态或者最终一致性特点保证分布式事物一致性问题。分布式事物常见解决方案:2PC两段提交协议3PC三段提交协议(弥补两端提交协议缺点)TCC或者GTS(阿里)消息中间件最终一致性使用LCN解决分布式事物,理念“LCN并不生产事务,LCN只是本地事务的搬运工”。一、两阶段...

2019-07-10 22:43:00 468

转载 RocketMQ(7)---顺序消费

RocketMQ顺序消费 如果要保证顺序消费,那么他的核心点就是:生产者有序存储、消费者有序消费。一、概念 1、什么是无序消息无序消息 无序消息也指普通的消息,Producer 只管发送消息,Consumer 只管接收消息,至于消息和消息之间的顺序并没有保证。举例 Producer 依次发送 orderId 为 1、2、3 的消息,Consumer 接到的消息顺序有可能是 1、...

2019-07-05 12:29:00 280

转载 RocketMQ(6)---发送普通消息(三种方式)

发送普通消息(三种方式)RocketMQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、单向(Oneway)发送。注意 :顺序消息只支持可靠同步发送。GitHub地址: https://github.com/yudiandemingzi/SpringBootBlog一、概念 1、可靠同步发送原理:同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才发下一个...

2019-07-03 09:28:00 1026

转载 RocketMQ(5)---RocketMQ重试机制

RocketMQ重试机制消息重试分为两种:Producer发送消息的重试 和 Consumer消息消费的重试。一、Producer端重试Producer端重试是指: Producer往MQ上发消息没有发送成功,比如网络原因导致生产者发送消息到MQ失败。看一下代码:@Slf4jpublic class RocketMQTest { /** * 生产者组 ...

2019-07-02 00:03:00 889

转载 RocketMQ(4)---RocketMQ核心配置讲解

RocketMQ核心配置讲解RocketMQ的核心配置在broker.conf配置文件里,下面我们来分析下它。 一、broker.conf配置 下面只列举一些常用的核心配置讲解。1、broker.conf核心配置讲解# nameServer地址,如果nameserver是多台集群的话,就用分号分割namesrvAddr=172.1.21.29:9876;143.13.262....

2019-07-01 19:28:00 1877

转载 SpringBoot(17)---SpringBoot整合RocketMQ

SpringBoot整合RocketMQ 上篇博客讲解了服务器集群部署RocketMQ 博客地址:RocketMQ(2)---Docker部署RocketMQ集群这篇在上篇搭建好的基础上,将SpringBoot整合RocketMQ实现生产消费。GitHub地址: https://github.com/yudiandemingzi/spring-boot-study 一、搭建步骤...

2019-06-30 14:54:00 393

转载 RocketMQ(2)---Docker部署RocketMQ集群

RocketMQ(2)—Docker集群部署RocketMQ =前言=1、因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服务器上。2、这里有关 Broker 和 NameServer 分别都做了了集群部署(各部署两个),且BroKer是按两主进行部署。之所以选用Docker部署主要还是考虑 :通过Dock...

2019-06-28 09:54:00 582

转载 RocketMQ(1)-架构原理

RocketMQ(1)-架构原理RocketMQ是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ的特点是纯JAVA实现;集群和HA实现相对简单;在发生宕机和其它故障时消息丢失率更低。一、RocketMQ专业术语 先讲专业术语的含义,后面会画流程图来更好的去理解它们。Producer消息生产者,位于用户的进程内,Producer通过NameServer获取所有Br...

2019-06-27 00:09:00 142

转载 Redisson实现分布式锁(3)—项目落地实现

Redisson实现分布式锁(3)—项目落地实现有关Redisson实现分布式锁前面写了两篇博客作为该项目落地的铺垫。1、Redisson实现分布式锁(1)---原理2、Redisson实现分布式锁(2)—RedissonLock这篇讲下通过Redisson实现分布式锁的项目实现,我会把项目放到GitHub,该项目可以直接运用于实际开发中,作为分布式锁使用。一、项目概述 1、...

2019-06-20 17:21:00 233

转载 Redisson实现分布式锁(2)—RedissonLock

Redisson实现分布式锁(2)—RedissonLock有关Redisson实现分布式锁上一篇博客讲了分布式的锁原理:Redisson实现分布式锁---原理这篇主要讲RedissonLock和RLock。Redisson分布式锁的实现是基于RLock接口,RedissonLock实现RLock接口。一、RLock接口 1、概念public interface RLock e...

2019-06-19 23:00:00 599

转载 Redisson实现分布式锁(1)---原理

Redisson实现分布式锁(1)---原理有关Redisson作为实现分布式锁,总的分3大模块来讲。1、Redisson实现分布式锁原理2、Redisson实现分布式锁的源码解析3、Redisson实现分布式锁的项目代码(可以用于实际项目中)本文只介绍Redisson如何实现分布式锁的原理。其它的会在接下来的博客讲,最后有关Redisson实现分布式锁的项目代码的博客中会放上...

2019-06-18 22:44:00 490

转载 SpringBoot(16)—@ConditionalOnBean与@ConditionalOnClass

@ConditionalOnBean与@ConditionalOnClass上一篇讲的@Conditional可以通过条件控制是否注入Bean,这篇讲下有关Bean其它几个常用的注解使用方式@ConditionalOnBean // 当给定的在bean存在时,则实例化当前Bean@ConditionalOnMissingBean // 当给定的在bean不...

2019-06-15 14:48:00 2026

转载 SpringBoot(15)—@Conditional注解

SpringBoot(15)—@Conditional注解作用 @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean。 一、概述 1、@Conditional注解定义@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy....

2019-06-13 23:41:00 121

转载 SpringBoot(14)—注解装配Bean

SpringBoot(14)—注解装配BeanSpringBoot装配Bean方式主要有两种通过Java配置文件@Bean的方式定义Bean。通过注解扫描的方式@Component/@ComponentScan。 一、当前项目装配Bean 创建项目名称为create-bean。1、@Component方式@Component("componentBean")publi...

2019-06-11 22:38:00 133

转载 【分布式架构】(10)---基于Redis组件的特性,实现一个分布式限流

分布式---基于Redis进行接口IP限流场景 为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃,所以我们需要对一些特定的接口进行IP限流,即一定时间内同一IP访问的次数是有限的。实现原理 用Redis作为限流组件的核心的原理,将用户的IP地址当Key,一段时间内访问次数为value,同时设置该Key过期时间。比如某接口设置...

2019-06-05 23:03:00 108

转载 【java提高】(16)---java注解(Annotation)

java提高(16)---java注解注解含义注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过类的反射机制来解析注解。 一、JDK自带注解JDK1.5之后内部提供的三个注解 @Deprecated #废弃,过时。 @Override #重写、覆盖。 @SuppressWarnings #压...

2019-06-03 22:22:00 123

转载 【IDEA】(4)---很好用的DEBUG功能

IDEA—DEBUG功能一、常用快捷键 快捷键并不是完全一样的,我这边是MAC安装的IDEA, 这边最主要还是知道DEBUG时常用的功能。1、快捷键F7 #进入下一步,如果当前行是一个方法,则进入当前方法体内F8 #进入下一步,如果当前行是一个方法,则不进入当前方法体内F9 #跳到下一个断点,如果没有则直接运行结束Alt + F8 #表达式求值Alt...

2019-05-29 23:17:00 168

转载 【IDEA】(3)---非常实用提高开发效率和水平的插件

IDEA(3)—Mac中IDEA插件IDEA提供了许多很实用的插件,能够大大提高开发效率和开发水平,这里列举几个很实用的插件。说明:这边的IDEA是MAC系统。一、插件管理界面简介1、界面位置安装插件三个按钮的作用Install JetBrains Plugin 此按钮的功能是安装JetBrains的官方插件Browes repositories 此按钮的功能是浏览官方...

2019-05-27 22:21:00 210

转载 【IDEA】(2)---MAC代码模版

IDEA(2)—MAC代码模版IDEA提供了许多的自带代码模版,这些模版主要是对于我们经常开发用到的代码制作成一个模版,比如for循环,这个是经常会用到的代码,如果没有代码模版,我们需要一个一个手动输入,有了代码模版也只需输入该模版的快捷键,就会自动生成for循环相关代码,提高开发效率。一、自带代码模版位置 Preferences —> Editor —> Live ...

2019-05-27 19:42:00 134

转载 【IDEA】(1)---MAC下常用快捷键

IDEA常用快捷键IDEA是一个很好的开发工具,用好它能大大提高我们的开发效率,所以这里学习总结下有关IDEA实用的一些教程,比如常用快捷键,如何自定义代码模版,如何debug异常断点,或者说多线程下的debug如何实现。接下来都会总结,这篇主要总结常用快捷键。一、快捷键1、键盘键说明⌥ = Option = Alt⌃ = Control = Ctrl↩︎ = Return...

2019-05-24 22:58:00 156

转载 Shell(2)—数组

Shell(2)—数组常用的 Bash Shell 只支持一维数组,不支持多维数组。 一、概念Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。Shell 数组元素的下标也是从 0 开始计数。1、Shell 数组的定义在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔。由此,定义数组的一般形式为:array_name=(ele1 ele2 ...

2019-05-21 21:06:00 213

转载 MySQL(12)---纪录一次left join一对多关系而引起的BUG

MySQL(11)---纪录一次left join一对多关系而引起的bugBUG背景 我们有一个订单表 和 一个 物流表 它们通过 订单ID 进行一对一的关系绑定。但是由于物流表在保存订单信息的时候没有做判断该订单是否已经有物流信息,这就变成同一个订单id在物流表中存在多条数据,也就变成了本来订单表只有100条纪录,而left join 物流表后,所查询的订单数据远远大于100条。...

2019-05-20 23:49:00 596

转载 MySQL(11)---约束

MySQL(11)---约束含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。先把Mysql几种约束列出来:主键约束 外键约束 唯一性约束 非空约束 默认值约束 自增约束MySQL不支持check约束,但可以使用check约束,而没有任何效果。 一、语法不多说理论,说下语法和示例就好。1、建表时直接建约束drop table student;CRE...

2019-05-20 23:49:00 84

空空如也

空空如也

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

TA关注的人

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