自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloudHytrix服务容错—源码分析

SpringCloudHytrix服务容错机制文章目录SpringCloudHytrix服务容错机制服务雪崩集群容错服务隔离服务熔断服务降级SpringCloud容错方案Hytrix原理实现--源码分析@EnableCircuitBreaker注解EnableCircuitBreakerImportSelector导入类HystrixCircuitBreakerConfiguration配置类HystrixCommandAspect切面HytrixInvokable接口的两个实现类1. AbstractC

2021-05-23 11:36:32 502

原创 计算机网络

计算机网络局域网内网的实现首先是本地网络供应商,与它连接的是公司的边缘路由,再由边缘路由深入到内部网络各个节点。图中的连接叫做通信链路,可以看到一台交换机可以连接多个设备,也就是产生了多条通信线路,所以数据传输到这多台设备的时候就需要进行路径选择,因此我们在这里进行了交换。交换:数据从一条链路进入交换机,在交换机内进行缓存,然后再切换到另一条链路。所以交换的本质也就是链路的切换。因为在网络中数据是以分组或者封包来进行传输的。数据的传输端对端(HOST–to-HOST)传输:最终提供服务或者享受

2021-05-05 00:08:08 377 4

原创 消息队列RabbitMQ、RocketMQ、Kafka

消息队列RabbitMQ、RocketMQ、Kafka区别?RabbitMQ的延时最低,微秒级别,单机吞吐量不好,高可用为主从,请求可以请求从机,但是从机上并没有消息数据,需要根据从主机同步过来的queue配置信息去主机上拉取过来返回给请求端。RocketMQ延时毫秒级别,吞吐量高,topic几百到几千时,吞吐量也不会下降太多。分布式架构可用性高。Kafka延时毫秒以内级别,吞吐量高,topic几十到几百时,吞吐量下降很多。分布式架构,一个数据多份副本集。为什么使用消息队列?解耦:生产者没必要去

2021-04-22 14:24:44 2264 4

原创 Mybatis缓存源码及分布式缓存应用

Mybatismybatis加载过程Config.xml全局配置文件解析放到configuration对象中,Java中的注解配置及SQL配置文件封装到statement对象中存储在内存,同样由configuration对象来维护映射文件加载:mappedStatement对象解析sql,每个sql对象对应一个statementID,将解析后的sql存储到map中,key就是statementID,value就是解析后的sql,存储到sqlsource中sqlSource对sql进行解析

2021-03-30 17:55:50 1771 5

原创 SpringCloudAlibaba Nacos服务注册与发现

SpringCloudAlibaba Nacos服务注册与发现文章目录SpringCloudAlibaba Nacos服务注册与发现一.Nacos安装二.创建工程,将注册服务到Nacos三.Nacos数据持久化到MySQL四.Nacos集群模式一.Nacos安装nacous下载地址:https://github.com/alibaba/nacos/releases,我用的是最新的1.3.1下载完解压,进入bin目录下,cmd结尾的是windows的,sh结尾的是linux和mac的启动和关闭器下面

2020-07-03 19:18:16 740

原创 MySQL 行锁 意向锁 间隙锁

MySQL 行锁 意向锁 间隙锁一、锁的分类共享锁:反正我就理解成读锁一个意思,事务A对某些数据加了共享锁,允许其他事务同时获取这些数据共享锁,但是不可以在这些数据上加排它锁。排它锁:理解成写锁吧,事务A对某些数据加了排它锁,那么其他事务不再允许加共享锁或排它锁。理解:这样讲吧~事务A读取了一条记录,事务B也可以读取这条记录,但是他不能做修改(也就是不能做写操作)。事务A修改了一条记录,事务B不能读不能写这条记录。读锁:事务A对某些记录加了读锁,那么其他事务也可以加读锁读取这些数据,但是不能对其进

2020-06-29 20:58:17 3047 4

原创 SpringBoot源码分析 + 自定义Starter

SpringBoot源码分析 + 自定义Starter注:这里我先讲源码~其实讲完源码,你就懂了为什么可以自定义Starter源码分析@SpringBootApplication注解------->组合注解由以下注解组成:其中@Targer 、@Retention、@Document、@Inherited四个注解为元注解**@Inherited:**父类有标注这个注解,那么子类不需要明确写出来就相当于标注了这个注解。相当于继承。**@SpringBootConfiguration:**

2020-06-28 17:21:08 1229

原创 JUC并发包 CAS、Synchronized、AQS、ReentrantLock、阻塞队列、原子类

锁的分类优化、CAS、Synchronized底层实现分类偏向锁:没有线程跟我争抢资源的,加个标记就可以了。轻量锁:竞争时间比较小,比如使用CAS就可以解决的。重量锁:竞争时间开销很大,需要利用操作系统的同步机制乐观锁:对目标资源不加任何锁,失败了,可以接着尝试悲观锁:当我要做操作时,我必须将资源锁起来,避免别人来干扰可重入锁:我是当前资源锁的拥有者,我再次获取的时候,不需要释放再获取。例如ReentrantLock不可重入锁:即使我是当前资源锁的拥有者,但是我再次获取这把锁,需要释放再获取

2020-06-24 16:52:49 627

原创 HashMap 与 ConcurrentHashMap

HashMap 与 concurrentHashMapHashMapHashMap在8中 的数据结构 数组+链表+红黑树这个结构很容易理解,任何一种hash算法都无法避免hash碰撞。未碰撞状态,肯定是以数组形式存储;碰撞,则以链表形式存储默认链表长度大于8,转为红黑树结构存储红黑树可以去了解一下,类似平衡二叉树,所以查找 可以看作二分查找,二分查找速度肯定是大于链表的。HashMap的put操作(Java8)~写了一些流程的大概注释,方便理解final V putVal(int ha

2020-06-24 00:36:22 1321

原创 Spring IOC 容器源码分析&AOP实现原理

SpringIOCBeanFactory 低级容器 定义了一些容器的基础行为ApplicationContext 高级容器ApplicationContext 为什么说是高级容器:它除了继承Bean Factory还继承了很多其他的接口,Listablexxxxxxx(可以获取beanname的list:xml 配置的那些 beanid),resourcexxxxx(加载一些资源),configurationxxxxx(加载配置文件之类的)…还有一堆其他的.FactoryBean:这个是一个类,其

2020-06-23 20:24:31 463

空空如也

空空如也

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

TA关注的人

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