自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(205)
  • 资源 (6)
  • 收藏
  • 关注

转载 Git在Eclipse中的使用

本文转自:Git在Eclipse中的使用前言1)Git于SVN的不同Git是分布式数据库,本地创建仓库,即可在本地完成版本控制(等价于SVN在本地安装服务器和客户端,SVN服务器如果在远程,断网情况将无法完成提交及版本维护)。Git协作开发,大家可以互相克隆版本库(相当于SVN下载项目),进行开发,每人都有完整的库(分布式)。通常为了方便,远程还是会建立一个共享库,如GitHub,方便大家...

2019-05-17 23:35:20 1146

转载 lombok使用基础教程

前言lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码。在很多工具类的项目中都有这个功能。比如dagger。通俗的说,lombok可以通过注解来标示生成getter settter等代码。我们自然可以通过编译器比如IDEA的Generate生成,为啥要用这个?在项目开发阶段,一个class的属性是一直变化的,今天可能增加一个字段,明天可能删除一个字段。每次变化都需要修改对应...

2019-05-17 21:56:19 597

转载 Spring Cloud限流详解(附源码)

在高并发的应用中,限流往往是一个绕不开的话题。本文详细探讨在Spring Cloud中如何实现限流。在 Zuul 上实现限流是个不错的选择,只需要编写一个过滤器就可以了,关键在于如何实现限流的算法。常见的限流算法有漏桶算法以及令牌桶算法。这个可参考 https://www.cnblogs.com/LBSer/p/4083131.html ,写得通俗易懂,你值得拥有,我就不拽文了。GoogleG...

2019-05-03 21:54:08 380

转载 SpringBoot 2.x 优雅解决分布式限流

某天A君突然发现自己的接口请求量突然涨到之前的10倍,没多久该接口几乎不可使用,并引发连锁反应导致整个系统崩溃。如何应对这种情况呢?生活给了我们答案:比如老式电闸都安装了保险丝,一旦有人使用超大功率的设备,保险丝就会烧断以保护各个电器不被强电流给烧坏。同理我们的接口也需要安装上“保险丝”,以防止非预期的请求对系统压力过大而引起的系统瘫痪,当流量过大时,可以采取拒绝或者引流等机制。一、常用的限流算...

2019-05-03 21:43:29 16314 5

转载 Spring Cloud Zuul的容错与回退

在Spring Cloud, Zuul默认已经整合了Hystrix,而且如果启动了Dashborad,也可以知道Zuul对Hystrix监控的粒度是微服务,而不是某一个API;同时也说明所有经过Zuul的请求都会被Hystrix保护起来。为Zuul添加回退想要为Zuul添加回退,需要实现FallbackProvider接口(Edgware.RELEASE以前的版本实现ZuulFallbackP...

2019-05-03 09:53:15 510

转载 Spring Cloud Zuul异常处理

最近看到了一个GitHub issue在讨论如何在post类型的zuul filter中设置response body,其中涉及到异常情况下,如何返回一个自定义的response body。正好我在升级spring-cloud,也想弄清楚,spring-cloud-zuul是如何处理异常情况的,所以就仔细看了看这部分的实现细节,现在做个笔记记录下来。1. zuul 请求的生命周期图关于zuul...

2019-05-03 09:50:38 3340

转载 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)

Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能:身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求。审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生成视图。动态路由:动态地将请求路由到不同的后端集群。压力测试:逐渐增加执行集群的流量,以了解性能。负载分配:为每一种负载类型分配对应容量,并弃用超出限定值得请求。静态响应处理:在边缘位置直接建...

2019-05-03 09:41:54 1211

原创 使用Zuul构建API Gateway

一 微服务网关背景及简介不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服务等。如果客户端直接和微服务进行通信,会存在一下问题:客户端会多次请求不同微服务,增加客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每一个服务都需要独立认证难以重构,随着项目...

2019-05-03 09:28:17 753

转载 SpringCloud的各种超时时间配置效果

1. 前言(以下的springcloud版本是Dalston.RC1)Springcloud框架中,超时时间的设置通常有三个层面:1) zuul网关用指定 url 进行路由时,使用下面的方式#默认1000zuul.host.socket-timeout-millis=2000#默认2000zuul.host.connect-timeout-millis=4000用 service...

2019-05-01 14:04:50 18382 2

转载 springcloud 熔断监控Hystrix Dashboard和Turbine

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够. 我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, ...

2019-04-21 10:07:54 602

转载 SpringCloud Hystrix 请求缓存的使用

本文转自:SpringCloud (八) Hystrix 请求缓存的使用前言最近忙着微服务项目的开发,脱更了半个月多,今天项目的初版已经完成,所以打算继续我们的微服务学习,由于Hystrix这一块东西好多,只好多拆分几篇文章写,对于一般对性能要求不是很高的项目中,可以使用其基础上开发的Feign进行容错保护。Hystrix学到现在我认为它的好处在于可以更灵活的调整熔断时间和自定义的线程隔离策略...

2019-04-21 09:55:46 1054 2

转载 Learn RxJava 2 Observables 与 Subscribers

Chapter 2: Observables and Subscribers-观察者与可观察对象本章重点Observable的使用Observer的使用其他创建Observable的工厂方法Single、Completable和MaybeDisposableObservable是如何工作的在我们做其他事情之前,我们需要学习的是一个Observable序列是如何将item通过链推...

2019-04-21 09:43:09 491

转载 JAVA设计模式:行为型-命令模式(Command)

本文转自: JAVA设计模式(15):行为型-命令模式(Command)装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立连接,如果开关打开,则电线通...

2019-04-21 09:39:09 503

转载 【java】 Observer和Observable详解

本文转自:【java】Observer和Observable详解1.必要性观察者模式是oo设计中经常用到的模式之一,大家在解决实际需求时,观察者模式往往都会用到,而javase中已经提供了Observer接口和Observable类让你简单快速的实现观察者模式,因此有必要去了解Observer和Observable;2.观察者模式概述下面先给出观察者模式标准版的定义。定义:观察者模式(有...

2019-04-21 09:25:47 853

转载 SpringBoot - 多Profile使用与切换以及与 maven profile 结合使用

Profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境。多 profile 使用与切换【1】多Profile文件文件名格式:application-{profile}.properties默认使用application.properties配置文件。如下所示,分别创建application-dev.properties和applicat...

2019-04-21 09:17:49 2046

转载 mybatis的缓存机制(一级缓存二级缓存和刷新缓存)

1 查询缓存1.1 什么是查询缓存mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。mybaits提供一级缓存,和二级缓存。一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。一级缓存的...

2019-04-21 09:14:52 4987 1

转载 Maven插件之mybatis-generator

1在pom.xml中做两处配置1.1 配置dependency要使用generator插件自动生成相关文件,需要引入mybatis-generator-core这个包,在中加入:<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-ge...

2019-04-14 11:42:21 599

转载 Ribbon自定义负载均衡策略

一、前言在上一篇博客中,小编向大家介绍了负载均衡工具Ribbon,是不是很颠覆呀,是不是很好用呀。从中大家有没有感觉到他的负载均衡策略呀,对的,Ribbon内置的默认策略是轮询。在这篇博客中,小编就带大家领略一下Ribbon自定义策略。二、Ribbon的负载均衡策略有哪些?首先上面的这张图是Ribbon选择策略,我们使用的策略重点是最下面的6个子类:策略名策略声明策略描述实...

2019-04-05 17:35:18 4155 2

转载 Spring Boot使用单元测试

转载自嘟嘟独立博客本文链接地址: Spring Boot干货系列:(十二)Spring Boot使用单元测试前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求Service层单元测试Controller层单元测试新断言assertThat使用单元测试的回滚正文Spring Boot中引入单元测试很简单,依赖如下:<d...

2019-03-31 16:59:11 361

转载 Java8内存模型—永久代(PermGen)和元空间(Metaspace)

一、JVM 内存模型根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。###1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出St...

2019-03-21 23:26:31 153

原创 jvm的GC日志分析

一、GC 类型Java中的GC有哪几种类型?参数描述UseSerialGC虚拟机运行在Client模式的默认值,打开此开关参数后,使用Serial+Serial Old收集器组合进行垃圾收集UseParNewGC打开此开关参数后,使用ParNew+Serial Old收集器组合进行垃圾收集UseConcMarkSweepGC打开此开关参数后,使用ParNe...

2019-03-21 20:49:04 527

转载 eclipse MAT - Memory Analyzer Tool 使用进阶

本文转自:eclipse MAT - Memory Analyzer Tool 使用进阶前言尽管Java虚拟机可以帮我们对内存进行回收,但是其回收的是Java虚拟机不再引用的对象。很多时候我们使用系统的IO流,Cursor,Receiver如果不及时释放,就会导致内存泄漏,这些场景是常见的,一般开发人员也都能够避免。但是,很多时候内存泄漏的现象不是很明显,比如内部类,Handler相关的使用导...

2019-03-21 20:45:00 287

转载 Spring整合RabbitMQ

Spring AMQP是对AMQP协议的抽象和封装,从官方网站上得知它是由两个项目组成的(spring-amqp和spring-rabbit)。在使用Spring整合RabbitMQ时我们主要关注三个核心接口(MessageListenerContainer、RabbitAdmin以及RabbitTemplate)RabbitAdmin: 用于声明交换机 队列 绑定等RabbitTemplat...

2019-03-15 20:27:28 956

转载 分布式缓存Redis之Pipeline(管道)

本文转自:分布式缓存Redis之Pipeline(管道)写在前面本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_LearningRedis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现。 由于网络开销延迟,就算redis server端有很强的处理...

2019-02-23 17:26:29 1105

转载 Springboot 2.X中Spring-cache与redis整合

本文转自:Springboot 2.X中Spring-cache与redis整合Springboot中Spring-cache与redis整合。这也是一个不错的框架,与spring的事务使用类似,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作。如果这些注解不满足项目的需求,我们也可以参考spring-cache的实现思想,使用AOP代理+缓存操作来管理缓存的使用。在这个例子中我...

2019-02-17 12:57:07 2931 3

原创 JPA referencedColumnName 非主键列时FetchType.LAZY失效处理

在Spring JPA 的级联操作中,当配置referencedColumnName为非主键列,FetchType.LAZY就会失效。下面我们通过一个例子来看一看这个问题,以及 通过 PersistentAttributeInterceptable 接口来解决这个问题。referencedColumnName为主键列时下面看一个 People 和 Address 的referencedCol...

2019-01-19 21:24:17 4957

转载 java命令--jstack 工具

本文转自:java命令–jstack 工具一、介绍jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项”-J-d64”,Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid主要分为两个功能: a. 针对活着...

2018-08-26 11:19:39 6060

转载 数据库访问性能优化

本文转自:数据库访问性能优化特别说明:1、 文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、 本文未深入数据库优化中最核心的执行计划分析技术。读者对像:开发人员:如果...

2018-08-08 21:46:00 678

转载 Sql Server系列:分区表操作

本文转自:Sql Server系列:分区表操作&nbsp;1. 分区表简介  分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。  分区表是把数据按设定的标准划分成区域存储在不同的文件组中,使用分区可以快速而有效管理和访问数据子集。1.1&gt; 适合做分区表的情况  ◊ 数...

2018-08-06 22:42:13 271

转载 sql server 数据库创建链接服务器访问另外一个sql server 数据库

本文转自:sql server 数据库创建链接服务器访问另外一个sql server 数据库继上篇在sql server中创建链接服务器访问oracle数据库:http://www.cnblogs.com/527289276qq/p/4770379.html本文介绍在sql server中创建链接服务器访问sql server数据库。方法:打开SSMS,新建程序,执行下面sql语句...

2018-08-05 20:18:32 10154

转载 sum(x) over( partition by y ORDER BY z ) 分析

本文转自:sum(x) over( partition by y ORDER BY z ) 分析参考的博文出处:http://www.cnblogs.com/luhe/p/4155612.html,对博文进行了修改新增,修改了错误的地方之前用过row_number(),rank()等排序与over( partition by … ORDER BY …),这两个比较好理解: 先分组,然后在组...

2018-08-05 16:52:52 7177

转载 Java Executors 使用

本文转自:Java Executor并发框架(一)整体介绍一、概述Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池。在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在JDK1.5后,有了很大的改善。JDK1.5之后加入了java.util.concurrent包,java.util.concurren...

2018-08-02 23:01:41 2987

原创 Java Executor框架 (一)

Java Executor框架 (一)一,Java的Executor框架图片引用自:https://img-blog.csdn.net/201605091614570551. Executor 接口Executor 是一个用于提交 Runnable 任务。这个接口提供了一个将任务的提交从任务执行中解耦的方式,包含一些线程使用,调度等。Executor 接口只定义了一...

2018-07-28 21:29:14 434

原创 java并发编程之CompletionService

应用场景当向Executor提交多个任务并且希望获得它们在完成之后的结果,如果用FutureTask,可以循环获取task,并调用get方法去获取task执行结果,但是如果task还未完成,获取结果的线程将阻塞直到task完成,由于不知道哪个task优先执行完毕,使用这种方式效率不会很高。在jdk5时候提出接口CompletionService,它整合了Executor和BlockingQue...

2018-07-22 17:45:53 548

转载 彻底理解Java的Future模式

本文转自:彻底理解Java的Future模式先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点,需要好好考虑一下。模拟代码1:publi...

2018-07-21 22:46:41 2715

转载 【线程】结果缓存实现(future与concurrenthashmap)

本文转自: 【线程】结果缓存实现(future与concurrenthashmap)Computable&lt;A,V&gt;接口中生命了一个函数Computable,其输入类型为A,输出类型为V,在ExpensiveFunction中实现的Computable,需要很长时间来计算结果,我们将创建一个Computable包装器,帮助记住之前的计算结果,并将缓存过程封装起来,(这项计算被称为“记...

2018-07-19 22:57:57 630

转载 Java同步工具类

本文转自:https://blog.csdn.net/caoyue_new/article/details/75012794同步工具类可以是任意一个对象,只要它可以根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量(Semaphore)、栅栏(Barrier)以及闭锁。在平台类库中还包含一些其他同步工具类,如果还是不能满足需要,我们可以创建自己的同步...

2018-07-18 23:04:36 656

转载 Java 线程阻塞、中断及优雅退出

本文转自:Java 线程阻塞、中断及优雅退出线程阻塞一个线程进入阻塞状态的原因可能如下(已排除Deprecated方法):sleep()sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对...

2018-07-18 20:39:44 3111

转载 Java中的阻塞队列(BlockingQueue)

本文转自:Java中的阻塞队列(BlockingQueue)什么是阻塞队列阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附加操作:当队列中为空时,从队列中获取元素的操作将被阻塞;当队列满时,向队列中添加元素的操作将被阻塞。阻塞队列常用于生产者和消费者的场景,...

2018-07-17 22:28:09 2106 1

转载 Java并发编程:并发容器之CopyOnWriteArrayList

本文转自:Java并发编程:并发容器之CopyOnWriteArrayList原文链接:http://ifeve.com/java-copy-on-write/Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JD...

2018-07-17 20:20:47 168

SQLServer 2008编程入门经典(第3版)

SQLServer 2008编程入门经典(第3版)

2017-07-04

postman chrome插件

rest接口调用chrome插件(ctx格式,如果因为谷歌浏览器版本问题不能直接安装,可以将文件改为rar格式进行解压,并将里面的_metadata文件夹重命名为metadata,再重试)

2017-06-04

restclient 3.5

rest接口调用工具,双击即可运行

2017-06-04

Redis 入门指南 (带书签)

Redis入门参考书

2016-07-06

DFA,NFA实现

实现了DFA,NFA算法,DFA最小化,NFA转化为DFA以及正则表达式转化为NFA的算法,是有限状态自动机的初学者很不错的学习资源

2014-03-24

QR分解求矩阵全部特征值

将一个矩阵转化为上Hessenberg矩阵后,再使用QR分解求解矩阵 的全部特征值

2013-10-29

空空如也

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

TA关注的人

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