自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

转载 springboot

作用启动器(Starter)包含许多依赖项,这些依赖项是使项目快速启动和运行所需的依赖项。例如: 通过配置spring-boot-starter-data-redis,可以快捷的使用Spring对Redis进行数据访问。命名规范官方开发的starter遵循类似命名模式;第三方starter命名应当遵循thirdpartyproject-spring-boot-starter常用Starter。...

2022-08-05 10:57:26 129 1

原创 RPC技术

RPC概念

2022-06-26 21:41:27 122

原创 sharding-jdbc入门

概览认识ShardingSphereShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由ShardingJDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。官网地址: https://shardingsphere.apache.org/index_zh.htmlShardingSph

2022-05-20 11:25:17 356

原创 数据库中间件设计理论

数据库中间件设计要点

2022-05-12 20:08:08 251

原创 Linux系统下载并安装Redis

Linux上下载并安装Redis:下面是下载安装过程,如果只是想快速安装,那就直接看图中命令,全部下载安装命令都在图中1、在home目录下下载Redis安装包下载Redis安装包命令:wget http://download.redis.io/releases/redis-5.0.5.tar.gz2、解压压缩包得到名为redis-5.0.5的文件解压命令:tar xf redis-5.0.5.tar.gz3、我要把Redis安装到/usr/locat/ 目录下,所以下面的操作是把redis-5

2022-05-07 11:19:09 204

原创 BIO、NIO

讲述BIO到NIO想干

2022-03-25 16:53:35 1618

原创 Kafka踩坑记

kafka消费重试

2022-02-25 17:18:26 1236

原创 java并发线程工具类

CountDownLatch概念countDownLatch这个类使用一个线程等待其他线程各自执行完毕后再执行是通过一个计数器实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程*就可以恢复工作了。源码1.countDownLatch类中只提供了一个构造器//参数count为计数值public CountDownLatch(int count) { }; 类中有三个方法是非常重要的:/

2022-02-23 10:25:19 154

原创 java集合类总结

HashMapHashMap中的属性:1.capacity:容量,Node数组的大小(桶的数量),值为2的N次幂2.threshold:扩容阈值,等于capacity * load factor 当size大于此值时进行扩容3.loadFactor:负载因子,默认为0.75f4.size属性是指map中的键值对个数5.initialCapacity hashMap初始化时设置的容量大小(Node数组的长度),initialCapacity = (需要存储的元素个数 / 负载因子) + 1,如果可

2022-02-15 23:27:53 116

原创 reentrantLock、readWriteLock、AQS

Lock接口使用void lock() 获取锁(不死不休)方法不允许Thread.interrupt中断,即使检测到Thread.isInterrupted,一样会继续尝试获取锁,失败则继续休眠。只是在最后获取锁成功后再把当前线程置为interrupted状态,然后再中断线程。bollean tryLock() 获取锁(浅尝辄止,尝试获取锁)boolean tryLock(long time,TimeUnit unit)throws InterruptedExcepiton 获取锁(过时不候,

2022-02-01 22:36:07 501

原创 手写ReentarntLock

自定义reetrantlock方便理解

2022-01-24 16:21:16 174

原创 线程操作原子性

原子性违反原子性示例public class Counter{ volatile int i=0; public void add(){ i++; } public static void main (String[]args)throws InterruptedExcetion{ final Counter ct=new Counter(); for(int i=0;i<6;i++){ ne

2022-01-20 11:23:13 46

原创 线程操作原子性

原子性违反原子性示例public class Counter{ volatile int i=0; public void add(){ i++; } public static void main (String[]args)throws InterruptedExcetion{ final Counter ct=new Counter(); for(int i=0;i<6;i++){ ne

2022-01-16 17:50:19 133

原创 CPU高速缓存与JMM

yCPU高速缓存为了解决CPU越来越快的运行速度与相对较慢的主存访问速度的矛盾。CPU中的寄存器数量有限,在执行内存寻址指令时,经常需要从内存中读取指令所需的数据或是将寄存器中的数据写回内存。引入高速缓存后,CPU在需要访问主存中某一地址空间时,高速缓存会拦截所有对于内存的访问,并判断所需数据是否已经存在于高速缓存中。如果缓存命中,则直接将高速缓存中的数据交给CPU;如果缓存未命中,则进行常规的主存访问,获取数据交给CPU的同时也将数据存入高速缓存。缓存一致性在多核CPU的架构下,通常每一个核心都拥有

2022-01-16 17:48:24 407

原创 使用condition来实现阻塞队列

使用Lock和Condition实现阻塞式队列

2022-01-16 12:32:35 235

原创 Synchronized底层实现,锁升级的具体过程

Synchronized锁升级

2021-12-31 14:40:02 267

原创 请求合并

高并发场景中,调用批量接口相比调用非批量接口有更大的性能优势。但有时候,请求更多的是单个接口,不能够直接调用批量接口,如果这个接口是高频接口,对其做请求合并就很有必要了。比如电影网站的获取电影详情接口,APP的一次请求是单个接口调用,用户量少的时候请求也不多,完全没问题;但同一时刻往往有大量用户访问电影详情,是个高并发的高频接口,如果都是单次查询,后台就不一定能hold住了。为了优化这个接口,后台...

2019-08-27 23:28:26 4372

原创 事务

1.什么是事务?  事物指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。2.事务的特性: 原子性、一致性、隔离性、持久性。  原子性:是指事物是一个不可分割的工作单元,事务中的操作要么都发生,要么都不发生。  一致性:是指事务前后数据的完整性必须保持一致,即数据总和是一致的(比如张三有两千元,李四有两千元 张三转账给李四一千元,这时张三有一千元,李四有三千元,这样数...

2018-12-11 22:30:03 121

转载 web项目没有main方法,怎么运行的?

首先理解一下main方法:你的java程序要运行,总要有一个起点,所以我们就约定,从main方法这里开始一行一行执行,java程序跑起来,一般是通过主类的main方法启动的。web容器是作为web程序的一部分存在的,由web容器启动你自己写的代码,像void main()之类的,测试的时候有时候会用到,其他基本不用。tomcat的主类是BootStrap类,也是以此类的main方法作为入口...

2018-11-13 16:45:44 10260 2

转载 详细介绍Java虚拟机(JVM)

1. JVM生命周期启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者...

2018-11-13 15:22:38 112

转载 消息总线(MQ)知多少

版权声明:本文为博主原创文章,欢迎转载并注明出处 https://blog.csdn.net/u010255818/article/details/778558731 什么时候用MQ?1.1 MQ的基本概念  消息总线(Message Queue,MQ),是一种跨进程的通信机制,用于在上下游之间传递消息。MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务,消息发送上游只需要依赖MQ...

2018-11-13 10:31:13 861

转载 《JAVA与模式》之策略模式——我看过最好的一篇策略模式博文

《JAVA与模式》之策略模式(转载自http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html)在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:  策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算...

2018-09-11 23:10:00 142

转载 实现java 中 list集合中有几十万条数据,每100条为一组取出

/**     * 实现java 中 list集合中有几十万条数据,每100条为一组取出     * @param list 可穿入几十万条数据的List     * @return map 每一Kye中有100条数据的List     */    @SuppressWarnings({ "unchecked", "rawtypes" })    public Map groupLis...

2018-09-06 15:29:41 21109 3

转载 MySql小表驱动大表

有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。一、优化原则小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,员工表中有部门id ...

2018-08-27 22:44:14 1242 1

转载 解决Eclipse,MyEclipse出现An error has occurred,See error log for more details的错误

现把找到的解决方法整理提供给大家,文章来源于 http://blog.sina.com.cn/s/blog_4ba5b45e0102eam8.html 如下:方法1. 在"开始"-->"运行"---->打入"cmd"进入命令提示行后,再进入eclipse的安装目录,         然后输入eclipse -clean即可(我用的这个方法 成功了)方法2. 删除co

2016-05-16 18:31:30 1512

深入理解MySQL核心技术

本书深入源代码,剖析了MySQL数据库系统的架构,并提供了分析、集成和修改MySQL源代码的专家级建议。本书分三个部分:第一部分介绍开发和修改开源系统的概念,提供探讨更高级数据库概念所需的工具和资源;第二部分讨论MySQL系统,阐明如何修改MySQL源码,如何将MySQL系统作为嵌入式数据库系统;第三部分更深入地探讨了MySQL系统,讲述数据库工作的内部机理。本书面向MySQL数据库开发人员。

2018-10-22

空空如也

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

TA关注的人

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