7 张图讲清楚ZooKeeper分布式锁实现原理

中华石杉,十余年BAT架构经验倾囊相授。个人微信公众号:石杉的架构笔记(ID:shishan100)

2019-01-16 16:41:44

阅读数:16

评论数:0

Spring源码分析~AOP如何生成代理对象

注意:各个版本可能有些不一致,我看的版本:4.3.17 看源码肯定需要一个入口,我们准备了一个demo,很简单,一个main方法,一个config类,一个对象(需要被代理的对象),一个日志切面类; 一个对象: package com.anotation.aop; import org.s...

2019-01-04 17:59:29

阅读数:55

评论数:0

从Spring源码角度分析bug

结合源码分析 Spring 容器与 SpringMVC 容器之间的关系 问题 问题描述:项目中发现,自定义切面注解在 Controller 层正常工作,在 Service 层却无法正常工作。为了便于分析,去掉代码中的业务逻辑,只留下场景。 自定义注解,打印时间 /**  * Descri...

2018-12-24 21:59:22

阅读数:33

评论数:0

生产环境如何使用java线程池

ThreadPoolExecutor谁都会用,但是如何用的好、用的对,可能就仁者见仁、智者见智~ 吹之前,还是把ThreadPoolExecutor简单介绍一下: public ThreadPoolExecutor(int corePoolSize, ...

2018-12-09 15:06:44

阅读数:133

评论数:0

Spring源码解读以及Spring整体结构浅析

BeanFactory结构图 Spring容器启动过程 Bean实例化过程   1、bean实现Aware接口的意义(图中检查Aware相关接口并设置相关依赖) package com.anotation.bean; import org.springframework.beans...

2018-10-18 22:49:13

阅读数:103

评论数:0

Spring注解驱动开发

Spring注解驱动开发图谱 对于一些复杂、重要、难懂的注解进行详细说明: @Conditional:按照条件依赖注入bean到spring容器 package com.anotation.bean; public class Person { private String name;...

2018-10-02 21:28:52

阅读数:130

评论数:0

Spring配置文件beans.xml头部配置解释

看如下的beans.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h...

2018-09-13 17:15:01

阅读数:131

评论数:0

java知识图谱

2018-09-08 22:02:44

阅读数:201

评论数:7

分布式系统设计

  高可用分布式系统应该要考虑以下几个大点和一些小点,大点与小点之间其实有包含、有交集,只是为了方便分点论述才分类。 四个大点: 容错能力(服务隔离、异步调用、请求幂等性、分布式锁) 可伸缩性(有 / 无状态的服务) 一致性(补偿事务、重试) 应对大流量的能力(熔断、降级) 两个小点:...

2018-07-16 22:32:55

阅读数:360

评论数:0

消息中间件:Kafka

mq使用的目的 应用解耦:屏蔽实现细节、异步通信,升级、扩容互不影响 流量消峰:生产速率>消息速率、消息积压能力、秒杀系统、批量导入 消息广播 最终一致性 kafka多实例、多分区、多副本: 1、说明: kafka实例:有四个Broker(四个kafka实例)...

2018-06-04 20:04:43

阅读数:192

评论数:0

SpringMVC 统一预处理返回值 @ControllerAdvice,ResponseBodyAdvice 统一处理返回值/响应体

ResponseBodyAdvice是spring4.1的新特性,其作用是在响应体写出之前做一些处理;比如,修改返回值、加密等。我在项目中的用到@ControllerAdvice,ResponseBodyAdvice的目的,是为每个请求的返回json中修改一个属性值。ResponseBodyAdv...

2018-05-16 17:31:29

阅读数:555

评论数:0

redis安装、启动、命令执行

mac下redis安装请参考文章:https://www.cnblogs.com/feijl/p/6879929.html写的简介明了,关键是靠谱,亲自试了,没问题;1、关闭、启动redis服务端:必须先到redis的安装目录下:cd /Users/zhengchao1991/redisTest/...

2018-04-09 22:09:10

阅读数:163

评论数:0

使用maven插件反向映射generatorConfig.xml生成代码

一、 配置Maven pom.xml 文件<!-- 反向映射 --> <plugin> <groupId>org.mybatis.generator&...

2018-02-13 11:38:43

阅读数:280

评论数:0

类加载器:ServiceLoader简述

ServiceLoader与ClassLoader是Java中2个即相互区别又相互联系的加载器.JVM利用ClassLoader将类载入内存,这是一个类声明周期的第一步(一个java类的完整的生命周期会经历加载、连接、初始化、使用、和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直接被使用...

2018-01-10 09:34:22

阅读数:241

评论数:0

java重写hashcode方法那点事

今天在调用别人写的对象时发现一个很奇怪的问题,首先描述下需求: 简要需求:从数据库查询一个对象Dish,将这个Dish上传到某某平台,过一点时间后,某某平台会将该Dish对象传回来,我们需要判断这个对象在数据库是否有被修改的痕迹;我们首先想到的就是第一次从数据库查询出这个对象的时候,计算出其h...

2017-12-27 21:18:14

阅读数:2811

评论数:0

读懂 MySQL 执行计划

前言 在之前的面试过程中,问到执行计划,有很多童鞋不知道是什么?甚至将执行计划与执行时间认为是同一个概念。今天我们就一起来了解一下执行计划到底是什么?有什么用途? 执行计划是什么? 执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常...

2017-11-28 09:24:08

阅读数:281

评论数:0

ThreadPoolExecutor中的RejectedExecutionHandler浅析

当ThreadPoolExecutor中的线程都已经忙于执行,且有界队列也满了,这个时候就需要自己写reject策略;此处给一个demo,供大家去理解和参考: 1、先写一个可执行的线程 package zhengchao_001_005.ThreadPoolExecutor; public ...

2017-10-26 22:29:33

阅读数:378

评论数:0

性能分析5~top命令、jps命令、jstack命令:分析多线程下HashMap卡死原因分析

多线程下,HashMap使用很容易出bug,直接被卡死,原因分析我们先看一段代码: import java.util.HashMap; import java.util.Map; /** * 多线程下HashMap卡死原因分析 */ public class Test4_HashMap_bu...

2017-09-13 14:59:56

阅读数:816

评论数:0

性能分析4~jmap命令分析:堆信息、内存溢出

先看一个例子:jmap -heap pid该命令用于:展示pid的整体堆信息,运行结果如下 zhengchao1991deMacBook-Pro:~ zhengchao1991$ jmap -heap 33628 Attaching to process ID 33628, please wait...

2017-08-25 16:45:40

阅读数:622

评论数:0

性能分析3~jstack命令分析:死锁原因、cpu使用率过高的线程

jstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下: jstack [option] pid jstack [option] executable core jstack [option] [server-id@]remote-hostname-or-ip     命令行参数...

2017-08-23 16:53:50

阅读数:2023

评论数:0

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