自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ManuMAX的博客

一只胖天才的个人学习进阶架构师的博客

  • 博客(81)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kafka框架快速入门及异步通知

一个消息系统负责将数据从一个应用传递到另一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的官网:http://kafka.apache.orgKafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper创建容器Docker安装Kafka创建容器(1)创建Kafka-demo项目,导入依赖(2)生产者发送消息(3)消费者接收消息6、Spring Boot集成Kafka1 入门导入spring-kafka依

2023-02-17 21:40:24 1016 2

原创 MySQL索引类型——有五种

mysql中索引类型有:最基本的没有限制的普通索引,索引列的值必须唯一的唯一索引,主键索引,多个字段上创建的组合索引以及用来查找文本中的关键字的全文索引。

2023-02-17 15:31:29 1346

原创 告诉你为什么为什么 SELECT COUNT(*) FROM table 在 InnoDB 引擎中比 MyISAM引擎中的速度慢

InnoDB 引擎在 count(*)语句上也做了优化,我们知道,在 InnoDB 存储引擎中是以索引组织表的方式存储数据,主键索引树上叶子节点存放在所有的数据,而普通索引树的叶子节点是主键值,所以普通索引树会比主键索引树小很多,但是数量是一样的,也就是说遍历主键索引树和普通索引树得到的结果都是一样的。「InnoDB 中 count(*) 语句是在执行的时候,全表扫描统计总数量,所以当数据越来越大时,语句就越来越耗时了」,为什么 InnoDB 引擎不像 MyISAM 引擎一样,将总行数存储到磁盘上?

2023-02-17 15:10:13 689 1

原创 MySQL 索引 (只要能看完)(一篇就够了)

索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

2023-02-17 13:28:38 1000 1

原创 Dubbo与Spring Cloud优缺点分析(文档学习个人理解)

Dubbo 出生于阿里系,是阿里巴巴服务化治理的核心框架,并被广泛应用于中国各互联网公司;只需要通过 Spring 配置的方式即可完成服务化,对于应用无入侵,设计的目的还是服务于自身的业务为主。虽然阿里内部原因 Dubbo 曾经一度暂停维护版本,但是框架本身的成熟度以及文档的完善程度,完全能满足各大互联网公司的业务需求。如果我们使用配置中心、分布式跟踪这些内容都需要自己去集成,这样无形中增加了使用 Dubbo 的难度。

2023-02-16 15:42:02 622

原创 天荒地老修仙功-第七部:Dubbo基本使用与原理详解

分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

2023-02-15 18:13:48 862

原创 天荒地老修仙功-第六部:Spring Cloud Eureka——服务发现

Spring Cloud 是一套基于 Spring Boot 实现的微服务开发工具。微服务(也称微服务架构),简单的说,就是将一个系统按照一定的规则有效的拆分成多个不同的服务,每个服务都能够独立的进行开发、部署、扩展和维护。服务与服务之间可以通过 RESTful API 等方式进行相互调用。

2023-02-15 16:37:24 413

原创 天荒地老修仙功-第六部:Spring Cloud负载均衡Ribbon和Feign的区别

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均分】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】

2023-02-15 12:37:58 271

原创 天荒地老修仙功-第六部第二篇:Spring Cloud Eureka自我保护机制

Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期,但是在保护期内如果服务刚好这个服务提供者非正常下线了,此时服务消费者就会拿到一个无效的服务实例,此时会调用失败,对于这个问题需要服务消费者端要有一些容错机制,如重试,断路器等。

2023-02-15 12:04:07 339

原创 天荒地老修仙功-第六部:Spring Cloud中7中负载均衡策略

负载均衡器通常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角Ribbon 就属于后者——客户端负载均衡器(Client Load Balancer)**服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,所以客户端负载均衡就提供了这种灵活性。

2023-02-15 10:58:45 175

原创 spring cloud篇——什么是服务熔断?服务降级?服务限流?spring cloud有什么优势?

同样,在微服务架构中,熔断机制也是起着类似的作用。简陋的设计思路:假设一个用户(用IP判断)每分钟访问某一个服务接口的次数不能超过10次,那么我们可以在Redis中创建一个键,并此时我们就设置键的过期时间为60秒,每一个用户对此服务接口的访问就把键值加1,在60秒内当键值增加到10的时候,就禁止访问服务接口。令牌桶的另外一个好处是可以方便的改变速度. 一旦需要提高速率,则按需提高放入桶中的令牌的速率. 一般会定时(比如100毫秒)往桶中增加一定数量的令牌, 有些变种算法则实时的计算应该增加的令牌的数量.

2023-02-14 16:57:04 675

原创 SpringCloud篇——什么是SpringCloud、有什么优缺点、学习顺序是什么

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 基于 Spring Boot,因此在研究 Spring Cloud 之前,首先要学习Spring Boot 的用法,方便后续 Spring Cloud 的学习。

2023-02-14 16:13:44 813

原创 Spring Boot 知识点个人总结

spring boot是spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。Spring Java Config是Spring社区的产品,它提供了配置SpringIoC容器的纯Java方法。因此它有助于比卖你使用XML配置。面向对象的配置。由于配置被定义为Java Config中的类,因此用户可以充分Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等减少或者消除XML配置。

2023-02-14 15:41:55 282

原创 如何理解SpringBoot中的Starters?

加入spring-boot-starter-data-jpa启动器依赖就能使用了。Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。方的启动器不能以spring-boot开头命名,它们都被Spring Boot官方保留。一般一个第三方的应该。Spring及其他技术,而不需要到处找示例代码和依赖包。这样命名,像mybatis的mybatis-spring-boot-starter。依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

2023-02-14 14:19:33 373

原创 elasticsearch深度分页问题

使用scroll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,直到搜索出全部的数据来scroll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,如果这个期间数据变更,是不会让用户看到的。search_after 是一种假分页方式,根据上一页的最后一条数据来确定下一页的位置,同时在分页请求的过程中,如果有索引数据的增删改查,这些变更也会实时的反映到游标上。现在student这个索引中共有6条数据,id分别为 1, 2, 3, 4, 5, 6。

2023-02-14 14:07:27 404

原创 Spring Boot起步依赖Starters

Spring Boot 技术性starters注:查看GitHub上位于Spring-boot-starters 模块内的README文件,可以获 取到一个社区贡献的其他starters列表。

2023-02-14 13:05:18 196

原创 Spring Boot 最核心的27个注解,你了解多少?

这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。

2023-02-13 22:15:50 10202 12

原创 为什么要用springboot进行开发呢?

学习了一段时间springboot,一般都可以在项目中使用springboot开发了。因为springboot的东西并不多,或者说,springboot根本就没有新东西。好了,现在问一句,我们为什么要用springboot?我听过的回答:Spring Boot 最主要是不用 XML 配置,可以用 Java 来配置 bean,省去了许多配置文件。我又问:Spring 本身就可以用 Java 配置代替 XML 配置,和 Spring Boot 有什么关系呢?A:。。。

2023-02-12 22:02:48 4073 3

原创 Spring事务的传播级别——包你一文通

方法是否开启事务状态是否回滚开启事务失败全部回滚methodBA内部直接加入事务,不单独开启,单独调用开启失败全部回滚失败全部回滚所有方法在同一个事务中运行,要么一起成功提交事务,要么一起回滚事务,如果单独执行,各自单独开启各自事务。

2023-02-12 20:04:41 1208

原创 数据库(Spring)事务的四种隔离级别

Q1:为什么会出现脏读A1:因为没有“select”操作没有规矩Q2:为什么会出现不可重复读A2:因为“update”操作没有规矩Q3:为什么会出现幻读A3:因为“insert”和“delete”操作没有规矩Q4:“读未提交(Read Uncommitted)”能预防啥?A4:啥都预防不了Q5:“读提交(Read Committed)”能预防啥?A5:使用“快照读(Snapshot Read)”,避免“脏读”,但是可能出现“不可重复读”和“幻读”Q6:“

2023-02-12 18:00:55 1377

原创 spring 中的 Bean 是否线程安全

那么,定义为 prototype 的 Bean,是在每次 getBean 的时候都会创建一个新的对象。基于对以上 Spring Bean 作用域的理解,下面我们来分析一下在 Spring 容器中,什么样的Bean 会存在线程安全问题。所以,最终我们得出结论,在 Spring 中,只有有状态的单例 Bean 才会存在线程安全问题。我们在使用spring的过程中,经常会使用到有状态的单例 Bean,如果真正遇到了线程安全问题,我们该如何处理呢?因此,多例 Bean 是不存在线程安全问题的。

2023-02-12 16:03:48 436

原创 Spring 中 ApplicationContext 和 BeanFactory 的区别

基本上牵涉到事件(Event)方面的设计,就离不开观察者模式,ApplicationContext 的事件机制主要通过ApplicationEvent 和 ApplicationListener 这两个接口来提供的,和 Java swing 中的事件机制一样。而 ApplicationContext 面向使用Spring 的开发者,相比 BeanFactory 提供了更多面向实际应用的功能,几乎所有场合都可以直接使用 ApplicationContext,而不是底层的 BeanFactory。

2023-02-11 21:17:03 650

原创 Spring框架中用到的设计模式(都用到了哪些设计模式?)

这是一道相对有难度的题目,你不仅要回设计模式,还要知道每个设计模式在Spring中是如何使用的。

2023-02-11 21:04:56 1668

原创 关于spring bean的生命周期的个人理解(根据官方文档学习)

首先说一下Servlet的生命周期:实例化,初始init,接受service,销毁destroy;

2023-02-11 18:20:58 2078

原创 依赖的注入方式有几种?各是什么?如何实现?

若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,(复杂)。如果类A要使用别人提供的一个功能,若为了使用这功能,需要在自己的类中增加额外的代码,这就是侵入性。依赖类必须要实现指定的接口,然后实现该接口中的一个函数,该函数就是用于依赖注入。优点 :接口注入中,接口的名字、函数的名字都不重要,只要保证函数的参数是要注入的对象类型即可。将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注。缺点: 依赖对象初始化完成后由于尚未注入被依赖对象,因此还不能使用。

2023-02-11 16:37:06 711

原创 有 9 种springMVC常用注解高频使用,来了解下?

重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean。代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把。@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策。

2023-02-11 15:46:52 521

原创 面试官问我:说说你对Spring MVC的理解

点个关注,必回关MVC:MVC是一种设计模式。

2023-02-11 15:04:37 259

原创 Autowired和Resource关键字有什么区别??秒懂!!!

Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2023-02-11 11:51:22 355

原创 乐观锁和悲观锁的理解及如何实现,乐观锁的实现方式。看完你就明白了!

在了解悲观锁和乐观锁之前,我们先了解一下什么是锁,为什么要用到锁?技术来源于生活,锁不仅在程序中存在,在现实中我们也随处可见,例如我们上下班打卡的指纹锁,保险柜上的密码锁,以及我们我们登录的用户名和密码也是一种锁,生活中用到锁可以保护我们人身安全(指纹锁)、财产安全(保险柜密码锁)、信息安全(用户名密码锁),让我们更放心的去使用和生活,因为有锁,我们不用去担心个人的财产和信息泄露。

2023-02-11 11:32:15 488

原创 阻塞队列、阻塞队列的实现原理、七种阻塞队列分析及源码解读、使用阻 塞队列来实现生产者-消费者模型

以 Last 单词结尾的方法,表示插入,获取或移除双端队列的最后一个元素。意思就是消费者线程取元素时,如果队列不为空,则直接取走数据,若队列为空,那就生成一个节点(节点元素为null)入队,然后消费者线程被等待在这个节点上,后面生产者线程入队时发现有一个元素为null的节点,生产者线程就不入队了,直接就将元素填充到该节点,并唤醒该节点等待的线程,被唤醒的消费者线程取走元素,从调用的方法返回。性能上两者是相当的,一般情况下,FIFO 通常可以支持更大的吞吐量,但 LIFO 可以更大程度的保持线程的本地化。

2023-02-11 11:18:29 333

原创 从ReentrantLock的实现看AQS的原理及应用

Java 中的大部分同步类(Semaphore、ReentrantLock 等)都是基于 AbstractQueuedSynchronizer(简称为 AQS)实现的。AQS 是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过 ReentrantLock 的基本特性和 ReentrantLock 与 AQS 的关联,来深入解读 AQS 相关独占锁的知识点,同时采取问答的模式来帮助大家理解 AQS。

2023-02-11 10:52:05 226

原创 面试官问我:说说你对JMM内存模型的理解?为什么需要JMM?

随着CPU和内存的发展速度差异的问题,导致CPU的速度远快于内存,,高速缓存一般可以分为L1、L2、L3三级缓存。基于上面的例子我们知道了这导致了缓存一致性的问题,所以加入了缓存一致性协议,同时导致了内存可见性的问题,,JMM内存模型正是对多线程操作下的一系列规范约束,因为不可能让陈雇员的代码去兼容所有的CPU,通过JMM我们才屏蔽了不同硬件和操作系统内存的访问差异,这样保证了Java程序在不同的平台下达到一致的内存访问效果,同时也是保证在高效并发的时候程序能够正确执行。

2023-02-10 21:43:53 738

原创 一文搞懂CAS实现原理——怀玉

CAS(Compare and swap)是一种用于在多线程环境下实现同步功能的机制。

2023-02-10 21:30:10 845

原创 什么是死锁?死锁产生的四个必要条件是啥?如何避免和预防死锁的产生?

死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。例如,在某个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P1占用着的输入设备。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。

2023-02-10 20:13:44 1244

原创 锁的优化机制了解嘛?请进!

从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是一个很重量级的锁了。优化机制包括自适应锁自旋锁锁消除锁粗化轻量级锁和偏向锁。锁的状态从低到高依次为,升级的过程就是从低到高,降级在一定条件也是有可能发生的。

2023-02-10 20:02:30 531 1

原创 Java程序的执行顺序、简述对线程池的理解

点个关注,必回关。

2023-02-10 19:56:44 843

原创 Java常见的六种线程池、线程池-四种拒绝策略总结

点个关注,必回关。

2023-02-10 18:18:32 3763

原创 Java线程中:Runnable和Callable的区别和联系

其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。6 }

2023-02-10 18:04:44 710

原创 Java线程池中submit() 和 execute()方法有什么区别

点个关注,必回关。

2023-02-10 17:41:23 871

原创 什么是 fail-fast机制 看着一篇就够了

fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。在详细介绍fail-fast机制的原理之前,先通过一个示例来认识fail-fast。CopyOnWrite容器即写时复制的容器。

2023-02-09 16:56:54 445

超级详细的讲解Java异常ppt,带你深入了解Java异常

详细讲解异常的始末,深入了解异常和解决异常。 明确 1、异常的概念 2、异常的种类 3、如何捕获和处理异常 4、处理异常时的注意点有哪些 附带一张异常的结构图

2022-06-24

空空如也

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

TA关注的人

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