会员
T恤
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
胖虎de文库
– – – – – _ _ – _ _ –
博客园
首页
新随笔
联系
订阅
管理
随笔 - 44
文章 - 0
评论 - 50
阅读 -
14万
2023年11月20日
写了个追踪业务异常的工具,欢迎体验!
摘要: 基于java的注解处理器写了个自动植入业务追踪日志的工具,目前snapshot版本已上线,欢迎体验和提出意见,感谢! 原文档(建议直接阅读这个):LogTrace使用指南 建议的版本号: jdk:8、9、10、11 gradle:7+ Part1: 解决的问题 本产品尝试解决以下场景的问题:假设现在
阅读全文
posted @ 2023-11-20 11:51 是胖虎捏
阅读(104)
评论(0)
推荐(0)
2023年8月17日
编译时注解处理器的一次使用经历
摘要: 编译时注解处理器在《深入理解Java虚拟机》一书中有一些介绍(前端编译篇有提到),但一直没有机会使用,直到碰到这个需求,觉得再合适不过了,就简单用了一下,这里做个记录。 原文写于2021年2月8日。 一、需求 我们为公司提供了一套通用的JAVA组件包,组件包内有不同的模块,这些模块会被打成jar包,
阅读全文
posted @ 2023-08-17 01:16 是胖虎捏
阅读(91)
评论(0)
推荐(0)
2020年3月10日
JAVA有关位运算的全套梳理
摘要: 一、在计算机中数据是如何进行计算的? 1.1:java中的byte型数据取值范围 我们最开始学习java的时候知道,byte类型的数据占了8个bit位,每个位上或0或1,左边第一位表示符号位,符号位如果为1表示负数,为0则表示正数,因此要推算byte的取值范围,只需要让数值位每一位上都等于1即可。
阅读全文
posted @ 2020-03-10 00:51 是胖虎捏
阅读(1319)
评论(1)
推荐(1)
2019年12月13日
IDEA插件开发(一)一个简单的表单demo
摘要: 🐜 版本信息: 🐞 JDK:1.8+ 🐌 IDEA:2019.3 🐝 插件项目基于gradle构建。 🦟 知识背景:swing 🦇 参考文档: http://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system/prereq
阅读全文
posted @ 2019-12-13 12:52 是胖虎捏
阅读(12806)
评论(5)
推荐(6)
2019年12月10日
Resilience4j熔断器-使用与源码解析
摘要: 🌏 环境: 🌳 JDK11 🌱 IDEA 2019.03 🌾 Resilience4j 0.13.2 🍃 知识依赖:juc,位图 一、什么是熔断 在分布式系统中,各服务间的相互调用更加频繁,上下游调用中充满了可能性,一个服务可能会被很多其他服务依赖并调用,在这个过程中如果某个服务由于某种原
阅读全文
posted @ 2019-12-10 21:58 是胖虎捏
阅读(3554)
评论(0)
推荐(2)
2019年10月24日
工作中有关分布式缓存的使用和需要注意的问题梳理
摘要: 前言 目前工作中用到的分布式缓存技术有redis和memcached两种,缓存的目的是为了在高并发系统中有效降低DB的压力,但是在使用的时候可能会因为缓存结构设计不当造成一些问题,这里会把可能遇到的坑整理出来,方便日后查找。 一、常用的两种缓存技术的服务端特点 1.1:Memcache服务端 Mem
阅读全文
posted @ 2019-10-24 23:01 是胖虎捏
阅读(852)
评论(2)
推荐(0)
2019年8月28日
池化技术(二)HikariCP是如何管理数据库连接的?
摘要: 基于依赖程序的版本信息:HikariCP:3.3.1 驱动程序mysql-connector-java:8.0.17 上一篇:Druid是如何管理数据库连接的 零、类图和流程图 开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。 获取连接时的类间交互: 图1 一、
阅读全文
posted @ 2019-08-28 00:18 是胖虎捏
阅读(6540)
评论(1)
推荐(1)
池化技术(一)Druid是如何管理数据库连接的?
摘要: 基于依赖程序的版本信息:druid:1.1.16 驱动程序mysql-connector-java:8.0.17 下一篇:HikariCP是如何管理数据库连接的 零、类图&流程预览 下方流程中涉及到的类、属性、方法名均列在这里:Druid-类图-属性表 ←该表格用来辅助理解下面的流程图和代码,不用细
阅读全文
posted @ 2019-08-28 00:16 是胖虎捏
阅读(11088)
评论(10)
推荐(9)
2019年7月16日
【框架】利用Spring的BeanPostProcessor来修改bean属性
摘要: 一、关于BeanPostProcessor 1.1:它是什么? 首先它是一个接口,定义了两个方法: public interface BeanPostProcessor { @Nullable //所有bean初始化之前触发该方法 default Object postProcessBeforeIn
阅读全文
posted @ 2019-07-16 23:34 是胖虎捏
阅读(3555)
评论(0)
推荐(0)
2019年6月21日
InfluxDB(一)初探时序数据库
摘要: 最近公司有个需求需要借助InfluxDB实现(或者更准确的说,使用该数据库可以更容易的实现),因此稍微看了下这个数据库,把比较重要的一些东西先简单记录一下,日后如果踩坑,也会继续在下面补充。 零、下载&安装 官方地址:https://portal.influxdata.com/downloads/
阅读全文
posted @ 2019-06-21 00:09 是胖虎捏
阅读(3418)
评论(1)
推荐(0)
2019年5月7日
JVM基础回顾记录(二):垃圾收集
摘要: 上一篇介绍了jvm的内存模型,本篇将介绍虚拟机中最为复杂的一部分:垃圾收集,本篇会从垃圾回收前的准备工作到后面的收集阶段的方式以及HotSpot虚拟机对这些工作的实现做个较为系统的记录,方便自己以后查找阅读。 一、栈帧、变量类型、引用分析 讲解垃圾收集器的实现之前,结合之前讲的jvm内存区域划分,先
阅读全文
posted @ 2019-05-07 09:29 是胖虎捏
阅读(521)
评论(0)
推荐(0)
2019年4月15日
链路追踪(二)-分布式链路追踪系统数据采集
摘要: 本篇文章基于上一篇,只针对数据采集做介绍,会提供一个SDK的实现和使用,会做实现方案的介绍,具体详细介绍下面边框加粗的部分: 一、数据采集 接着拿上一篇里的例子来说,把例子里的图贴过来: 图1 简单回顾下上图,一次API调用,完成上面各个业务服务的调用,然后聚合所有服务的信息,然后Redis_02的
阅读全文
posted @ 2019-04-15 22:20 是胖虎捏
阅读(2840)
评论(1)
推荐(0)
2019年4月11日
链路追踪(一)-分布式链路追踪系统的介绍
摘要: 一、分布式链路追踪可以做什么? 1.1:简单集群架构&微服务架构 先来看下最简单的网站集群架构图: 图1 在这个图里,存在从1~n个服务器,通过负载均衡器SLB进行请求分发,在每个服务器里,都做同一件事情。 现在来看下这个系统的具体业务逻辑(就是图1中每台服务器执行的逻辑,这里是假设其中一个业务接口
阅读全文
posted @ 2019-04-11 08:56 是胖虎捏
阅读(9789)
评论(3)
推荐(0)
2019年4月6日
JVM基础回顾记录(一):JVM的内存模型
摘要: 一、JAVA程序执行流程 JAVA程序执行的基本流程(基于HotSpot): 图1 二、内存模块划分 2.1:程序计数器 程序计数器是一块较小的内存空间,是当前线程执行字节码的行号指示器,字节码解释器就是通过改变这个计数器的值来获取下一条需要执行的字节码指令,其中分支、循环、跳转和异常处理,线程恢复
阅读全文
posted @ 2019-04-06 09:50 是胖虎捏
阅读(425)
评论(0)
推荐(0)
2019年4月1日
Java NIO学习与记录(八): Reactor两种多线程模型的实现
摘要: 注:本篇文章例子基于上一篇进行:Java NIO学习与记录(七): Reactor单线程模型的实现 前言:单线程Reactor模型的缺点 紧接着上篇Reactor单线程模型的例子来,假设Handler的read那里的处理方式延迟5s,当做是业务性能瓶颈,改变下原来的Handler,让其read方法在
阅读全文
posted @ 2019-04-01 23:46 是胖虎捏
阅读(3093)
评论(2)
推荐(3)
2019年3月27日
Java NIO学习与记录(七): Reactor单线程模型的实现
摘要: 一、Selector&Channel 1.1:各种channel 写这个模型需要提前了解Selector以及Channel,之前记录过FileChannel,除此之外还有以下几种Channel: ServerSocketChannel:用于监听新的TCP连接的通道,负责读取&响应,通常用于服务端的实
阅读全文
posted @ 2019-03-27 21:59 是胖虎捏
阅读(2949)
评论(10)
推荐(5)
2019年3月22日
【初探】java性能火焰图的生成
摘要: 一、前言 开始之前,你需要准备的环境: Linux系统机器或者虚拟机一台,里面需要安装的软件:git、jdk、perl。 二、简单介绍 java性能分析火焰图的所做的事情就是能够分析出java程序运行期间存在的性能问题,因为某段代码拖慢整个程序执行是不允许的,因此靠火焰图的绘制和分析就可以找出类似的
阅读全文
posted @ 2019-03-22 19:42 是胖虎捏
阅读(7238)
评论(2)
推荐(0)
2019年3月20日
Java NIO学习与记录(六): NIO线程模型
摘要: 上一篇说的是基于操作系统的IO处理模型,那么这一篇来介绍下服务器端基于IO模型和自身线程的处理方式。 一、基于BIO下的线程处理模式 这种处理模型是基于阻塞IO进行的,上一篇讲过,阻塞IO会阻塞每一个IO操作,直到事件就绪,下面来看下阻塞IO下的服务端线程模型: 图1 如上图所示,该线程模型基于阻塞
阅读全文
posted @ 2019-03-20 23:12 是胖虎捏
阅读(3059)
评论(0)
推荐(1)
2019年3月19日
Java NIO学习与记录(五): 操作系统的I/O模型
摘要: 在开始介绍NIO Reactor模式之前,先来介绍下操作系统的五种I/O模型,了解了这些模型,对理解java nio会有不小的帮助。 前言:一次网络请求的流程 先来看下一个服务端处理一次网络请求的流程图: 图1 一、图1解析 1.1:内核空间&用户空间 内核空间:指操作系统运行时用于程序调度、虚拟内
阅读全文
posted @ 2019-03-19 13:53 是胖虎捏
阅读(960)
评论(0)
推荐(0)
2019年3月14日
利用CompletableFuture优化程序的执行效率
摘要: 一、线程池的Future模式 在了解java8的CompletableFuture之前,先通过Future来解决一个问题,看个例子: 假设现在有一个网站,首页有顶部Banner位、左边栏、右边栏、用户信息几大模块需要加载,现在出一个接口,要求包装并吐出这几大模块的内容 先来抽象一个首页接口对象: p
阅读全文
posted @ 2019-03-14 22:50 是胖虎捏
阅读(2228)
评论(0)
推荐(0)
下一页
公告
GitHub
📍
Shanghai
昵称:
是胖虎捏
园龄:
6年3个月
粉丝:
53
关注:
5
<
2025年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
点击右上角即可分享