java
文章平均质量分 89
李莲花*
一勤万事通 一懒万事空
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap 的底层实现(判断元素存放的位置,解决哈希冲突,优化扩容)
在Java中,保存数据有两种比较简单的数据结构:数组和链表。数组的特点是:寻址容易,插入和删除困难;链表的特点是:寻址困难,但插入和删除容易;所以我们将数组和链表结合在一起(即散列表),发挥两者各自的优势原创 2022-10-15 23:45:39 · 1398 阅读 · 1 评论 -
多线程概述(线程创建,方法(等待,通知,加入,睡眠,礼让,中断),上下文切换,死锁,守护线程与用户线程)
在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源原创 2022-09-30 20:10:03 · 677 阅读 · 0 评论 -
@Redis企业级解决方案(缓存预热,雪崩,击穿,穿透)
缓存预热 :缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!缓存雪崩:短时间范围内,大量key集中过期(瞬间过期数据量太大,导致对数据库服务器造成压力。如能够有效避免过期时间集中,可以有效解决雪崩现象的 出现(约40%))原创 2022-09-29 09:46:21 · 2576 阅读 · 0 评论 -
@Redis--哨兵模式
哨兵简介:哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控。当出现故障时通过投票机制选择新的master并将所有slave连接到新的master (如果redis的master宕机了,此时应该怎么办?我们可能需要从一堆的slave中重新选举出一个新的master,要实现这些功能,我们就需要redis的哨兵)注意:哨兵也是一台redis服务器,只是不提供数据相关服务,通常哨兵的数量配置为单数原创 2022-09-29 09:31:39 · 883 阅读 · 0 评论 -
@Redis--主从复制
为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份原创 2022-09-28 20:02:29 · 1391 阅读 · 0 评论 -
@Redis--数据删除与淘汰策略
数据删除策略:删除策略就是针对已过期数据的处理策略 (在内存占用与CPU占用之间寻找一种平衡,保证redis性能)。数据淘汰策略:当新数据进入redis时,如果内存不足怎么办?redis 要临时删除一些数据为当前指令清理存储空间。清理数据的策略称为逐出算法原创 2022-09-28 19:54:02 · 410 阅读 · 0 评论 -
@Redis--持久化
持久化 :利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化原创 2022-09-28 19:49:34 · 641 阅读 · 0 评论 -
@Redis--数据类型及使用场景
数据类型:数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串。Redis有五种常用数据类型:String、Hash、Set、List、SortedSet。以及三种特殊的数据类型:Bitmap、HyperLogLog、Geospatial ,其中HyperLogLog、Bitmap的底层都是 String 数据类型,Geospatial 的底层是 Sorted Set 数据类型原创 2022-09-28 19:44:27 · 1222 阅读 · 0 评论 -
@Redis(redis简介,下载与安装配置,基本操作)
Redis 概念:Redis 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。不过与传统数据库不同的是 Redis的数据是存在内存中的,也就是它是内存数据库,所以读写速度⾮常快,因此 Redis 被⼴泛应⽤于缓存⽅向。另外,Redis除了做缓存之外,Redis也经常⽤来做分布式锁,甚⾄是消息队列。Redis提供了多种数据类型来⽀持不同的业务场景。Redis还⽀持事务 、持久化、Lua 脚本、多种集群⽅案原创 2022-09-28 19:33:39 · 460 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--文档搜索机制剖析
Elasticsearch的搜索类型(SearchType类型)2.0之前四种 QUERY_AND_FETCH, DFS_QUERY_AND_FETCH, QUERY_THEN_FETCH,DFS_QUERY_THEN_FETCH2.0版本之后 只有两种了原创 2022-09-28 19:24:23 · 823 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--分布式数据一致性机制
分布式数据一致性机制(quorum及timeout机制):在分布式环境下,一致性指的是多个数据副本是否能保持一致的特性。(对系统的一个数据更新成功之后,如果所有用户都能够读取到最新的值,该系统就被认为具有强一致性)原创 2022-09-28 19:21:17 · 788 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--并发冲突处理机制
并发冲突处理机制:多个线程共同操作一个资源导致数据出错。es 乐观锁并发控制 :Es的多线程异步并发修改是基于自己的_version版本号进行乐观锁并发控制的 (Es 的后台都是多线程异步的,多个请求之间是乱序的,可能先修改的后到,后修改的先到。 在后修改的先到时,比较版本号,版本号相同修改可以成功,而当先修改的后到时,也会比较一下_version版本号,如果不相等就再次读取新的数据修改。这样结果会就会保存为一个正确状态)原创 2022-09-28 19:18:26 · 1038 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--索引文档存储段合并机制
索引文档存储段合并机制 段合并的时候会将那些旧的已删除文档从文件系统中清除(由于自动刷新每秒会创建一个新的段 ,这样会导致短时间内的段数量暴增。而段数目太多会带来较大的麻烦。 每一个段都会消耗文件句柄、内存和 CPU 运行周期。更重要的是,每个搜索请求都必须轮流检查每个段;所以段越多,搜索也就越慢) Es 通过在后台进行段合并来解决这个问题。小的段被合并到大的段,大的段再被合并到更大的段。原创 2022-09-28 19:13:48 · 521 阅读 · 0 评论 -
@Elasticsearch之企业级高可用分布式集群(es分布式架构,集群规划,分布式集群调优策略)
ES 的分布式架构 :分布式架构特性:高扩展,高可用,实时性 Es是一个分布式系统,隐藏了复杂的处理机制。集群 cluster:一个集群由一个或多个节点组织而成 它们持有整个数据 提供索引和搜索功能 每个集群都有一个共同的集群名称作为标识原创 2022-09-28 19:04:05 · 1621 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--深度分页问题
深度分页问题 (ES 默认采用的分页方式是 from+ size 的形式,类似于mysql的分页limit 当请求数据量比较大时,会带来严重的性能问题CPU 内存 IO ES默认设置分页的数据超过第1万条,就拒绝返回结果 所以深度分页的请求并不合理,在很多的业务场景中,都直接限制分页,比如只能看前100页) 但个别业务场景需要进行深度分页 比如后台批处理任务 群发(有1千万粉丝的微信大V,要给所有粉丝群发消息,这时候就需要取得所有符合条件的粉丝)原创 2022-09-25 18:53:38 · 578 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--索引文档写入和近实时搜索原理(基本概念,Es写操作流程,近实时搜索原理 ,持久化变更原理)
索引文档写入和近实时搜索原理:基本概念,Es写操作流程,近实时搜索原理 ,持久化变更原理原创 2022-09-25 18:50:43 · 386 阅读 · 0 评论 -
@Elasticsearch之深度应用及原理剖析--Filter过滤机制剖析(bitset机制与caching机制)
Filter 过滤机制 filter大部分情况下,在query之前执行,先尽量过滤掉尽可能多的数据 因为query要计算doc的score还要根据这个score排序原创 2022-09-25 18:42:38 · 581 阅读 · 0 评论 -
@elasticsearch(简介,安装启动,插件,核心配置,操作,分词器)
ElaticSearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。原创 2022-09-25 18:35:00 · 511 阅读 · 0 评论 -
@Redis高级(数据删除淘汰策略,主从复制,哨兵模式,集群,缓存预热,雪崩,击穿,穿透)
在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露针对过期数据要进行删除的时候都有哪些删除策略呢?原创 2022-09-08 11:57:01 · 486 阅读 · 0 评论 -
@Redis(简介,数据结构,操作指令,持久化RDB和AOF)
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。特征:(1)数据间没有必然的关联关系;(2)内部采用单线程机制进行工作;(3)高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。原创 2022-09-07 18:40:10 · 531 阅读 · 0 评论 -
设计模式-迭代器模式
迭代器模式提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。原创 2022-09-07 12:15:44 · 134 阅读 · 0 评论 -
@设计模式-状态模式
对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。原创 2022-09-07 11:56:00 · 202 阅读 · 0 评论 -
@设计模式-组合模式
又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。原创 2022-09-07 11:42:48 · 179 阅读 · 0 评论 -
@设计模式-桥接模式
试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一个维度上新增一个具体实现都要增加多个子类。为了更加灵活的设计系统,我们此时可以考虑使用桥接模式。桥接模式将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。原创 2022-09-07 10:58:10 · 145 阅读 · 0 评论 -
@设计模式-装饰器模式
允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。原创 2022-09-07 10:31:22 · 180 阅读 · 0 评论 -
@设计模式-观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。原创 2022-09-07 10:11:33 · 202 阅读 · 0 评论 -
@设计模式-适配器模式
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。原创 2022-09-07 09:50:26 · 197 阅读 · 0 评论 -
@设计模式-工厂模式
什么是工厂模式?我们在创建对象时不会对客户端直接暴露创建逻辑,而是 通过使用一个共同的接口根据不同的条件来指向具体想要创建的对象。原创 2022-09-06 19:56:56 · 296 阅读 · 0 评论 -
@一文搞懂设计模式--模板模式
模板模式实际上是在父类中定义处理流程的框架,在子类中具体实现具体处理的模式。转载 2022-09-06 19:23:54 · 151 阅读 · 0 评论 -
@设计模式-代理模式
在软件开发中,也有一种设计模式可以提供与代购网站类似的功能。由于某些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称之为“代理”的第三者来实现间接访问,该方案对应的设计模式被称为代理模式。原创 2022-09-06 19:09:39 · 249 阅读 · 0 评论 -
@一文搞懂设计模式--单例模式
单例模式的核心思想十分的简单,在开发一个系统的时候,为了保证系统中的数据一致,我们会希望某些特殊的类在整个系统的运行过程中只能存在一个实例。最简单的实现方式就是将这个要求交给开发者,让开发者在开发的时候多加注意。转载 2022-09-06 19:08:27 · 137 阅读 · 0 评论 -
@设计模式-单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。原创 2022-09-06 19:06:52 · 222 阅读 · 0 评论 -
@Spring应用(简介,注解,IOC,AOP,事务,模板对象)
Spring应用(简介,注解,IOC,AOP,事务,模板对象),案例操作实现原创 2022-09-04 12:20:03 · 202 阅读 · 0 评论 -
@Spring MVC面试题
Spring MVC是spring框架的一部分。 Spring MVC 是当前最优秀的 MVC 框架。Spring MVC 下我们⼀般把后端项⽬分为 Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台⻚⾯),将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。原创 2022-09-04 12:13:46 · 296 阅读 · 0 评论 -
@SpringMVC
Spring MVC是一种基于Java实现MVC架构的轻量级框架。通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。原创 2022-09-04 12:11:09 · 428 阅读 · 0 评论 -
@springcloud 下(feign,网关,配置中心,消息总线)
Feign的作用:不再使用拼接URL的方式实现远程调用,以接口调用的方式实现远程调用,简化了远程调用的实现方式,增强了远程调用的功能,例如:增加了负载均衡、熔断、压缩、日志启用。原创 2022-09-04 12:00:42 · 613 阅读 · 0 评论 -
@springcloud 上(简介,注册中心,负载均衡,熔断器)
大家谈起的微服务,大多来讲说的只不过是种架构方式。其实现方式很多种:Spring Cloud,Dubbo,华为的Service Combo,Istio 。那么这么多的微服务架构产品中,我们为什么要用Spring Cloud?因为它后台硬、技术强、群众基础好,使用方便;原创 2022-09-04 10:07:04 · 470 阅读 · 0 评论 -
@SpringBoot自定义启动器
Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,大概意思就是说starter是一种对依赖的synthesize(合成)。starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的starter是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异原创 2022-09-03 18:27:52 · 157 阅读 · 0 评论 -
@springboot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。原创 2022-09-03 18:23:23 · 379 阅读 · 0 评论 -
SpringBoot自定义启动器
Spring Boot自定义启动器简介和实例操作原创 2022-09-03 11:48:51 · 763 阅读 · 0 评论
分享