- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 ByteTcc 分布式事务图解
入口分析: 功能性框架,看下datasource引入的 SpringCloudConfiguration里面相关的配置、bytetcc-supports-springcloud.xml相关配置。发现以下重要类: CompensableMethodInterceptor、CompensableManagerImpl、CompensableHandlerInterceptor、CompensableFeignHandler、CompensableTransactionImpl、Compens.
2021-06-24 15:48:25 630
原创 JTA + Atomikos + Druid 分布式事务源码图解
入口: 根据前一篇文章,得知入口是 TransactionInterceptorXA 规范说明: 对多个数据源操作 d1: 1) d1XAResource.start: xa事务准备 2) d1.prepareStatement sql拼接 3) d1XAResource.end xa事务准备完成 d2: 1) d2XAResource.start: xa事务准备 2) d2.
2021-06-16 18:13:26 286
原创 spring事务源码分析
入口分析:1、对于spring源码有一定了解的话,一定知道,对每个插件想要被spring管理,则会实现其对应的接口,并以*Handler结尾,所以找到了 TxNamespaceHandler2、TxNamespaceHandler extends NamespaceHandlerSupport 2.1 init() new TxAdviceBeanDefinitionParser(); 根据类继承体系,找到关键的bean实例化代码 2.2 TxAdv.
2021-06-15 14:42:58 145
原创 Feign源码图解
1、Feign入口分析// Scans for interfaces that declare they are feign clients@Import(FeignClientsRegistrar.class)public @interface EnableFeignClients {}2、初始化流程分析 2.1 FeignClientsRegistrar.registerBeanDefinitions FeignClient注册到spring容器 2.1.1 re.
2021-05-28 10:53:08 304
原创 Ribbon源码图解
1、Ribbon分析入口 LoadBalancerAutoConfiguration2、Ribbon 分析流程 2.1 LoadBalancerInterceptor.incept 方法 2.2 RibbonLoadBalancer.execute 方法 2.2.1 getLoadBalancer -> 选择loadbalancer -> ZoneAwareLoadBalancer 2.2.2 getServer -> 选择.
2021-05-27 15:33:34 202
原创 eureka源码画图剖析
1、eurekaServer启动web.xml<listener> <listener-class>com.netflix.eureka.EurekaBootStrap</listener-class></listener>@Overridepublic void contextInitialized(ServletContextEvent event) { try { initEurekaEnvironment();
2021-05-20 14:47:44 125
原创 Chrome 跨域 请求不携带cookie
一个月没动的项目,今天突然需要优化一个功能,项目启动,美滋滋的 localhost:8082访问前端页面,登录成功,访问数据页面,报未登录一脸懵逼,一个月前好好的项目,突然就出问题了,查看下请求发现没有携带cookie异常情况,没有携带cookie正常访问 携带cookie一脸懵逼的找来了搭建项目的大佬,好像也不清楚,没法自己研究吧,发现浏览器console中有这么个提示Indicate whether to send a cookie in a cros..
2020-08-21 15:23:19 5459
原创 2次生产环境调优
一直都是在网上看各种调优,自己没遇见过,好了,终于在生产环境中遇到了,一个是同事代码造成的,一个是自己造成的,记录一下一、问题说明:问题一 、OOM 之 Java.lang.OutOfMemeoryError:unable to create new native thread,导致服务挂掉了问题二、top命令查看服务器CPU使用情况,目前查看占用是 760%,严重异常了二、问题排查问题一: 1、日志问题排查 从日志中就能看出是...
2020-07-27 11:20:19 194
原创 Spring Spring Mvc源码 图形化解读
阶段性的学习总结,留作纪念: 已完成:Spring源码、Spring mvc源码 简单了解,画图学习 待完成:@RequestBody、@ResponseBody的解析过程分析,Aop、Tx在请求时的处理PS:大半个月才画出来,没想到能坚持下来,还有mac不用鼠标画图是真的难受一、Spring源码,初始化目的:了解Bean的实例化、初始化进程分析起源...
2019-11-25 17:12:53 256
原创 Nio flip()方法,position limit capacity
代码: FileInputStream fileInputStream = new FileInputStream("test1.txt"); FileChannel channel = fileInputStream.getChannel(); ByteBuffer byteBuffer = ByteBuffer.allocate(20); S...
2019-05-22 17:56:21 202
原创 反射 + 注解实现动态导入功能,单表导入与有关联的外检表,以及对象内表关联
最近项目中有5个导入模块,不想复制粘贴,加上最近对注解和反射有点想用的的冲动,写了个粗略的动态导入:PS:以下内容过长,容易引起舒适度不爽,请做好心理准备一、需求分析:0、导入的数据列头是中文,所以需要用反射 + 注解进行对应1、基础字段,如user 的 name 、age;2、外键关联字段,如属于哪个部门 ,dept_id(导入的是中文名称,需要将对应的id查询出来)3、...
2019-01-02 15:00:19 451
原创 node+webpack+babel+vue2
最近初学vue,以前也没玩过node,参照着各种博客,完成了简单的环境搭建,步骤如下:一、安装node.js(很简单,官网下载,一键到底安装)安装完成后 node -v能出现版本号安装成功二、环境配置(以下均为原生的npm,没有研究淘宝的cnpm)1、新建项目,在开发工具或者目录中直接新建项目,在项目根目录执行一下命令npm init -y该命令可以生成package.js...
2018-10-15 15:04:47 489
原创 SpringBoot异常统一处理机制
springboot官网说了三种异常处理,分为机器客户端和浏览器客户端,区别为机器客户端请求返回的是头中Accept是"/"或者空,异常返回值json,浏览器客户端请求头中Accept是"text/html" 返回的是html如下图:机器客户端:浏览器客户端:下面对两种客户端的三种异常处理方式做简单分析:一、浏览器客户端:官网提供两种方式,一种是直接在public...
2018-10-09 16:30:49 4518
原创 ThreadLocal线程安全
ThreadLocal原理:1、查看ThreadLocal的set方法可以看到getMap方法通过当前线程获取当前线程的ThreadLocalMap public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if ...
2018-09-27 15:46:00 307
原创 快速排序
实现原理:1、找出中值项M2、将数据通过中值项分为 D1(所有小于等于M的数据) D2(所有大于M的数据)3、在D1 D2中递归执行1/2/3PS:中值项的选取,如果直接选取最中间的数据,在某些时候会导致快速排序的性能下降到O(N^2),所以为了容错,选取数据的第一个,最后一个,中间的数据,对三个进行排序,再进行上诉的 1 2 3(1的规则在此说明) 快速排序和归并排序的区...
2018-09-27 15:15:53 183
原创 多线程循环打印A B C D。。。。
class ProducerThread1 extends Thread { private UserEntity userEntity; public ProducerThread1(UserEntity userEntity) { this.userEntity = userEntity; } @Override ...
2018-09-25 09:31:18 386
原创 希尔排序
希尔排序:排序时间大Obiao表示预估为O(N^(3/2)) 到 O(N^(7/6))30万数据耗时: 1276代码如下: private long[] longArr; private int nElems; public ShellSort(int size) { longArr = new long[size]; nEle...
2018-09-03 11:24:15 200
原创 归并排序
归并排序: 效率高,会占用内存空间,在排序阶段会生成与排序数组相同大小的数组(内存充足随便用)大O表示:Nlog2(N) 与 简单排序(O(N^2))相比,数据越大,效率相差越大30万时间:57 ms简单排序见 https://blog.csdn.net/fighterGuy/article/details/81707108/归并排序 即二分排序和递归的结合体public c...
2018-08-29 10:22:20 195
原创 spring类的注入和new简单理解
springboot 1、main.run方法进入 2、refreshContext 3、refresh 4、finishBeanFactoryInitialization(完成beanFactory的初始化) 5、preInstantiateSingletons(初始化单例) 6、getBean(获取Bean) 7、doGet...
2018-08-21 16:54:34 3525
原创 docker学习篇之docker简单部署springboot
1、将docker文件和打包的springboot项目放入linux服务器2、docker构建镜像docker build -t receivetest .(此处有个小点)3、docker images可以看到镜像4、运行镜像docker run -d -p 8080:8000 receivetest:latest (测试镜像是否可用,并在页面访问应用可以访问)5、打包成tar包 ...
2018-08-20 14:08:14 237
原创 Cannot execute request on any known server
一、Cannot execute request on any known server产生原因分析: 1、服务端启动报这个错误,原因没有以下配置,配置的含义为不将服务端作为客户端使用 register-with-eureka: false fetch-registry: false2、客户端报这个错误 原因: a、eureka没有启...
2018-08-20 14:01:19 11924
原创 几种简单排序算法
最近对java数据结构和算法的一些编程和总结,以博客形式开始记录:一、冒泡排序: /** * * 冒泡排序,两个相邻的比较大小 1、右侧为最大 2、左侧为最大 * 10万条数据排序时间: 16234ms 30万:151927ms * 大O分析: * 比较次数: (...
2018-08-15 17:11:03 221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人