自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Eureka

Eureka Eureka用于微服务的服务注册, 服务者每30s向服务注册中心发送心跳信息 消费者从服务注册中心拉取可用的服务,根据负载均衡器的相应规则,选取服务者。 使用Eureka 创建eureka服务注册中心模块 引入eureka-server 的maven坐标 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&gt

2022-04-06 16:46:19 464

原创 Spring中已知的设计模式

1. 单例模式 2. 代理模式 Aspect AOP 3. 建造者模式 SqlSessionFactoryBuilder.build() BindingBuilder MessageBuilder ExchangeBuilder QueueBuilder 4. 工厂方法模式 SqlSessionFactory BeanFactory 5. 模板方式模式 RabbitTemplate RestTemplate RedisTemplate 6. 适配器模式 HandlerAdapter 7. 执行器链模式 Ha

2022-04-06 13:46:38 569

原创 Rabbitmq

RabbitMQ 消息可靠性(消息至少被成功消费一次) 实现延迟消息投递 (延迟对列) 高可用(集群) 解决消息堆积问题(持久化) 消息可靠性 生产者消息丢失:–>生产者确认机制 - 消息未到达交换机 (成功ACK 不成功NACK) - 消息到达交换机,未到达队列 (不成功ACK+报错) MQ服务挂了,队列中的消息丢失 -->队列持久化( durable ) consumer接收消息但是未成功消费 -->消费者确认机制+消费者失败重试机制 (成功ACK 失败NACK) 生产

2022-03-31 17:27:44 3592 1

原创 Redis哨兵集群

踩坑 sentinel:主从 redis.conf 和 sentinel.conf replica-announce-ip 本机ip 如果有设置密码: #redis.conf master 密码 masterauth 123456 #redis.conf 节点密码 requirepass 123456 #sentinel.conf sentinel auth-pass mymaster 123456 如果有设置密码: redisTemplate config 文件需要配置 spring.redis.pas

2022-03-29 11:42:18 1132

原创 MySQL的MVCC

事务隔离的实现 理解了事务的隔离级别,我们再来看看事务隔离具体是怎么实现的。这里我们展开说明“可重复读”。 在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。 假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就会有类似下面的记录。 当前值是 4,但是在查询这条记录的时候,不同时刻启动的事务会有不同的 read-view。如图中看到的,在视图 A、B、C 里面,这一个记录的值分别是 1、2、4,同一条记录在系统中可以存

2022-03-15 08:59:19 1712

原创 synchronized和volatile底层实现

synchronized(锁对象) Synchronized的作用 在并发编程中存在线程安全问题,主要原因有: 1.存在共享数据 2.多线程共同操作共享数据 一、synchronized的特性 缓存导致的可见性问题,线程切换带来的原子性问题,编译优化带来的有序性问题 1.1 原子性 所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。但是像i+

2022-02-22 15:35:20 525 1

原创 线上接口调度过慢的排查方法

ping 和telnet确保网络联通 top -c 查看cpu使用和负载均衡 free -m 查看剩余内存是否足够 jstack工具 查看是否存在死锁 jstack pid

2022-02-20 20:32:41 531

原创 2021-08-10 JVM后续排版 先弄图

2021-08-10 15:43:21 156

原创 Java并发实战之原子性、可见性、有序性

并发程序幕后的故事 这些年,我们的 CPU、内存、I/O 设备都在不断迭代,不断朝着更快的方向努力。但是,在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。CPU 和内存的速度差异可以形象地描述为:CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间)。内存和 I/O 设备的速度差异就更大了,内存是天上一天,I/O 设备是地上十年。 程序里大部分语句都要访问内存,有些还要访问 I/O,根据木桶理论(一只水桶能装多少水取决于它最

2021-08-04 16:09:18 184

原创 2021-07-28 MVN打包项目及将源码加入本地仓库

1.将源码加入本地仓库 进入源码所在src目录 执行: mvn clean source:jar install 2.只有jar包 没有jar包描述信息 执行 mvn install:install-file -Dfile=D:\jar\xxx.jar -DgroupId=xx.xxx -DartifactId=xxx Dversion=1.0 -Dpackaging=jar

2021-07-28 21:50:29 2040

原创 MySQL-03 全局锁、表锁、行锁

今天我想聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 MySQL数据库对锁的支持离不开事务,所以,看完本篇文章以后再看我写的02事务章节,或者看完事务的隔离级别以后再看本篇文章,对于理解将会有质的飞跃。 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 今天这篇文章不会涉及锁的具体实现细节,主要介绍的是碰到锁时的现象和其背后的原理。 全局锁 顾

2021-06-25 11:18:13 265

原创 MySQL-01 深入浅出索引

深入浅出索引(上) 重点讲解:InnoDB 的索引模型 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 索引的常见类型有哈希表、有序组数、搜索树。 哈希表:联想HashMap的底层结构即可。如果Hash冲突概率很高,很多Key的哈希值相同,下边挂载的链表很长时,由于链表是无序的,所以搜索对应具体值很慢。所以,哈希表这种结构适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎。 有序数组:数组嘛 查询速度杠杠的,但是新增修改删除速度太慢,消耗资源太多。 二叉搜索树:

2021-06-23 15:41:47 200

原创 HTTP协议 破冰-01

1. HTTP协议的发展进程 URI:即统一资源标识符,作为互联网上资源的唯一身份; HTML:即超文本标记语言,描述超文本文档; HTTP:即超文本传输协议,用来传输超文本。 HTTP/0.9 ** 20世纪90年代发布** 只能传输简单的文本 HTTP/1.0 **1993年发布 ** 同一时期,计算机多媒体技术也有了新的发展:1992 年发明了 JPEG 图像格式,1995 年发明了 MP3 音乐格式。 增加了 HEAD、POST 等新方法; 增加了响应状态码,标记可能的错误原因; 引入了协议

2021-06-22 13:05:37 225

原创 Elastic Search

文档 (就类似于MySQL中一个表的一条条数据) 之前说elasticsearch是面向文档的,那么意味着索引和搜索数据的最小单位是文档,elasticsearch中,文档有几个重要属性: 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含keyralue! 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的!(就是一个JSON对象,FastJson进行转换!) 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能使用,在elasticsearch中,对于字

2021-05-13 14:25:52 1061

原创 SpringMvc的实现原理01

1.从DispatcherServlet开始 public class DispatcherServlet extends FrameworkServlet public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware public abstract class HttpServletBean extends HttpServlet implements Envir

2020-12-01 22:34:10 151

原创 Spring掉坑一

** 掉坑陷阱一: ** @ControllerAdvice配合@ExceptionHandler使用: 重点@ControllerAdvice类和请求的@Controller必须在同一包下 实例 首先 1:打开基于注解的SpringMVC模式 2:编写发送错误信息的Controller和RequestMapping 3.编写处理异常的类 当包名和Controller报名不在同一级目录下 就会由Tomcat处理错误 如果是在同一级目录下 就会转发到自定义异常处理页面 重点: 自定义异常处理类一定要

2020-11-12 11:42:14 130

原创 @SpringBootApplication 启动流程

在主配置类上加上@SpringBootApplication注解 表明这是SpringBoot主配置类, @SpringBootApplication注解主要由以下注解构成 @SpringBootConfiguration //SpringBoot配置类 @EnableAutoConfiguration //开启自动配置 @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFi

2020-09-27 23:42:15 402

原创 IOC初始化bean的流程

Bean的声明周期 1)容器启动时创建Bean 2)给Bean通过DI设置对象属性 3)如果Bean实现了BeanFactoryAware方法,则会调用BeanFactoryAware方法中的SetBeanName(); 4)如果 bean实现了BeanFactoryAware 接口,工厂通过传递自身的实例来调用setBeanFactory()。 5)如果存在与 bean 关联的任何BeanPostProcessors(前置处理器),则调用preProcessBeforeInitialization() 方

2020-09-09 00:58:01 510

空空如也

空空如也

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

TA关注的人

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