自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hankin的博客

学习笔记整理

  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 第四章 分布式任务调度笔记

代码git地址:https://gitee.com/hankin_chj/schedule-job-platform.git一、任务调度的基本用法1、Quartz Scheduler开源框架Quartz是开源任务调度框架中的翘首,是java业务界事实上的任务调度标准。 Quartz提供了强大任务调度机制,而且使用简单。Quartz允许开发人员灵活地定义触发器的调度时间表,并可以对触发器...

2019-11-29 23:09:26 1893

原创 第三章 Session共享&单点登陆笔记

一、传统Session机制及身份认证方案1、Cookie与服务器的交互如上图,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息。比如我们现在要实现一个电商内的购物车功能,要怎么才能知道哪些购物车请求对应的是来自同一个客户的请求呢?session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端...

2019-11-29 22:24:43 771

原创 第三章 Springboot核心原理实战笔记

对于springboot来说,还有两块是比较有意思的,第一就是发现他内置了tomcat,接下来一快就是他对springmvc进行了无缝整合,我们也可以来试试。一、内嵌tomcat首先来看下最简单的tomcat集成,新建一个项目springboot-tomcat-embed1、pom文件如下:<!--Java语言操作tomcat --><dependency>...

2019-11-25 18:06:08 423

原创 第二章 Springboot进阶部分笔记

一、集成Redis1、修改pom文件,增加依赖<!-- redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&lt...

2019-11-23 22:15:09 967

原创 第一章 SpringBoot基础入门笔记

一、SpringBoot简介 1、SpringBoot基础介绍 Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。我们为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring配置。你可以使用Spring Boot创建Java应用,并使用java -jar启动它...

2019-11-23 22:02:10 554

原创 第二章 分布式事务实战笔记

一、事务基本概念 1、什么是事务?事务是恢复和并发控制的基本单位,事务有四个特性(ACID),原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。2、事务经典场景假设这样一个场景: A给B转账100,流程步骤如下:第一步:A减100,第二步:B多100。如果第一步骤执行后,系统崩溃掉了,会怎么样呢...

2019-11-23 21:48:40 529

原创 第一章 缓存实战笔记

一、缓存的概念 1、外存 外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U 盘等,一般的软件都是安装在外存中(windows系统指的是CDEF盘, Linux系统指的是挂载点)。2、内存内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的...

2019-11-23 21:33:03 391

原创 第六章 Redis集群部署笔记

RedisCluster是redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当遇到单机内存、并发等瓶颈时,可使用此方案来解决这些问题。一、分布式数据库概念分布式数据库把整个数据按分区规则映射到多个节点,即把数据划分到多个节点上,每个节点负责整体数据的一个子集;比如我们库有900条用户数据,有3个redis节点,将900条分成3份,分别存入到 3个re...

2019-11-16 19:03:37 264

原创 第五章 Redis高可用模式解读笔记

一、Redis复制1. 主从复制 方式1:新增redis6380.conf,加入slaveof 192.168.30.156 6379,在6379启动完后再启6380,完成配置;方式2:redis-server --slaveof 192.168.30.156 63791)增加从节点配置文件,设置slave-serve-stale-data yesslave-serve-s...

2019-11-16 16:34:46 295

原创 第四章 Redis性能测试、手写及事务笔记

一、Redis慢查询分析与mysql一样,当执行时间超过极大值时,会将发生时间耗时、命令记录redis命令生命周期:发送、排队、执行、返回慢查询只统计第3个执行步骤的时间1、慢查询原理慢查询记录也是存在队列里的,slow-max-len存放的记录最大条数,比如设置的slow-max-len=10,当有第11条慢查询命令插入时,队列的第一条命令就会出列,第11条入列到慢...

2019-11-15 12:55:24 522

原创 第三章 Redis设计实战笔记

一、基于Redis设计的投票网站实战1、应用场景实战文章投票功能模块需求用户可以发表文章,发表时默认给自己的文章投了一票 用户在查看网站时可以按评分进行排列查看 用户也可以按照文章发布时间进行排序 为节约内存,一篇文章发表后,7天内可以投票,7天过后就不能再投票了 为防止同一用户多次投票,用户只能给一篇文章投一次票2、关系数据库设计文章基本信息表 t_articlea...

2019-11-13 15:55:32 353 1

原创 第二章 常见的Redis场景设计笔记

一、String存储1、String存储介绍Key的设计注意事项:一般以业务功能模块: 比如购物车key: cart:001,表示1号用户的购物车,简短明了以主,节约内存。简单字符缓存:set key valueget key结构体或对象的存储:a)set user:1 value //value为XML或Json格式b)mset user:1:nam...

2019-11-13 15:31:26 187

原创 第一章 Redis基础笔记

一、Redis基础入门 1、redis介绍redis是一种基于键值对(key-value)数据库,其中value可以为string、hash、list、set、zset等多种数据结构,可以满足很多应用场景。还提供了键过期、发布订阅、事务、流水线等附加功能,流水线:Redis 的流水线功能允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户...

2019-11-13 15:13:33 544

原创 深入理解JVM——第七章 编写高效优雅的JAVA程序

一、面向对象1、构造器参数太多怎么办?如果参数很多,会导致构造方法非常多,拓展性差,代码难编写,且难以看懂。用JavaBeans模式, get和set 一行构造编程多行代码实现,需要使用额外机制确保一致性和线程安全。用builder模式,5个或者5个以上的成员变量 数不多,但是在未来,参数会增加Builder模式:属于对象的创建模式,一般有抽象建造者:一般来说是个...

2019-11-08 10:59:08 114

原创 第五章 手写Tomcat笔记

一、什么是Tomcat?Tomcat本质上是一款开源轻量级Web应用服务器,是一款优秀的Servlet容器实现。核心2点,Web服务器、Servlet容器。阿里中间件团队:http://jm.taobao.org/about/很多公司都手写或者重写Tomcat.比如aliTomcat : https://help.aliyun.com/document_detail/9075...

2019-11-08 10:58:49 326

原创 第五章 限时订单实战笔记

什么是限时订单?在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已过期,这种订单称之为限时订单。代码地址:https://gitee.com/hankin_chj/rocketmq-platform.git(rocket-delay-order)一、如何实现限时订单1、限时订单的流程电商平台都会包含以下 5 种状态。待付款:代表买家下单了但是...

2019-11-08 10:57:37 952 1

原创 第四章 RocketMQ源码分析笔记

使用的RocketMQ版本是4.4.0,鉴于RocketMQ通信模块的底层源码是Netty实现的,在学习RocketMQ的源码之前,建议读者先对Netty的多线程模型、JAVA NIO模型均有一定的了解,以便快速理解RocketMQ源码。RocketMQ源码安装和调试见《RocketMQ源码安装和调试.docx》。一、RocketMQ整体架构 RocketMQ主要的功能集中在NameSer...

2019-11-08 10:52:03 448

原创 第三章 主从同步(HA)机制学习笔记

一、RocketMQ集群部署模式 1、集群部署模式 1.1、单master模式 也就是只有一个master节点,称不上是集群,一旦这个master节点宕机,那么整个服务就不可用。1.2、多master模式 多个master节点组成集群,单个master节点宕机或者重启对应用没有影响。优点:所有模式中性能最高;缺点:单个master节点宕机期间,未被消费的消息在节点恢复之...

2019-11-01 17:14:02 1128

sentinel-dashboard1.7.2-Nacos.jar

参考大目老师的sentinel1.6.2改造,支持Nacos持久化sentinel规则。 注意:在完成了上面的整合之后,对于接口流控规则的修改就存在两个地方了:Sentinel控制台、Nacos控制台。这个时候,需要注意当前版本的Sentinel控制台不具备同步修改Nacos配置的能力,而Nacos由于可以通过在客户端中使用Listener来实现自动更新。所以,在整合了Nacos做规则存储之后,需要知道在下面两个地方修改存在不同的效果: Sentinel控制台中修改规则:仅存在于服务的内存中,不会修改Nacos中的配置值,重启后恢复原来的值。 Nacos控制台修改规则:服务的内存中规则会更新,Nacos中持久化规则也会更新,重启后依然保持。

2020-07-06

并发编程笔记20190526.docx

第一章 线程基础、线程之间的共享和协作 3 一、基础概念 3 1. 什么是进程和线程 3 2. CPU核心数和线程数的关系 3 3. 澄清并行和并发 5 4. 多线程程序需要注意事项 6 二、认识Java里的线程 7 1. Java程序天生就是多线程的 7 2. 线程的启动与中止 7 3. 对Java里的线程再多一点点认识 8 三、线程间的共享和协作 9 1. 线程间的共享 9 2. ThreadLocal辨析 11 3. 线程间的协作 19 4. 面试题 21 第二章 线程的并发工具类 21 一、 Fork/Join框架的介绍 21 1、实现步骤: 22 2、工作窃取算法 22 3、分而治之 23 4、Fork/Join使用的标准范式 24 5、Fork/Join框架的异常处理 26 6、Fork/Join框架的实现原理 26 二、闭锁CountDownLatch 28 1、应用场景 28 2、CyclicBarrier 28 3、Semaphore 29 4、Callable、Future和FutureTask 30 5、原子操作CAS (compare atomic swap) 32 三、显式锁和AQS 34 1、AQS定义两种资源共享方式: 34 2、深入源码 37 3、了解Condition的实现 42 4、 锁的可重入 44 第三章 并发容器ConcurrentHashMap 46 一、JDK1.7中原理和实现 47 1、分段锁机制 47 2、ConcurrentHashMap中的数据结构 47 3、ConcurrentHashMap初始化 48 4、ConcurrentHashMap的操作 51 二、JDK1.8中原理和实现 54 1、ConcurrentHashMap的数据结构 54 2、ConcurrentHashMap的初始化 55 3、Node链表和红黑树结构转换 56 4、ConcurrentHashMap的操作 57 三、JDK1.8实现与1.7相比的重大变化 59 四、 更多的并发容器 60 1. ConcurrentSkipListMap和ConcurrentSkipListSet: 60 2. 写时复制容器 60 五、阻塞队列 60 第五章 JMH性能测试 62 1、 JMH环境搭建 62 2、 执行 63 3、 基本概念 63 4、 注解与选项 63

2020-07-01

空空如也

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

TA关注的人

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