归田
码龄9年
  • 2,378,616
    被访问
  • 398
    原创
  • 17,652
    排名
  • 4,282
    粉丝
关注
提问 私信

个人简介:Java开发工程师

  • 加入CSDN时间: 2012-12-06
博客简介:

井底之蛙

博客描述:
学而知不足,思而得远虑
查看详细资料
  • 5
    领奖
    总分 1,708 当月 20
个人成就
  • 博客专家认证
  • 获得717次点赞
  • 内容获得424次评论
  • 获得1,943次收藏
创作历程
  • 7篇
    2021年
  • 5篇
    2020年
  • 29篇
    2019年
  • 108篇
    2018年
  • 114篇
    2017年
  • 126篇
    2016年
  • 50篇
    2015年
成就勋章
TA的专栏
  • Java并发编程
    33篇
  • Spring Web入门及源码学习
    65篇
  • Spring入门及源码学习
    37篇
  • Mybatis入门及源码学习
    59篇
  • Tomcat原理学习
    11篇
  • 分布式任务调度框架
    20篇
  • RocketMQ源码学习
    13篇
  • RPC及Dubbo原理学习
    53篇
  • Spring Cloud学习
    10篇
  • RPC及Dubbo入门源码学习
    53篇
  • spring入门及源码学习
    39篇
  • myBatis入门及源码学习
    59篇
  • spring Web入门及源码学习
    63篇
  • 分布式任务框架
    19篇
  • RocketMQ原理学习
    12篇
  • SpringCloud入门学习
    10篇
  • Lucene\Elasticsearch学习
    8篇
  • Spring Security
    4篇
  • 分布式系统 -- 追踪系统
    11篇
  • 数据库及分布式事务
    10篇
  • 业务架构
    4篇
  • Tomcat原理及源码学习
    11篇
  • NIO及Netty
    17篇
  • Java-并发编程
    35篇
  • Java-Collection集合
    23篇
  • Java基础知识
    20篇
  • 研磨设计模式
    4篇
  • Filter-Listener-Servlet
    9篇
  • JVM虚拟机
    8篇
  • redis
    8篇
  • 杂类
    7篇
  • 配置中心
    3篇
  • 限流
    2篇
简介

Github
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Jacoco配置-从报告中排除类/程序包

为了提供一个更好的 JaCoCo 单测报告,我们可以将一些无业务逻辑的代码(PO,DTO等)从单测报告中移除。如下面配置,通过在 configuration -> excludes -> exclude 排除相关包路径即可。<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0
原创
发布博客 2021.12.14 ·
1148 阅读 ·
0 点赞 ·
1 评论

Java线程池实现原理及其在美团业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。一、写在前面1.1 线程池是什么线程池(Thread
转载
发布博客 2021.11.15 ·
107 阅读 ·
1 点赞 ·
0 评论

Java动态追踪技术探究

引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题的最高境界,就是只通过Review代码来发现问题。”比几十秒长几十倍的沉默之后:“我轮询了那段代码一十七遍之后,
转载
发布博客 2021.11.15 ·
92 阅读 ·
1 点赞 ·
0 评论

脚手架工程发布与使用

1、首先在工程目录下执行 mvn clean install2、接下来执行生成脚手架mvn archetype:create-from-project3、本地打包脚手架 cd target/generated-sources/archetype/ mvn clean install4、在本地 maven 库中可以看到生成的 jar 及 pom.xml 文件本地maven路径 /com/my/project/myproject-archetype/1.0.0-SNAPSHOT/ 目录
原创
发布博客 2021.08.06 ·
74 阅读 ·
0 点赞 ·
0 评论

裂变业务学习

标题
原创
发布博客 2021.06.18 ·
164 阅读 ·
0 点赞 ·
0 评论

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

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

mq消息 在生产环境和灰度环境隔离 各位是如何实现的,不同的topic吗

答:

不同环境使用不同的 topic

回答问题 2021.01.12

分布式追踪系统总结

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

Guava Cache 过期回源

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

skywalking 开发环境编译及联调

https://cloud.tencent.com/developer/article/1529684
原创
发布博客 2020.07.10 ·
3518 阅读 ·
0 点赞 ·
0 评论

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 ·
468 阅读 ·
0 点赞 ·
0 评论

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

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

MySQL事务的实现原理

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

redis数据类型介绍

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

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

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

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

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

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

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

配置中心 -- Nacos 实现原理

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

Orika 拷贝框架

Orika是一个简单、快速的JavaBean拷贝框架,Orika使用字节代码生成来创建具有最小开销的快速映射器。pom.xml 引入: <dependency> <groupId>ma.glasnost.orika</groupId> <artifactId>orika-cor...
原创
发布博客 2019.07.09 ·
2251 阅读 ·
1 点赞 ·
0 评论

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

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