自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I want to know a little more.

一点一点的进步。。。

  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

转载 如何计算服务限流的配额

如何计算服务限流的配额

2020-07-31 18:11:25 218

转载 Mybatis trim标签的2个妙用!

mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。以下是trim标签中涉及到的属性:下面使用几个例子来说明Mybatistrim标签的使用。1、使用trim标签去除多余的and关键字有这样的一个例子:<selectid="findActiveBlogLike"resultType...

2020-07-31 15:11:15 273

转载 阿里大牛告诉你如何写好代码

写了多年的代码,始终觉得如何写出干净优雅的代码并不是一件容易的事情。按10000小时刻意训练的定理,假设每天8小时,一个月20天,一年12个月,大概也需要5年左右的时间成为大师。其实我们每天的工作中真正用于写代码的时间不可能有8个小时,并且很多时候是在完成任务,在业务压力很大的时候,可能想要达到的目标是如何尽快的使得功能work起来,代码是否干净优雅非常可能没有能放在第一优先级上,而是怎么快怎么来。在这样的情况下是非常容易欠下技术债的,时间长了,这样的代码基本上无法维护,只能推倒重来,这个成本是非.

2020-07-31 14:40:56 306 1

转载 Java集合中的堆

什么是堆?堆其实就是一种特殊的队列——优先队列。普通的队列游戏规则很简单:就是先进先出;但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶。这也很容易理解吧,比如各种软件都有会员制度,某软件用了会员就能加速下载的,不同等级的会员速度还不一样,那就是优先级不同呀。还有其实每个人回复微信消息也是默默的把消息放进堆里排个序:先回男朋友女朋友的,然后再回其他人的。这里要区别于操作系统里的那个“堆”,这两个虽然都叫堆,但是没有半毛钱关系,都是借用了 H

2020-07-31 14:37:19 897

转载 SpringBoot中@EnableXXX注解的驱动逻辑探讨

工作中经常用到,如下注解: @EnableEurekaClient @EnableFeignClients @EnableCircuitBreaker @EnableHystrix 他们都是@Enable开头,各自实现不同的功能,解析这种@Enable的逻辑是什么呢?@Enable驱动逻辑找入口@Enable的模块驱动,依赖于@Import实现。@Import作用是装载导入类,主要包括@Configuration class,ImportSelecto

2020-07-31 14:31:17 239

转载 注解的本质

以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。于是就有人提出来一种标记式高耦合的配置方式,『注解』。方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解。关于『注解』和『XML』两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便捷性,易于维护修改,但耦合度高,而 XML 相对于注解则是相反的。追求低耦合就要抛弃高效率,追求效率必然会遇

2020-07-29 16:55:36 762 1

原创 Hystrix和Guava RateLimiter对比

一、关于限流&熔断&降级的说明为什么要限流、降级、熔断(为什么要用hystrix)Hystrix 配置参数全解析二、限流1、Guava的RateLimiterGuava的RateLimiter的API//限制速率为1秒10个请求,2是热身参数-以一种平滑的方式把1秒内的发放令牌的速率放大到最大(适用于初始化时间比较久或者使用了连接池的应用)//该限流器是非公平令牌桶算法private RateLimiter switchRateLimiter = RateL

2020-07-29 11:38:48 1126

转载 MySql分库分表

作者:尜尜人物cnblogs.com/littlecharacter/p/9342129.html本文目录一、数据库瓶颈 IO瓶颈 CPU瓶颈 二、分库分表 水平分库 水平分表 垂直分库 垂直分表 三、分库分表工具四、分库分表步骤五、分库分表问题 非partition key的查询问题 非partition key跨库跨表分页查询问题 扩容问题 六、分库分表总结七、分库分表示例一、数据库.

2020-07-29 09:53:08 180

转载 Java线程的6种状态分析

想起来写一下Java线程状态,还是源起与最近的一次问题定位,当时碰到一个偶先超时的问题,使用jstack命令打印出堆栈信息之后,例如"transport-vert.x-eventloop-thread-11" #37 prio=5 os_prio=0 tid=0x00007f628d0f8800 nid=0x2a32 runnable [0x00007f62631f8000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.E.

2020-07-27 16:23:38 705

转载 ThreadLocal终极篇

开场白张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试。我丢,什么情况怎么刚投递出去就有人约我面试了?诶。。。真烦啊,哥已经不在江湖这么久了,江湖还是有哥的传说,我还是这么抢手的么?太烦恼了,帅无罪。暗自窃喜的张三来到了某东现场面试的办公室,我丢,这面试官?不是吧,这满是划痕的Mac,这发量,难道就是传说中的架构师?张三的心态一下子就崩了,出来第一场面试就遇到一个顶级面试官,这谁顶得住啊。你好,我是你的面试官Tony,看我的发型

2020-07-27 10:35:13 224 1

原创 windows下的idea使用git commit报错

windows下的idea使用git commit命令提示cannot open file等错误原因:git commit的时候会调用你的默认编辑器出现编辑界面让你输入注释,但是如果你设置默认编辑器设置的有问题的话就会报错解决方案:重新设置编辑器。如:1.先下载notepad++2.执行如下命令:git config --global core.editor "'D:\util\npp.7.8.8.bin.x64\notepad++.exe' -multiInst -notabbar -no

2020-07-25 11:27:43 580

转载 jdk8函数式接口

什么是函数式接口(Functional Interface)其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。函数式接口用途它们主要用在Lambda表达式和方法引用(实际上也可认为是Lambda表达式)上。如定义了一个函数式接口如下: @FunctionalInterface interfa

2020-07-22 13:37:51 180

转载 MyCat 看了这篇什么都会了

1、什么是MyCat1、一个彻底开源的,面向企业应用开发的大数据库集群 2、支持事务、ACID、可以替代MySQL的加强版数据库 3、一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 4、一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 5、结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 6、一个新颖的数据库中间件产品2、为什么使用MyCat如今随着互联网的发展,数据的...

2020-07-21 16:47:08 998

转载 MySQL中IS NULL、IS NOT NULL、!=不能用索引

不知道从什么时候开始,网上流传着这么一个说法:MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。这种说法愈演愈烈,甚至被很多同学奉为真理。咱啥话也不说,举个例子。假如我们有个表s1,结构如下:CREATE TABLE s1 ( id INT NOT NULL AUTO_INCREMENT, key1 VARCHAR(100), key2 VARCHAR(100), key3 VAR

2020-07-21 15:50:35 534

转载 如何避免回表查询?什么是索引覆盖?

数据库表结构: 1 2 3 4 5 6 createtableuser( idintprimarykey, namevarchar(20), sexvarchar(5), index(name) )engine=innodb; 1 2 3 selectid,namewherename='...

2020-07-21 15:34:24 371

转载 面试必杀技,讲一讲Spring中的循环依赖

前言Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的是为了让你在之后的所有面试中能多一个必杀技,专门用来绝杀面试官!本文的核心思想就是,当面试官问:“请讲一讲Spring中的循环依赖。”的时候,我们到底该怎么回答?主要分下面几点

2020-07-21 13:54:52 384

转载 Spring中的ref和depends-on区别

参考:http://yanln.iteye.com/blog/2210723这两者都是表示对其他bean的依赖,但是ref常用的情况是这个bean作为当前bean的属性,比如:<bean id="a" class="ClassA"/><bean id="b" class="ClassB"><property name="aref" ref="a" /></bean>这是很强的一个依赖关系了,但是有时候依赖关系并不会这么明显,我们依赖的bean也.

2020-07-18 14:32:36 462

转载 Spring中的depends-on

depend-on用来表示一个Bean的实例化依靠另一个Bean先实例化。如果在一个bean A上定义了depend-on B那么就表示:A 实例化前先实例化 B。这种情况下,A可能根本不需要持有一个B对象。比如说,你的DAO Bean实例化之前你必须要先实例化Database Bean,DAO Bean并不需要持有一个Database Bean的实例。因为DAO的使用是依赖Database启动的,如果Database Bean不启动,那么DAO即使实例化也是不可用的。这种情况DAO对Databa..

2020-07-18 14:30:47 1806

转载 Mysql事务超时

本文概览:介绍了超时有关的概念:@Transaction的timeout、mybatis的timeout、mysql的innodb_lock_wait_timeout。1 问题1.1 背景在一个事务中完成解析一个大文件,分批存入到数据库。遇到问题,执行时间比较长,就讨论了事务超时的问题,担心执行时间太长,事务超时自动回滚了。为了考虑这个问题,需要考虑如下超时相关的设置:一个事务的超时时间。spring的@Transactional 一个stametn的执行时间。包括mybais的tim

2020-07-16 12:25:43 7677 1

转载 Spring事务的传播机制

事务的嵌套概念所谓事务的嵌套就是两个事务方法之间相互调用。spring事务开启 ,或者是基于接口的或者是基于类的代理被创建(注意一定要是代理,不能手动new 一个对象,并且此类(有无接口都行)一定要被代理——spring中的bean只要纳入了IOC管理都是被代理的)。所以在同一个类中一个方法调用另一个方法有事务的方法,事务是不会起作用的。----------------------------------------这里说个问题,也是常见的面试题:package com.daquan._20

2020-07-16 12:14:20 180

转载 JDBC-MySql超时

前言本文讨论的源码是基于connectorJ 5.1.37,最新版的jar包是5.1.38,两者对于该处的逻辑并无差别。connectorJ mysql官网下载地址:点击打开链接(http://dev.mysql.com/downloads/connector/j/)一、JDBC API支持java.sql.Statement中定义的查询超时规范:/** * Sets the number of seconds the driver will wait fo...

2020-07-16 11:47:23 443

转载 FactoryBean的使用

FactoryBean的使用一般情况下,Spring 通过反射机制利用bean 的 class属性指定实现类来实例化bean。在某些情况下,实例化 bean 的过程不叫复杂,如果按照传统的方式,则需要在<bean>中提供大量的配置信息,配置的灵活度受限,这时候采用编码的方式可能会得到一个简单的方法。Spring提供了一个org.springframework.bean.FactoryBean的工厂接口,用户可以通过实现该接口定制实例化的bean。FactoryBean接口对于Spring

2020-07-15 20:56:21 385

转载 BeanFactory和FactoryBean的区别

一:简单的说BeanFactory 是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范。 FactoryBean 也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单的工厂模式和装饰模式 ,我们可以在getObject()方法中灵活配置. 区别:BeanFaactory 是哥Factory,也就是IOC容器或对象工厂,FactoryBean是个Bean.在Spring中,所有...

2020-07-15 20:54:15 291

转载 META-INF目录的作用

平时写的web项目打包成jar文件之后会发现里面不知道为啥多出了一个叫做META-INF的目录,点开之后发现里面还出现了一个manifest.mf文件。出于好奇我在网上找了找这个目录的用途,结果还是没有找到一个比较通俗的解释,我这种菜鸟对那种比较正规的解释还是理解有困难的。所以总结了一下,我感觉这样解释的话对于我们这些初学者来说还是比较容易理解的。jar文件开发中可以直接使用java class文件来运行程序,不过这样不太方便,所以出现了jar文件来提供发布和...

2020-07-15 17:14:00 874

转载 spring.factory

什么是spring.factory?Spring Boot中有一种非常解耦的扩展机制:SpringFactories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。什么是SPI机制这里我就用比较通俗易懂的方式来简单说一下,SPI机制就是不同服务开发商在各自的jar包中提供一个相同名字的配置文件(名字和java定义的通用接口同名)。比如说各个数据库开发商都会在jar包的META-INF/services目录下放一个java.sql.Driver的文件(Driver就是一个接口)。

2020-07-15 15:36:28 3894 2

转载 手写一个SpringBoot Starter

Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starter是什么东西,想看完整的回答戳这里Starter POMs are a set of convenient dependency descriptors that you can include in your application. You get a one-stop-shop for all the Spring and related techn

2020-07-15 11:34:25 265

转载 SOA以及Dubbo与服务治理

引言作为本系列文章的开篇,本文将以Dubbo为例,开始为大家介绍SOA、服务治理等概念,以及Dubbo的基础知识和最新发展情况。SOA与服务治理SOA(面向服务的体系结构)概念由来已久,在10多年前便开始进入到我们广大软件开发者的视线中。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、Web Service技术之后的自然延伸。服务治理,也称为SOA治理,是指用来管理SOA的采用和实现的过程。以下是在2006

2020-07-14 20:39:56 728

原创 本科毕业五年了,有几个问题值得思考

除了胜任工作内容以外:1、是否有思考过给公司创造更多价值2、是否有思考过怎样基于当前环境更快的成长起来,提升个人价值3、既然是做技术的,那是否在工作之余对前沿技术有足够深的了解,并引入到实际项目中4、是否真的对技术感兴趣,如果是则更应该投入更多的精力去学习、实践5、是否对当前所使用的技术真正的精通掌握6、是否在多年的学习过程中掌握一套快速学习的方法论...

2020-07-14 20:06:47 176

转载 各大厂分布式链路跟踪系统架构对比

各大厂分布式链路跟踪系统架构对比 随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,这些组件共同构成了繁杂的分布式网络,那现在的问题是一个请求经过了这些服务后其中出现了一个调用失败的问题,只知道有异常,但具体的异常在哪个服务引起的就需要进入每一个服务里面看日志,这样的处理效率是非常低的。 分布式调用链其实就是将一次分布式请求还原成调用链路。显式的在后端查看一次分布式请求的调用情况,比...

2020-07-14 19:53:12 473

转载 分布式之数据库和缓存双写一致性方案解析

引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三个部分组成1、讲解缓存更新策略2、对每种策略进行缺点分析3、针对缺点给出改进方案正文先做.

2020-07-14 19:46:38 202

转载 canal+springboot

简介canal 是阿里巴巴的一个开源项目,基于java实现,整体已经在很多大型的互联网项目生产环境中使用,包括阿里、美团等都有广泛的应用,是一个非常成熟的数据库同步方案,基础的使用只需要进行简单的配置即可。canal是通过模拟成为mysql 的slave的方式,监听mysql 的binlog日志来获取数据,binlog设置为row模式以后,不仅能获取到执行的每一个增删改的脚本,同时还能获取到修改前和修改后的数据,基于这个特性,canal就能高性能的获取到mysql数据数据的变更。github地址

2020-07-14 16:56:22 1221

转载 分布式链路追踪

分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪 等等。本文使用分布式Trace来简称分布式链路追踪。本篇文章只是从大致的角度来阐述什么是分布式Trace,以及一个分布式Trace系统具备哪些要点和特征。场景先从几个场景来看为什么需要分布式Trace场景1开发A编写了一段代码,代码依赖了很多的接口。一个调用下去没出结果,或者超时了,Debug之后发现是接口M挂了,然后找到这个接口M的负责人B,告知B接口挂了。B拉起自己的调用和De

2020-07-13 23:39:22 818

转载 怎样理解服务治理

自从微服务架构开始变得火热以后,越来越多的系统被拆解成了很多个细胞一样的微服务。设想一下,如果你的系统有100个微服务构成,要对这100个微服务进行管理,这绝对是一个不小的挑战。所以紧接着又出现了一堆让人头晕眼花的概念:服务注册发现,请求链路追踪,服务熔断,服务限流,服务管控配置,服务预警。还有就是一抓一大把的开源工具:Eurake,Zuul,Ribbon,hystrix,zipkin,dubbo,Sleuth,Elastic Search,grafna,Promethues。这样,当我们在说服务治理时

2020-07-13 23:28:37 585

转载 Sleuth+Zipkin

https://blog.csdn.net/pengjunlee/article/details/87797969

2020-07-13 23:24:52 102

转载 常见Mysql的慢查询优化方式

1、概念MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是记录运行10秒以上的语句。默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志

2020-07-13 22:55:30 861

转载 MySQL覆盖索引

一、覆盖索引覆盖索引(covering index)指一个查询语句的执行只用从索引中就能够取得,不必从数据表中读取。也可以称之为实现了索引覆盖。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。二、覆盖索引实例1.未建立索引前select SQL_NO_CACHE count(name) from index_test where name = '小明' and id_card = '142701199999999999' and type = '2' and h.

2020-07-10 13:57:45 355

转载 MySQL force Index 强制索引概述

以下的文章主要介绍的是MySQLforce Index 强制索引,以及其他的强制操作,其优先操作的具体操作步骤如下:我们以MySQL中常用的hint来进行详细的解析,如果你是经常使用Oracle的朋友可能知道,Oracle的hincvt功能种类很多,对于优化sql语句提供了很多方法。同样,在MySQL里,也有类似的hint功能。下面介绍一些常用的。强制索引MySQL FORCE INDEXSELECT*FROMTABLE1FORCEINDEX(FIELD1)…以上...

2020-07-10 13:54:42 775

转载 MySQL优化之hints

大妈让我整理MySQL优化的一些工具和方法,整理到MySQL hints的时候,没有找到满意的中文文章,于是自己翻译了一篇关于MySQL hints的小文章。如下:每个程序员都喜欢优化,甚至有时我们知道不应该去做。为了满足大家的意愿,MySQL提供了一些关键字,在SQL语句中使用这些关键字,可以使得数据库按照明确的优化指令执行SQL语句。应当指出的是,不正确的使用hints很有可能使你的查询语句表现的更糟糕,在使用hints之前需要确保这是有意义的。通常你可以使用explain查看执行计划并阅读hi

2020-07-10 13:53:24 1733

转载 Java线程池异常处理

自定义线程池MyThreadPoolExecutor执行任务的时候,如果任务报错,也不会被导致线程池被销毁。因为底层实现会把任务抛出的异常catch住且不打印。

2020-07-09 16:45:31 1737

转载 kafka是push还是pull

BrokerKafka集群包含一个或多个服务器,这种服务器被称为brokerTopic每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处)Partitionparition是物理上的概念,每个topic包含一个或多个partition,创建topic时可指定parition数量。每个partition对

2020-07-09 09:41:05 1555

C程序设计(第三版).谭浩强.清华大学出版社.zip

C程序设计(第三版).谭浩强.清华大学出版社pdf,因为看有些地方下载需要积分太多,不利于该资源的传播,所以重新压缩了下

2019-07-19

同济大学线性代数.zip

同济大学线性代数高清pdf。

2019-07-01

SSH整合JAR(附带一些开发常用的jar)

适合新手开发一些小项目,里面是开发必须的jar,没有多余的。

2015-04-02

空空如也

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

TA关注的人

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