自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(193)
  • 收藏
  • 关注

原创 Hyxtrix

Hyxtrix 线程池隔离模式下。线程上下文丢失问题解决:https://zhuanlan.zhihu.com/p/32046755https://blog.csdn.net/songhaifengshuaige/article/details/80345012信号量优点:简单信号量 线程池 优点 缺点 适用场景 优点 缺点 适用场景 轻量无额外开销 不支持任务排队和主动超时 受信用户(超时可控) 支持排队和超时 ..

2021-02-26 15:43:21 205

原创 状态机

参考资料:https://tech.antfin.com/community/activities/779/review/901https://www.jianshu.com/p/4e5fbd008cbc

2021-01-28 19:38:40 171

原创 观察者模式实现

一、创建线程池@Configurationpublic class CommonConfig { @Bean(name = "eventExecutor") @ConditionalOnMissingBean(name = "eventExecutor") public ThreadPoolTaskExecutor threadPoolTaskExecutor() ...

2020-03-27 10:47:21 214

原创 数据库水平拆分

一、数据库拆分1.1 解决数据库性能瓶颈的常见方案1.主从架构主从架构通过读写分离(主节点负责写和部分读,从节点负责大量读,一般由Proxy层实现读写分离),一定程度解决主节点的性能瓶颈。由于默认主从同步是单线程的,因此数据库写入量上涨后,可能会存在主从延迟,如果对组从的不一致无法容忍,将会存在问题。因此主从架构主要缓解了单个数据库在流量上涨到一定阶段后的性能问题。当然主从架构也解...

2020-03-10 09:45:20 881

原创 JAVA 琐碎知识

基础Java编译后翻译成字节码,因此java程序与平台无关。 常量,在Java 中利用关键字final声明常量,习惯上常量全部用大写。 在Java 中,若期望某个常量在类中的多个方法中使用,通常将这些常量称为类常量。 使用关键字: static final &&和||是按照“短路”方式求值的,只要结果确定,后续的就不会再执行 在Math类中,包含了各种各样的数学函数。 ...

2020-03-08 17:14:03 225

原创 volitale 关键字

一、前言volitale 知识点主要涉及JAVA内存模型的知识点,volitale提供了内存可见性和禁止指令重排的功能。参考文章:https://blog.csdn.net/eff666/article/details/67640648二、知识点1.内存可见性 对变量进行访问和赋值时,观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码...

2020-02-20 16:02:08 272

原创 Java集合综述

Map综述概述HashTable基于哈希表,是线程安全的,其同步是通过synchronized实现的,核心操作put和get均通过synchronized修饰,所以并发效率低,现在已经不再推荐使用。 HashMap基于哈希表,是非线程安全的,对并发无要求的话,推荐使用这个map。 LinkedHashMap继承了HashMap,它改变了HashMap无序的特征,使用双向链表来会维...

2020-02-09 23:46:28 158

原创 synchronized

synchronized参考资料https://zhuanlan.zhihu.com/p/29866981synchronized基础Java对象由对象头和对象体组成,对象体存储的是对象的属性值。对象头包含3部分: Mark Word(64bit) 用来记录锁信息、GC年龄、hashCode 锁信息lock由2bit位表示,当lock为01时,需要1bit的bias...

2020-02-09 23:45:38 135

原创 Java 线程

一、线程状态备注:这个图唯一的问题是 o.wait() 超时后,会进入blocked状态,等待获取锁。阻塞状态不会被分配CPU

2020-01-16 14:01:14 119

原创 GC 相关问题

1、美团经典文章:https://tech.meituan.com/2017/12/29/jvm-optimize.html2、参考文章:https://www.cnblogs.com/Leo_wl/p/5393300.html3、GC 概念:https://www.jianshu.com/p/5ace2a0cafa44、CMS GC日志详细介绍:https://blog.csdn.n...

2019-12-31 10:04:28 191

原创 Rocket Mq 设计(design)

设计(design)1 消息存储消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构、PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面来分别展开叙述。1.1 消息存储整体架构消息存储架构图中主要有下面三个跟消息存储相关的文件构成。(1) CommitLog:消息主体以及元数...

2019-12-30 23:53:37 314

原创 RocketMq 专题

1、https://www.jianshu.com/p/453c6e7ff81c2、https://github.com/a2888409/RocketMQ-Learning/blob/master/book/ch2/2-remoting.md3、中间件博客:http://jm.taobao.org/2017/01/26/20170126/4、https://yq.aliyun.com...

2019-12-30 17:54:23 149

原创 RocketMq 最佳实践

最佳实践1 生产者1.1 发送消息注意事项1 Tags的使用一个应用尽可能用一个Topic,而消息子类型则可以用tags来标识。tags可以由应用自由设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:message.setTags("TagA")。2 Keys的使用每个消息在业务层面的唯一标识码...

2019-12-30 17:28:46 191

原创 线程的深入理解

wait和notify :https://blog.csdn.net/hemeinvyiqiluoben/article/details/82990817线程状态:https://blog.csdn.net/qq_22771739/article/details/82529874Monitor机制:https://www.jianshu.com/p/7f8a873d479c阻塞...

2019-12-27 10:10:49 98

原创 Redis 专题

1、几种基础数据类型String 计数器,用户信息(id)映射,唯一性(例如用户资格判断),bitmap Hash 常见场景:存储对象的属性信息(用户资料) List 常见场景:评论存储,消息队列 Set 常见场景:资格判断(例如用户奖励领取判断),数据去重等 ZSet(Sorted Set) 常见场景:排行榜,延时队列 Redis...

2019-12-26 14:00:05 190

转载 深度探索MySQL主从复制原理

主从复制:https://zhuanlan.zhihu.com/p/50597960binlog日志内容:https://juejin.im/post/5a72c2daf265da3e5234d879读写分离:https://www.jianshu.com/p/1ac435a6510e主从延迟:https://yq.aliyun.com/articles/42638概要MySQL...

2019-12-24 16:24:08 130

原创 Java 垃圾回收

一、引言Java虚拟机的内存管理是 JVM自主实现的,特别是内存的回收,也叫垃圾回收。理解垃圾回收,可以从3个方面入手:针对什么对象进行回收、什么时候回收、怎么进行回收。二、知识点2.1 针对什么对象进行垃圾回收首先需要说明的是,本节描述的是满足垃圾回收条件的对象,至于是否会被回收,取决于系统运行的状态是否满足触发垃圾回收的条件。一般探讨的是堆区的垃圾回收,方法区的垃圾回收比较苛刻...

2019-11-21 00:09:22 98

原创 应用日志配置

一、引言带有trackId的日志,对系统问题的定位很有帮助。二、知识点2.1 logback 日志的主要元素主要有3个元素:1、pattern 控制单条日志输出的格式。2、appender 是一个日志打印的组件,这里组件里面定义了打印过滤的条件、打印输出方式(控制台、文件)、滚动策略、编码方式、打印格式(由pattern指定)等等。3、logger 控制类和包的日志和哪...

2019-10-24 23:37:39 455

原创 Spring工程中 mysql 数据库的使用

一、引言数据库相关的组件封装和屏蔽了业务代码对mysql数据库访问的诸多细节,有必要对这些细节进行深入的了解,构建完整的数据库访问的知识链路。二、知识点2.1 JDBC参考:https://blog.csdn.net/luanlouis/article/details/300607551、JDBC:Java Database Connection,表示数据库连接(任何数据库都支...

2019-10-05 00:28:22 496

原创 Java 引用

一、引言Java 中有4种不同的引用:强引用、软引用、弱引用、虚引用,引用强度由强到弱。引用强弱的区分,主要跟Java内存回收机制有关。二、知识点2.1 强引用Object object = new Object();最普遍的引用,特点是只要引用object不失效,那么其指向的内存就不会被回收。如果想释放内存,object = null;ArrayList的clear()...

2019-09-28 20:19:21 110

原创 ThreadLocal

一、引言进行二、知识点2.1 Thread2.2ThreadLocal2.3InheritableThreadLocal2.4TransmittableThreadLocal

2019-09-28 19:57:25 99

原创 动态代理

一、引言代理是一种常见设计模式

2019-09-26 00:18:06 79

原创 Spring AOP

一、引言

2019-09-26 00:16:24 92

原创 事务

一、引言事务(Transaction)是数据库区别文件系统的重要特征之一。二、知识点2.1 事务基本概念数据库事务拥有以下四个特性,习惯上被称之为ACID特性。换句话说,满足下面4个特性的操作,可以认为是事务操作。原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。 一致性(Consistency):事务应确保数据库的...

2019-09-22 10:44:29 149

原创 Spring Boot Tomcat

一、引言Spring boot默认集成了Tomcat,了解Tomcat对了解Web服务器的运转过程和性能限制是极其重要的。二、知识点2.1 BIO、NIO、AIO2.2Tomcat2.3Spring boot内置Tomcat...

2019-09-22 10:40:48 127

原创

一、引言无论对分布式系统、还是单机系统,锁对并发编程都有着重要的意义。二、知识点2.1 Unix 锁linux内核中有多种内核锁,内核锁的作用是:多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理。linux内核锁机制有信号量、互斥锁、自旋锁还有原子操作。1、信号量(semaphore)信号量又称为...

2019-09-18 00:23:05 111

原创 JAVA static关键字

一、引言JAVA static 关键字可以修饰变量、方法、代码块,具有不同的作用。二、知识点2.1 static修饰代码块1、静态初始化是在类加载的时候执行的(有且仅有一次),静态初始化包括静态变量初始化和静态块初始化。访问类的静态变量、方法或是创建对象的时候会触发类加载。2、静态方法不具有多态。...

2019-09-17 23:29:19 83

原创 创建基于Spring boot项目的最小项目

一、引言一般的开发都是在原有的项目基础上进行,而且打包发布都是基于公司内部系统。因此,如何从无到有创建一个项目,并打包部署到指定机器上,是一项必须补充和掌握的知识。下面讲解的是基于mvn构建的Spring boot项目。二、知识点2.1 pom文件编写2.1.1 最小的pom配置1、根据环境生效不同的配置<?xml version="1.0" encoding=...

2019-09-09 23:36:52 425

原创 多数据源配置

目录一、前言二、配置示例2.1默认配置的目录如下2.2 多数据源配置三、程序示例3.1 配置数据源3.2 配置数据库管理一、前言配置文件满足Spring jpa默认配置的情况下,Spring jpa会根据配置自动生成数据库相关bean。此时test-on-borrow默认为true。当要在程序实现多数据源配置时,必须打破默认的数据库配置,所以必须要自己创建...

2019-09-05 23:52:08 206

原创 JAVA基础-hashCode和equals

一、引言hashCode和equals是object的公共方法,默认的hashCode和equals,均是基于内存地址的。String的equals是值比较,因为String的equals被重写过了。二、知识点自定义对象的equals方法是基于内存地址的,因此只有同一个对象才会相等,如果想实现基于对象属性比较的相等,就要自己重写equals方法。hashCode() 的作用是获取哈...

2019-08-12 00:42:31 120

原创 JAVA基础-参数传递

一、引言C++在进行参数传递的时候,有值传递、指针传递和引用传递。指针传递本质上也是值传递,所以C++有值传递和引用传递两种方式。形参:定义方法时的参数,未被调用时,不会占用内存;实参:调用方法时,传入的参数或是表达式,占用内存。值传递:形参是实参的拷贝。引用传递:引用传递是C++的概念,是变量的别名,特点是必须被初始化,且不可更改指向的对象。操作引用和操作其指向的变量,效果是一...

2019-08-12 00:27:14 90

原创 JAVA基础-引子

一、前言工作近一年,虽然已经可以胜任当前的工作,但是却也时常深感自己基础不扎实,知识薄弱。因此本系列主要巩固基础知识,以GitHub上的一个项目作为基本大纲,进行JAVA知识的学习。附上GitHub地址:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%...

2019-08-11 18:55:37 160

原创 系统设计-面向失败设计

一、引言今天被领导推荐了一篇文章,读完后觉得在工作中很有借鉴价值。将自己有所收获的部分摘录下来,加深记忆。二、知识点“Everything fails, all the time”,无论是在传统软件时代还是在互联网、云时代,系统终究会在某个时间点失败,面向失败的设计理念数十年来并没有多大的变化,不同的是在分布式、云架构的互联网时代:失败将由小概率偶发事件变成常态,同时应对和处理失败的具...

2019-08-11 18:54:39 1098

原创 JAVA基础-封装、继承、多态

一、前言JAVA语言是面向对象的语言,具备面向对象语言的特征:封装、继承、多态。二、知识点1、封装封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。2、继承继承是使用已存在的类的定义作为基础,建立新类的技术。新类的定义可以增加新的数据...

2019-08-11 00:54:19 550

原创 JAVA基础-String StringBuffer和StringBuilder的区别

一、前言其实之前也大概知道这个知识点,只是没有从源码的角度去验证过。通过idea发现JAVA所有的类,对于开发者而言都是可见的,这是学习的很好的途径。二、知识点1、可变性简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。而StringBuilder 与 Str...

2019-08-10 20:27:48 114

原创 开篇

一、前言前段时间跟同事聊天,谈论到了个人追求的时候,发现自己对物质和享乐其实是没有过高要求的。我所期待的是成就感、被他人需要,为了达成这些自己的期许,我要变成更强的自己。以此开端,期待自己能够坚持,持续成长、进步,成为一个更优秀的自己。...

2019-08-10 17:59:17 94

原创 基于阿里云构建服务

1、购买阿里云服务 根据需求选择服务,我选择了“突发性能实例 t5 ” 创建服务后,有两种方式访问机器。 通过阿里云控制台访问机器,需要远程访问密码。(最终也是需要ssh命令登录的) 通过终端,账号是root,密码是实例密码 登陆后,一段时间不活跃,会自动断开 2、创建mysql配置YUM源 下载mysql源安装包: wget h...

2019-08-04 18:27:32 150

转载 反射机制

摘要1、Class是一个特殊的Java类,作用是解析Java普通类对象2、每个类只有一个Class类对象3、Class将对象对应的.class字节码读入内存,并创建一个与之对应的Class对象,Class对象可以通过自身的方法,获取class普通类所有的构造函数、成员变量和成员函数4、通过Class对象,将普通类的所有构造函数、成员变量和成员函数都映射成一个个Java对象一、反...

2018-09-05 10:53:35 141

转载 静态(static)方法的继承和重写

1、父类方法如果是静态方法,子类不能覆盖为非静态方法;2、父类方法如果是非静态方法,子类不能覆盖为静态方法;3、父类静态方法可以被覆盖,允许在子类中定义同名的静态方法,但是没有多态。

2017-12-26 14:08:02 2485

转载 存储管理之页式、段式、段页式存储

https://www.cnblogs.com/suncoolcat/p/3400353.html

2017-12-24 13:40:00 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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