- 博客(5)
- 收藏
- 关注
原创 Java Agent简介及使用Byte Buddy和AspectJ LTW监控方法执行耗时
1、什么是Java AgentJava Agent提供了一种在加载字节码时,对字节码进行修改的方法。一共有两种方式执行:一种是在main方法执行之前,通过premain来实现;另一种是在程序运行中,通过attach api来实现1)、InstrumentationInstrumentation是JDK1.5提供的API,用于拦截类加载事件,并对字节码进行修改,它的主要方法如下:public interface Instrumentation { //注册一个转换器,类加载事件会被注册的
2021-03-28 15:30:11 1501
原创 TransmittableThreadLocal详解
ThreadLocal和InheritableThreadLocal学习资料:二刷Java多线程:ThreadLocal详解线程池学习资料:二刷Java多线程:线程池详解1、InheritableThreadLocal+线程池局限性InheritableThreadLocal支持子线程访问在父线程中设置的线程上下文环境,其实现原理是在创建子线程时将父线程中的本地变量值复制到子线程,即复制的时机为创建子线程时当提交一个新任务到线程池时,线程池的处理流程如下:线程池判断线程数是否达到核心线程数且线程
2021-03-27 21:52:07 1942 2
原创 Sharding-Jdbc实现读写分离、分库分表
1、概览ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,可理解为增强版的Jdbc驱动,完全兼容Jdbc和各种ORM框架2、MySQL主从复制1)、docker配置mysql主从复制1)创建主服务器所需目录mkdir -p /usr/local/mysqlData/master/cnfmkdir -p /usr/local/mysqlData/master/data2)定义主服务器配置文件
2021-03-27 14:46:08 2436 2
原创 Apollo核心源码解析(二):Apollo Client轮询配置(ConfigRepository与RemoteConfigLongPollService)、配置中心通用设计模型
本文接上文Apollo核心源码解析(一):Portal发布配置、Admin Service发送ReleaseMessage、Config Service通知客户端3、Apollo Client上图简要描述了Apollo客户端的实现原理:客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送(通过Http Long Polling实现)客户端还会定时从Apollo配置中心服务端拉取应用的最新配置这是一个fallback机制,为了防止推送机制失效导致配置不更新客户端定时拉取会上报.
2021-03-14 10:36:57 1632 1
原创 Apollo核心源码解析(一):Portal发布配置、Admin Service发送ReleaseMessage、Config Service通知客户端
1、Apollo架构设计Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口Client通过域名访问Meta Server获取Config Service
2021-03-13 15:02:53 1550
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人