自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

井底之蛙

学而知不足,思而得远虑

  • 博客(433)
  • 资源 (5)
  • 论坛 (10)
  • 问答 (4)
  • 收藏
  • 关注

原创 Chat 文章

Chat 地址:https://gitbook.cn/gitchat/author/5bc58d055c3f706584a48033最近抽空写了几篇 Chat,与各位交流学习一下:《分布式任务调度框架 Elastic-Job 实例解析》《分布式任务调度框架 XXL-JOB 实例解析》标题《RocketMQ 消息类型介绍及实现原理探究》标题...

2019-03-02 17:06:05 447

原创 Mybatis逻辑分页原理解析RowBounds

物理分页Mybatis插件原理分析(三)分页插件Mybatis提供了一个简单的逻辑分页使用类RowBounds(物理分页当然就是我们在sql语句中指定limit和offset值),在DefaultSqlSession提供的某些查询接口中我们可以看到RowBounds是作为参数用来进行分页的,如下接口:  public <E> List<E> selectLis...

2019-02-26 10:22:46 60376 2

原创 RocketMQ原理学习--索引

 1、RocketMQ原理学习--RocketMQ源码运行 2、RocketMQ原理学习--RocketMQ整体架构窥探 3、RocketMQ原理学习--消息类型 4、RocketMQ原理学习-- Name Server 5、RocketMQ原理学习---生产者普通消息发送 6、RocketMQ原理学习---生产者事物消息发送 7、RocketM...

2019-01-04 13:59:23 1205 2

原创 Cron4j调度框架学习与改造

1、cron4j表达式cron4j支持的表达式是类似unix定时任务的字符串表达式,目前支持由5部分组成分:从0到59时:从0到23天:从1到31,字母L可以表示月的最后一天月:从1到12,可以别名:"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep&

2018-07-09 15:15:44 4674 10

原创 Spring源码学习--Bean对象循环依赖问题解决(四)

循环依赖就是N个类相互嵌套引用,如果通过new对象的方式产生循环依赖的话会导致程序内存溢出报错,接下来我们了解一下spring是如何解决循环依赖问题。第一种:prototype原型bean循环依赖对于原型bean的初始化过程中不论是通过构造器参数循环依赖还是通过setXxx方法产生循环依赖,Spring都会直接报错处理。AbstractBeanFactory.doGetBean()方法:if (i

2017-07-05 18:28:17 5324 3

原创 XXL-JOB原理--任务执行时间轮(六)

1、介绍之前 XXL-JOB 任务执行是通过 Quartz来进行任务管理触发的,在之前的博客 《Quartz任务调度框架–任务执行流程》 我们进行了任务执行的流程介绍,目前 XXL-JOB 任务执行已经摒弃 Quartz 框架,目前通过时间轮方式来管理任务触发任务。2、任务执行XXL-JOB 任务执行中启动了两个线程:(1)线程 scheduleThread 运行中不断的从任务表中查询 查询近 5000 毫秒(5秒)中要执行的任务,如果当前时间大于任务接下来要执行的时间则立即执行,否则将任务执行时间

2021-01-13 00:15:13 946

转载 Guava Cache 过期回源

缓存的更新有两种方法:被动更新:先从缓存获取,没有则回源获取,再更新缓存; 主动更新:发现数据改变后直接更新缓存(在分布式场景下,不容易实现)在高并发环境,被动回源是需要注意的。 问题:高并发场景下,大量请求在同一时间回源,大量的请求同一时间穿透到后端,容易引起后端服务崩溃(也容易引起并发问题)。guava cache解决办法: guava cache保证单线程回源,对于同一个key,只让一个请求回源load,其他线程阻塞等待结果。同时,在Guava里可以通过配置expireAfterAcces

2020-09-29 15:12:58 732

原创 skywalking 开发环境编译及联调

https://cloud.tencent.com/developer/article/1529684

2020-07-10 22:31:18 2315

原创 docker 安装 tomcat 镜像相关命令简单记录

docker 下载tomcat 镜像 安装启动相关命令:下载 tomcat 镜像docker pull tomcat查看镜像docker images启动镜像docker run -p 8080:8080 --name mytomcat tomcat:latest列出所有容器docker ps -a启动容器docker start 容器id在容器中执行脚本docker exec -it mytomcat /bin/bash拷贝文件容器文件到当前目前目录下docke

2020-07-04 15:45:05 318

转载 RocketMQ原理学习--多副本实现 DLedger

一、DLedger引入目的在 RocketMQ 4.5 版本之前,RocketMQ 只有 Master/Slave 一种部署方式,一组 broker 中有一个 Master ,有零到多个Slave,Slave 通过同步复制或异步复制的方式去同步 Master 数据。Master/Slave 部署模式,提供了一定的高可用性。但这样的部署模式,有一定缺陷。比如故障转移方面,如果主节...

2020-02-27 23:19:17 1029

转载 MySQL事务的实现原理

1. 开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理。可靠性:数据库要保证当insert或update操作时抛异常或者数据...

2020-02-27 22:42:45 878

原创 redis数据类型介绍

数据类型 实现方式 描述 String int 用来保存整数值 raw 用来保存长字符串(长度大于44字节) embstr 保存短字符串(长度小于44字节) List ziplist(压缩列表) 列表保存元素个数小于512个 每个元素长度小于64字节 压缩列表是Redis为了节省内存而开发的,是由一系列特殊编码...

2019-11-03 21:39:53 540

原创 限流 -- Sentinel 相关实现原理学习总结

简介Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。官方地址:https://github.com/alibaba/Sentinel/Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场...

2019-08-25 18:05:58 2398

原创 配置中心 -- Apollo 相关知识总结学习

1、总体架构上图简要描述了Apollo的总体设计,我们可以从下往上看:Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端 Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面) Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心...

2019-08-10 17:44:17 622

原创 配置中心 -- Nacos 客户端配置获取及监听实现原理

这篇博客我们通过示例来了解学习一下 Nacos 的客户端获取配置以及服务端发送配置的相关流程。服务端创建配置在 Nacos 的管理页面我们可以创建如下配置信息1、在默认命名空间下新建配置2、编辑配置并发布客户端获取配置1、客户端主动获取配置(1)客户端创建 ConfigService 服务根据 dataId 和 group 来获取配置信息示例:根据data...

2019-07-15 19:53:32 19337 2

转载 配置中心 -- Nacos 实现原理

动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相应的配置信息生效,这极大了增加了系统的运维能力。动态配置下面我将来和大家一起来了解下 Nacos 的动态配置的能力,看看 Nacos 是如何以简单、优雅、高效的方式管理配置,实现配置的动态变...

2019-07-14 20:17:15 5068 1

原创 Orika 拷贝框架

Orika是一个简单、快速的JavaBean拷贝框架,Orika使用字节代码生成来创建具有最小开销的快速映射器。pom.xml 引入: <dependency> <groupId>ma.glasnost.orika</groupId> <artifactId>orika-cor...

2019-07-09 10:45:28 1691

原创 Spring Web 学习 -- DeferredResult 长连接异步返回

最近在学习有个配置中心(nacos 和 apollo),配置中心在配置变更时通过 http 长连接的方式进行通知。(1)配置客户端定时向配置中心发送请求获取最新配置(apollo客户端会像服务端发送长轮训http请求,超时时间60秒,当超时后返回客户端一个304 httpstatus,表明配置没有变更,客户端继续这个步骤重复发起请求,当有发布配置的时候,服务端会调用DeferredResult...

2019-07-07 14:46:04 2178

原创 业务学习 -- 高并发系统保护之限流和降级熔断

限流是我们在业务开发中经常遇到的问题1、请求入口限流(Nginx 限流,Tomcat 线程池及等待队列设置,限流算法(漏桶算法,令牌桶算法,计数器算法))2、接口调用限流(Spring Cloud Hystrix(线程池/信号量) 和 Sentinel(信号量))3、基于削峰填谷流量整理(kafka、RocketMQ和RabbitMQ)https://juejin.im/post/5b3a...

2019-06-16 21:52:54 2677

转载 Dubbo源码学习--ExceptionFilter 异常处理机制

背景我们的项目使用了dubbo进行不同系统之间的调用。每个项目都有一个全局的异常处理,对于业务异常,我们会抛出自定义的业务异常(继承RuntimeException)。全局的异常处理会根据不同的异常类型进行不同的处理。最近我们发现,某个系统调用dubbo请求,provider端(服务提供方)抛出了自定义的业务异常,但consumer端(服务消费方)拿到的并不是自定义的业务异常。这是为什...

2019-05-28 10:26:31 565

原创 微信和支付宝相关支付业务场景介绍

支付宝 当面付 条码支付 应用场景:商家使用扫码设备,扫描用户支付宝钱包上的条码/二维码,完成收款。支付流程:API列表: 接口名称 描述 API地址 alipay.trade.pay 统一收单交易支付接口 https://docs.op...

2019-05-18 22:50:54 6403 1

原创 支付业务简单理解

目前微信和支付宝支付已经非常深入我们的日常生活, 尤其在大城市中几乎涉及所有和钱相关的场景(银行除外)下都少不了支付宝和微信支付的二维码身影,真是大大方便了人们的日常生活,之前工作中也有涉及到和支付(微信和支付宝)相关功能及接口开发,这篇博客来稍微总结一下吧。接口文档1、支付宝蚂蚁开放平台:https://open.alipay.com/platform/home.ht...

2019-05-18 22:39:45 2202

原创 限流 -- Sentinel 搭建及入门学习

简介服务安装客户端界面

2019-05-11 21:39:02 3930

原创 Skywalking原理学习 -- skywalking 搭建及入门示例

环境搭建安装下载部署页面介绍Agent 使用示例实现原理

2019-04-27 17:38:53 68348 9

原创 Zipkin原理学习 -- Druid 追踪多种数据库 SQL 执行

在上一篇博客 《Zipkin原理学习–日志追踪 MySQL 执行语句》 中我们已经了解学习到 Zipkin 官方提供的针对 MySQL 数据库 sql 语句执行的追踪拦截器,现在我们基于数据库连接池 Druid 的 Filter 机制 写一个能支持多种数据库(mysql,pg、oracle 等)日志追踪拦截器。Druid 过滤器 FilterDruidDataSource支持通过Filter-...

2019-03-18 21:29:52 1359

转载 Fescar源码学习--锁设计和隔离级别的理解

Fescar全局锁的理解前几天夜里,我老大发我一篇文章说阿里的GTS开源了.因为一直对分布式事务比较感兴趣。立马pull了代码,进行阅读。基本的原理,实现方案我就不一一细化了,详细见官方文档(写的很棒,点赞)。 在fescar的社区,大家比较关注的是通过fescar回滚到before快照前,别的线程假如更新了数据,且业务走完了,那么恢复的这个快照不就是脏数据了么。很显然,这种情况在...

2019-03-16 17:56:03 462 1

原创 Zipkin原理学习--日志追踪 MySQL 执行语句

目前Zipkin官方提供了插件用于支持对MySQL语句执行过程的日志追踪,提供了对MySQL5、MySQL6和MySQL8的支持,官方地址:https://github.com/openzipkin/brave/tree/master/instrumentation一、介绍及示例配置示例:1、引入相关jar包:&lt;dependency&gt; &lt;...

2019-03-14 20:07:23 2765

转载 一文了解JVM全部垃圾回收器,从Serial到ZGC

《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器。常用的7种收集器,其适用的范围如图所示  Serial、ParNew、Parallel Scavenge用于新生代;CMS、Serial Old、Paralled Old用于老年代。 并且他们相...

2019-02-23 21:43:49 754

原创 Fescar源码学习--服务协调器TC

之前我们已经用两篇博客分别介绍了Fescar中的TM和RM两个角色的相关操作,这篇博客我们来介绍一下TC《Fescar源码学习--事物管理者TM(服务调用方)》《Fescar源码学习--资源管理者RM(服务提供方)》一、简介TC(Fescar Server)作为全局事务协调器主要做了以下操作。(1)TM和RM启动时会注册到TC,TC会将注册信息持久化。(2)TM在begin...

2019-01-29 13:52:27 2884 2

原创 Fescar源码学习--资源管理者RM(服务提供方)

 之前我们已经在博客《分布式事务--Fescar》中了解学习到Fescar相关的架构,接下来我们分别用几篇博客分别来介绍一下Fescar的 TM、RM 和 TC之间的交互流程。TM、RM和TC之间的交互流程图:简单角色理解:TC: Fesacr-server应用TM:dubbo服务调用方RM:dubbo服务提供方一、RM 简介1、简介       在上一篇博客《...

2019-01-28 17:04:25 1671 6

原创 Fescar源码学习--事物管理者TM(服务调用方)

        之前我们已经在博客《分布式事务--Fescar》中了解学习到Fescar相关的架构,接下来我们分别用几篇博客分别来介绍一下Fescar的 TM、RM 和 TC之间的交互流程。TM、RM和TC之间的交互流程图:简单角色理解:TC: Fesacr-server应用TM:dubbo服务调用方RM:dubbo服务提供方一、示例官方示例:https://git...

2019-01-24 20:16:16 1542 2

转载 分布式事物--GTS的原理、架构与特点

        上一篇博客《分布式事务--Fescar》中我们已经了解到Fescar相关的知识,Fescar也是基于阿里巴巴的GTS开源的。这篇转载博客理解学习一下GTS相关的知识内容。         全局事务服务(Global Transaction Service,简称 GTS)是阿里新推出的分布式事务处理方案,对其深入分析的资料相对匮乏。本文的目标是剖析GTS的技术路线,厘清其优势与约...

2019-01-22 21:29:07 2912

转载 分布式事物-- MySQL XA 协议

       上一篇博客《分布式事务--Fescar》分享了阿里巴巴开源的分布式事物框架Fescar,接触到Fescar的实现原理借鉴了XA协议,这篇博客我们来介绍总结一下XA协议。MySQL 从5.0.3开始支持XA分布式事务,且只有InnoDB存储引擎支持。MySQL Connector/J 从5.0.0版本之后开始直接提供对XA的支持。标题 分布式事物XA协议规范:AP:应...

2019-01-21 20:31:21 1276

原创 Spring Cloud学习--spring cloud config server 获取配置过程

在上一篇博客《Spring Cloud学习--spring cloud config配置中心》 中我们已经了解学习到Spring Cloud Config简单的示例工程,这篇博客我们介绍一下Spring Cloud Config Server从git地址中获取有关配置的过程。1、获取配置访问http://localhost:1201/spring-cloud-config-server/m...

2019-01-20 13:21:44 1281

转载 分布式事务--Fescar

地址:https://github.com/alibaba/fescar《分布式事物--GTS的原理、架构与特点》《Fescar源码学习--事物管理者TM(服务调用方)》《Fescar源码学习--资源管理者RM(服务提供方)》《Fescar源码学习--服务协调器(TC)》Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 ...

2019-01-19 20:37:31 2503 1

原创 Elasticsearch原理学习--分片原理及分片路由转发

一、分片与副本设置1、分片(shard)Elasticsearch集群允许系统存储的数据量超过单机容量,实现这一目标引入分片策略shard。在一个索引index中,数据(document)被分片处理(sharding)到多个分片上。Elasticsearch屏蔽了管理分片的复杂性,使得多个分片呈现出一个大索引的样子。2、副本(replica)为了提升访问压力过大是单机无法处理所有请...

2019-01-13 21:24:02 2446

原创 Elasticsearch原理学习--Rest请求处理流程

         之前我们已经通过博客《Elasticsearch学习--ES源码下载、导入及运行》了解学习到如何在本地将Elasticsearch服务运行起来,整个2018年下半年过去了,由于在学习其他知识,对于ES学习这块就暂时先放下的,接下来我们就对ES有一个系统的学习。这篇博客我们通过访问:http://localhost:9200/ 来简单了解一下ES对请求的处理流程。 1、Ne...

2019-01-13 15:08:37 1540 1

原创 RocketMQ原理学习--消费者消费消息

        在之前的一篇博客《RocketMQ原理学习--消息类型》中我们有介绍过RocketMQ的消息类型,这篇博客我们简单介绍一下RocketMQ消费者是如何消费消息的。一、Pull or Push        简单来说RocketMQ给我们提供了两种消息消费方式,Pull模式和Push模式,简单理解我们可能会认为Pull模式是消费者主动去拉取消息,Push模式是RocketMQ...

2018-12-31 15:08:46 2496

原创 RocketMQ原理学习--死信消息实现原理

        上一篇博客《RocketMQ原理学习--失败消息实现原理》中我们了解到RocketMQ对于失败消息的处理原理,当消息一直失败的情况下RocketMQ是如何处理的,这篇博客我们通过分析源码简单了解一下。        RocketMQ对于失败次数超过16次的消息设置为死信消息,消息最终被放到DLQ死信队列中,需要人工进行干预处理。处理代码还是在SendMessageProcess...

2018-12-16 20:42:06 3336

原创 RocketMQ原理学习--失败消息实现原理

        上一篇博客《 RocketMQ原理学习--延时消息实现原理》我们介绍了延时消息的实现原理,这篇博客我们看看RocketMQ在消费者消息消费失败的情况下是如何处理的。        正常情况下消费者在消息消费失败时会马上重新消费消息,正常情况下再次消费应该会将消息消费完成的,但是当一次消费消费不成功时我们可以设置让Broker延时一段时间再重新投递消息,是不是看到这就发现和延时消...

2018-12-15 13:36:33 989

jvm相关的知识

jvm相关的知识的pdf

2017-07-11

虚拟机知识点

虚拟机知识点

2017-07-11

微信支付宝业务总结

微信支付宝多种支付业务场景相关业务流程介绍,接口地址说明等

2019-03-15

umlet uml工具

umlet

2017-07-13

Java并发编程实践-Java Concurrency in Practice

Java并发编程实践,Java Concurrency in Practice

2015-08-20

归田的留言板

发表于 2020-01-02 最后回复 2020-01-02

csdn的研发都在干什么

发表于 2017-03-04 最后回复 2019-10-12

csdn文章数不对

发表于 2017-10-16 最后回复 2017-10-17

CSDN的极客头条是人工审核吗

发表于 2017-04-19 最后回复 2017-10-16

个人信息咋就没了呢

发表于 2017-04-26 最后回复 2017-04-26

博客数目不一致

发表于 2017-02-28 最后回复 2017-02-28

csdn不可以删除专栏吗

发表于 2017-01-10 最后回复 2017-02-28

csdn 文章分类中的博客为什么不提供手动排序功能

发表于 2016-11-22 最后回复 2016-12-21

csdn博客最近怎么了,各种打不开

发表于 2016-10-13 最后回复 2016-11-17

博客违反了网站规则被关闭

发表于 2015-08-29 最后回复 2016-10-13

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

TA关注的人 TA的粉丝

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