自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 秒杀系统的实现

方案一:数据库实现秒杀系统的实现按照正常的购买流程:查询商品库存,库存大于0时,生成订单,去库存。如果出现并发,导致在查询商品库存的时候,库存会一直出现大于0的情况,出现超卖现象。基于mysql的事务和锁实现方式:1:开启事务 2:查询库存,并显示的设置写锁(排他锁):SELECT * FROM table_name WHERE … FOR UPDATE 3:生成订单 4:去库存,隐示的设置写锁(排他锁):UPDATE goods SET counts = counts – 1 WHE

2020-05-14 20:57:31 244

转载 Mybatis与iBatis的主要区别对比

他们都是优秀的持久层框架,MyBatis是现在最常用的持久层框架,可以动态地拼接sql语句,非常人性化,更适合逻辑复杂的sql;iBatis就是MyBatis前身,他们有很多相似的地方,今天主要讲一下sqlMap里面的变化。1. 传入参数iBatis是parameterClass,而MyBatis是可以不写的,也可以用parameterType;parameterClass,而MyBatis是可以不写的,也可以用parameterType;iBatis的传出参数关键字是:resultClass,而My

2020-05-13 17:21:32 114

转载 HBase连接正确方式

截至到目前 (2019.04),HBase 有两个主要的版本,分别是 1.x 和 2.x ,两个版本的 Java API 有所不同,1.x 中某些方法在 2.x 中被标识为@deprecated过时。所以下面关于 API 的样例,我会分别给出 1.x 和 2.x 两个版本。完整的代码见本仓库: Java API 1.x Examples Java API 2.x Exampl...

2019-10-16 14:13:43 384

转载 互联网金融做大数据风控的九种维度

在互联网金融迅猛发展的背景下,风险控制问题已然成为行业焦点,基于大数据的风控模型正在成为互联网金融领域的热门战场。那么,大数据风控到底是怎么一回事呢?与传统风控相比,它又是怎样来进行风险识别的呢?本文对此进行了探讨。大数据能够进行数据变现的商业模式目前就是两个,一个是精准营销,典型的场景是商品推荐和精准广告投放,另外一个是大数据风控,典型的场景是互联网金融的大数据风控。金融的本...

2019-09-26 15:07:07 203

转载 建造者模式

建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常见的例子,想必大家都买过电脑,电脑的生产或者组装其实就是属于建造者模式,我们知道,电脑的生产都需要安装CPU、...

2019-08-29 15:33:48 412 1

转载 springboot集成hbase

最近手里有个项目是SpringBoot搭建的,主要使用spring-data-hadoop-hbase来实现。参考了几篇网上的文章,用的都是xml方式,当然官网给的sample也是xml方式,具体可以参考https://github.com/spring-projects/spring-hadoop-samples/tree/master/hbase这里将这个方式简单转换成javaconfig...

2019-08-28 15:30:43 6524 1

转载 hbase scan的java操作

public class HbaseTest { public static void main(String[] args) throws Exception { //构建基本信息 String table = "t_userBehavior2"; final TableName tableName = TableName.valueOf...

2019-08-28 11:15:51 2080

转载 Hbase常用操作命令及JavaAPI

文章目录一、Hbase常用操作命令 1. 进入hbase 2. 浏览所有表 3. 查看表结构 4. 创建表 5. 修改表结构 6. 添加数据 7. 查看数据 8. 修改数据 9. 删除数据 10. 删除表 11. 帮助 二、Hbase Java操作API一、Hbase常用操作命令1. 进入hbase./hbase shell...

2019-08-27 20:49:05 297

转载 css 定位

一、文档流的概念指什么?有哪种方式可以让元素脱离文档流?文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。并最终窗体自上而下分成一行行,并在每行中按从左到右的顺序排放元素。脱离文档流即是元素打乱了这个排列,或是从排版中拿走。 让元素脱离文档流的方法有:浮动和定位。二、有几种定位方式,分别是如何实现定位的,使用场景如何?CSS定位方式有四种:默认定位(static)...

2019-08-22 15:15:57 143

转载 CSS浮动(float,clear)

很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程。 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家。写在前面的话: 由于CSS内容比较多,小菜没有精力从头到尾讲一遍,只能有针对性的讲解。 如果读者理解CSS盒子模型,但对于浮动不理解,那么这篇文章可以帮助你...

2019-08-22 15:14:43 73

转载 深入理解vue中的slot与slot-scope

深入理解vue中的slot与slot-scope作者/云荒杯倾写在前面vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项在使用频率、使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经可以写基础组件了”的想法,于是就关闭了vue的说明文档。实际上,插槽的概念很简单,下面通过分三部分来讲...

2019-07-30 15:50:54 83

转载 sparksql使用

本篇开始介绍Spark SQL的入门示例Maven中引入<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.3.1</version></...

2019-07-12 16:40:57 128

转载 IDEA 环境下Scala 和 Java 混合开发

正常情况下,即使安装好了Scala和IDEA scala插件,我们新建的maven项目,IDEA不会出现新建scala的选项要想IDEA自动有这个选项还需要在Pom.xml引入build插件 <build> <plugins> <plugin> <groupId>o...

2019-07-12 10:44:07 528

转载 springboot下用aop实现异步调用和重试功能

我们在开发中,调用第三方接口时,往往是提交数据,要异步去获取数据;今天我们用一个利用spring的安排来实现一下异步调用和异步重试的功能;这个功能的结构图第一步:创建一个注解Retry@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Retry { /**...

2019-06-18 15:10:32 395

原创 prometheus的指标

##prometheus中便签类型prometheus中Histogram和Summary类型的:- (1)在prometheus client中区分Histogram和Summary,分别表示两个类,可以依次创建指标HistogramHistogram 由 <basename>_bucket{le="<upper inclusive bound>"},<...

2019-06-17 17:08:53 2922

原创 Spring Boot 2.x监控数据可视化采用micrometer-registry-prometheus

参考文章:Spring Boot 2.x监控数据可视化(Actuator + Prometheus + Grafana手把手)https://blog.csdn.net/xudc0521/article/details/89916714实战:micrometer+prometheus+grafana搭建Java程序的监控系统https://blog.csdn.net...

2019-06-15 15:03:35 4147

转载 如何配置prometheus的Java客户端

prometheus是目前很火的监控系统,其本质上来说是一个时间序列数据库(TSDB),采用golang开发,支持多维度(标签),采用拉取模式,以丰富的export,完善的生态成为目前社区内的监控标配。这篇文章不说别的,只说java客户端如何埋点。推荐大家看官方文档:https://github.com/prometheus/client_java第一步 引入Java客户端(gradl...

2019-06-15 14:48:12 2496

转载 Prometheus 使用Client Java构建Exporter程序

使用Client Java构建Exporter程序client_java是Prometheus针对JVM类开发语言的client library库,我们可以直接基于client_java用户可以快速实现独立运行的Exporter程序,也可以在我们的项目源码中集成client_java以支持Prometheus。自定义Collector在client_java的simpleclient模块中提供了自...

2019-06-15 14:28:49 5795 3

转载 DelayQueue队列详解

概述DelayQueue是java.util.concurrent中提供的一个很有意思的类。本文将会对DelayQueue做一个介绍,然后列举应用场景。并且提供一个Delayed接口的实现和 Sample 代码。DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期...

2019-06-10 16:42:22 2322

转载 logback动态设置某个类的日志级别

假设一下,现在有这么个情况:你调别人的接口出问题了,但是怎么排查都定位不了原因。只能借助更详细的日志信息,这个时候,又不想把全局的日志级别调低,毕竟调低对并发量大的应用来说,瞬间会涌出很多很多日志信息。最好的情况就是,只调整出问题的那个类的日志级别。那怎么办呢?于是就有了下面的方案:定向修改某个class的logger日志级别。public void testLog(Str...

2019-05-29 16:32:41 1514

转载 Logback中使用TurboFilter

可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别。我们在使用Java开发各种项目的时候必然的会引入很多框架,这些框架通过堆叠的方式完成所要提供的业务服务(一个服务请求在进入后会在这些框架中兜一圈,然后返回结果),当一个比较底层的框架在处理过程中抛出了异常之后,这个异常会不...

2019-05-29 16:31:13 685

转载 slf4j MDC使用

slf4j MDC使用最近也是在项目代码里发现一个地方有个MDC.put(),忍不住好奇点了进去,于是知道了MDC这个东西,细研究一下,发现还真是个好东西。MDC解决了什么问题MDC全名Mapped Diagnostic Contexts,是slf4j提供的一个API,主要功能就是在多线程环境下进行日志调用链路的跟踪,比如在一次事务处理中,会经过多个处理的流程,为了定位问题方便,在...

2019-05-28 11:28:11 823

转载 Spring StateMachine详解

(转https://www.codetd.com/article/1010726)一、状态机有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、售后)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。状态机的要素:状态机可归纳为4个要素,现态...

2019-05-24 17:01:44 9310 1

转载 Maven中 jar包冲突原理与解决办法

Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题。本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲突的解决办法。一、Maven中jar包冲突产生原因MAVEN项...

2019-05-22 19:20:52 123

转载 Spring StateMachine使用笔记

Spring StateMachine使用笔记Spring StateMachine使用笔记配置状态机状态分层状态 withStates() 配置状态 states状态列表可以使用多个withStates进行parent分层配置区域:当相同的分层状态机具有多组状态时,每个都具有初始状态,就产生正交状态,多个独立区域 .withStates() ...

2019-05-15 19:54:58 1159

转载 Spring系列学习之Spring Statemachine状态机

英文原文:https://projects.spring.io/spring-statemachine/目录快速开始BuilderJavaConfig版本资源Spring Statemachine是应用程序开发人员在Spring应用程序中使用状态机概念的框架。Spring Statemachine旨在提供以下功能:  &nbs...

2019-05-13 21:07:26 1167

原创 Spring StateMachine框架

public enum Events { PAY, // 支付 RECEIVE // 收货}public enum States { UNPAID, // 待支付 WAITING_FOR_RECEIVE, // 待收货 DONE // 结束}...

2019-05-13 20:21:53 2613

转载 mybatis的批量操作的几种方式

MyBatis简介MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。一、mybiats foreach标签...

2019-04-18 19:40:52 2139

转载 spring ObjectProvider 源码分析

转载: https://blog.csdn.net/alex_xfboy/article/details/83342164 在新spring框架(4.x系列)源码中经常可以看到ObjectProvider<T>的语法,而在度娘查找资料,你发现几乎找不到能讲清楚它来龙去脉的文章,下面将本着寻根溯源的态度去研究它。//源自org.springframew...

2019-04-17 14:36:42 581

转载 mybatis-generator生成java8中的日期类型LocalDate等等

mybatis-generator-maven-plugin生成java8中的日期类型LocalDate等等注明: https://blog.csdn.net/u013887008/article/details/86380569(转)基于mysql8.0与mybatis-generator-maven-plugin 1.3.7加入依赖插件<plugins> ...

2019-02-18 11:42:41 5702 5

转载 groovy脚本导致的FullGC问题

这个是由一个线上问题导致的:背景: 应用中内嵌了groovy引擎,会动态执行传入的表达式并返回执行结果 线上问题:发现机器的fullGC从某个时候开始暴涨,并且一直持续; 登到机器上,用jstat -gcutil 命令观察,发现perm区一直是100%,fullGC无法回收; 将这台机器的内存dump出来进行分析; 在类视图中,发现大量的groovy.lang.GroovyCla...

2019-01-07 19:33:39 591

转载 rabbitmq的延迟队列

更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程初探RabbitMQ消息队列中介绍了RabbitMQ的简单用法,顺带提及了下延迟队列的作用。所谓延时消息就是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。延迟队列延迟队列能做什么?订单业务: 在电商/点餐中,都有下...

2018-12-28 19:59:43 857

转载 rabbitmq中prefetch_count的理解

消费者在开启acknowledge的情况下,对接收到的消息可以根据业务的需要异步对消息进行确认。然而在实际使用过程中,由于消费者自身处理能力有限,从rabbitmq获取一定数量的消息后,希望rabbitmq不再将队列中的消息推送过来,当对消息处理完后(即对消息进行了ack,并且有能力处理更多的消息)再接收来自队列的消息。在这种场景下,我们可以通过设置basic.qos信令中的prefetch_...

2018-12-19 17:04:39 3509

转载 使用@RabbitListener注解消费消息

 之前的博客中我们可以在spring容器中构建SimpleMessageListenerContainer来消费消息,我们也可以使用@RabbitListener来消费消息。@RabbitListener注解指定目标方法来作为消费消息的方法,通过注解参数指定所监听的队列或者Binding。使用@RabbitListener可以设置一个自己明确默认值的RabbitListenerConta...

2018-12-19 16:18:27 35074

转载 spring aop 详细用法2

1 切点复合运算支持在切点定义中加入以下运算符进行复合运算:运算符 说明 && 与运算。 ! 非运算。 \|\| 或运算。 2 切点命名一般情况下,切点是直接声明在需要增强方法处,这种切点的声明方式称为匿名切点,匿名切点只能在声明处被使用 。 如果希望在其它地方可以重用这个切点,我们可以通过 @Pointcut 注解及切面类方法来...

2018-11-29 20:35:24 121

转载 spring aop的详细用法(一)

基本知识其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹的是, 这些概念经过了中文翻译后, 变得面目全非, 相同的一个术语, 在不同的翻译下, 含义总有着各种莫名其妙的差别. 鉴于此, 我在本章的开头, 着重为为大家介绍一个 Spring AOP 的各项术语的基本含义. 为了术语传达的准确性, 我在接下来的叙述中, 能使用英文术语的地方,...

2018-11-29 17:28:01 1572

转载 springboot手动集成Redis

Spring Boot集成Redis实现自动配置转自:http://blog.csdn.net/a67474506/article/details/52595053通过上面一些笔记的介绍, 我们可以自己动手去集成Redis, 没有什么难度的还有Spring Boot官方提供了Spring-Data-Redis的Starter POM有兴趣的可以查看下这...

2018-11-27 14:46:32 1193

转载 SpringBoot整合Redis实例

前言在本篇文章中将SpringBoot整合Redis,使用的是RedisTemplate,分别实现了SpringBoot与redis的单机版、集群版、哨兵模式的整合。Maven依赖<!-- 整合redis --> <dependency> <groupId>org.sp...

2018-11-27 11:29:55 1081 1

原创 Maven 项目中混合使用 Java 和 Groovy

今天尝试了一下在 Maven 项目中混合使用 Java 和 Groovy ,感觉很不错。下面说一下做法。 首先需要 GMaven Plugin,在 Codehaus 的 Maven Repository 中可以找到。GMaven Plugin 默认会编译 src/main/groovy 中的 Groovy 文件。同时,也会编译原有的 Java 文件。 但是,现在最新版本(1.0 r...

2018-11-20 11:59:46 1493

转载 Consul客户端(orbitz 与ecwid)API介绍

Consul客户端(orbitz 与ecwid)API介绍本文件简要介绍两个consul客户端的使用。近期因为使用consul,学习了解consul的客户端,主要用来注册服务发现服务:pom文件加入如下依赖。注意ecwid是spring-cloud-consul-core的依赖包        <dependency>            <groupId&...

2018-11-13 15:13:11 959

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