自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Magic.zz

JavaYYDS

  • 博客(27)
  • 收藏
  • 关注

原创 谈谈对Docker的理解

Docker使用Google公司推出的Go语言进行开发实现的,基于Linux内核、Union FS(联合文件)等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。

2023-12-01 12:40:03 61

原创 AMQP 与 MQTT:消息协议比较

在非技术领域协议是指管理个人或群体之间交互的一组既定规则或指南。例如,当您参加正式活动或聚会时,通常需要遵循有关着装要求、行为和礼仪的协议。该协议确保每个人都了解如何在事件背景下采取行动和互动。同样,在计算世界中,协议是指规定计算机和设备如何通过网络进行通信的一组规则。就像社交活动中遵循协议一样,网络协议定义了网络上不同设备之间如何传输、接收和理解数据。换句话说,在计算机网络中,不同的设备使用网络协议建立通用语言进行通信。这些协议定义了交换数据​​的格式、结构和规则。

2023-11-21 17:20:06 947

原创 Elasticsearch 概述、安装、基本操作

Elasticsearch(简称 ES)是一个开源的分布式搜索和分析引擎,属于 Apache Lucene 项目的一部分。它提供了一个强大的全文搜索引擎,能够快速而灵活地存储、检索和分析大量的数据。Elasticsearch 的设计目标主要包括实时性、可伸缩性和易用性。

2023-11-19 22:27:42 63

原创 RabbitMQ订单超时未支付自动关闭的实现方案

中看到延迟队列配置类中定义的交换机与队列。

2023-11-18 16:18:12 212

原创 rabbitMQ Publish/Subscribe

在上图中,可以理解为有三个topic分别为 orange、black、green,消费者1消费orange,消费者2消费black和green。Direct exchange 类似于kafka中的Topic。

2023-11-16 12:01:42 34

原创 RabbitMQ 安装后访问不了UI界面的原因

比较下面两个文件夹下的.erlang.cookie文件内容,修改C:\User\{{电脑用户名}}\.erlang.cookie文件的内容,使两个文件内容一样。再次执行命令rabbitmqctl status,访问localhost:15672成功。C:\User\{{电脑用户名}}\.erlang.cookie。

2023-11-15 22:01:43 176

原创 rabbitMQ Work Queue

使用任务队列的优点之一是能够轻松地并行化工作。如果我们积压了大量的工作,我们可以增加更多的工作人员,这样就很容易扩大规模。注意:RabbitMQ不允许你用不同的参数重新定义一个已经存在的队列,任何试图这样做的程序都会返回一个错误。一个生产者,两个消费者,结果发现rabbitMQ会根据发送消息的次数来做轮询。rabbitMQ只关注队列中的消息数量,不关心未确认ack的消息数量。主要针对于rabbitMQ服务器。

2023-11-14 16:16:49 50

原创 RabbitMQ QuickStart

RabbitMQ是一个消息代理:它接受并转发消息。你可以把它想象成邮局:当你把要寄的邮件放进邮箱时,你可以确定邮递员最终会把邮件送到收件人那里。在这个比喻中,RabbitMQ是一个邮筒、一个邮局和一个邮递员。RabbitMQ和邮局之间的主要区别在于,它不处理纸张,而是接受、存储和转发二进制数据消息。

2023-11-13 11:09:30 47

原创 MySQL InnoDB存储引擎

InnoDB逻辑存储结构表空间、段、区、页、行InnoDB架构内存结构磁盘结构后台线程事务原理A 原子性 undoLogC 一致性 redoLog + undoLogI 隔离性 MVCC+锁D 持久性 redoLogMVCC隐藏字段+undoLog版本链+ReadView保证每一次快照读所读取的记录为某一个历史版本。

2023-11-11 22:53:33 93 1

原创 MySQL索引概述

索引是一种有序的数据结构,用来提高数据检索的效率5阶B树,意味着最多有5个节点,4个key,每一个结点上均有元素。

2023-11-10 00:01:54 63

原创 Redis高级篇(缓存过期淘汰策略)

redis默认内存为0,在x64系统下表示不限制内存使用。通过修改配置文件或通过命令修改(命令重启后就不生效)页面置换算法,淘汰一定时间内访问次数最少得页面。一般建议使用:allkeys-lru淘汰策略。页面置换算法,淘汰最长时间未被使用的页面。Redis缓存淘汰策略口诀(

2023-11-05 19:41:37 58 1

原创 Redis高级篇(分布式锁)

分布式锁是一种用于在分布式系统中同步访问共享资源的机制。在分布式系统中,多个节点同时访问共享资源可能会导致数据不一致或冲突。分布式锁通过在多个节点之间协调和管理共享资源的访问,确保同一时间只有一个节点能够访问该资源,从而保证数据的一致性和可靠性。

2023-10-30 17:09:58 91 1

原创 Redis高级篇(预热-雪崩-击穿-穿透)

缓存预热的实现方式可以根据具体业务需求和技术架构来选择,例如可以通过定时任务,事先加载特定的数据到缓存中;缓存预热,顾名思义,是指在系统启动或某一阶段之前,将一些热点数据提前加载到缓存中,以便在需要时能够快速响应请求。缓存雪崩是指在缓存系统中,由于多个缓存对象不在Redis中,导致大量请求直接打到后端数据库,且后端数据库也无该数据,使得数据库压力骤增,甚至导致系统崩溃。过期或被删除,同时有大量并发请求访问这个热点数据,导致请求直接落到数据库,引发数据库负载激增的情况。3.多缓存策略(本地缓存+Redis)

2023-10-29 22:14:09 47

原创 Redis高级篇(bitmap布隆过滤器)

布隆过滤器(Bloom Filter)是一种空间效率高、处理速度快的概率型数据结构,用于判断一个元素是否存在于一个集合中。高效地插入和查询,减少内存占用,不保存数据信息,只存储一个标记位0、1。但返回的结果是不确定,有点小瑕疵。由于存在哈希冲突,一个元素判断结果(返回0或1)存在但元素不一定存在,判断结果不存在则一定不存在(有可能有,无肯定无)。布隆过滤器由一个位数组(通常是一个大的二进制位数组)和一系列哈希函数组成。可以保证的是,如果一个元素不在布隆过滤器中,则此元素一定不存在。

2023-10-25 14:50:11 356

原创 Redis高级篇(大数据统计分析)

Redis HyperLogLog 是一种数据结构,用于估计集合中的唯一元素的数量。它可以用来进行基数估计,在很少的内存使用下,能够高效地处理。在Redis里面,每个hyperloglog键只需要花费12kb内存,就可以计算接近2^64个不同元素的基数。它使用固定的内存空间来跟踪集合中的唯一元素的数量,而不是存储实际的元素。unique visitor,独立访客,一般理解为客户端IP。统计一个集合中不重复的元素个数,常见于hyperloglog。需要注意的是,HyperLogLog 估计的结果是一个。

2023-10-22 22:24:58 116 1

原创 canal实战案例

canal是阿里巴巴开源的一款基于数据库日志的增量数据订阅和消费组件。它能够监听数据库的binlog日志,并将数据库的增量变更数据解析后转发给下游的消费者。

2023-10-21 01:24:32 64 1

原创 Redis高级篇(缓存双写一致性)

也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存,达到一致性,切记,要。例:A线程删除缓存成功后处于数据库更新中,此时B线程读数据,从mysql中读取并写回Redis,在A更新完数据库后,休眠一会,再对缓存进行一个二次删除,即延时双删。在高并发情况下,缓存删除成功但数据库更新中,有并发读请求,并发读请求从数据库读到旧值并回写到redis,导致后续都是从redis读取到旧值。更新缓存时,若Redis宕机,则会导致Redis数据丢失。

2023-10-18 20:09:42 58 1

原创 Redis高级篇(BigKey)

1、向Redis中写入100w测试数据key。1、多大的key才能称之为BigKey。2、测试keys * 所花费的时间。2、BigKey有哪些危害。4、如何发现BigKey。内存不均,集群迁移困难。

2023-10-16 20:54:23 83 1

原创 Redis高级篇(单线程 vs 多线程)

IO多路复用(IO Multiplexing)是一种同步IO的模型,它允许单个线程同时监听多个IO事件,从而提高系统的并发处理能力。在传统的阻塞IO模型中,一个线程只能处理一个IO操作,当有多个IO操作需要处理时,就需要创建多个线程或使用多进程来处理。这样会带来线程或进程切换的开销,且当并发连接较多时,线程或进程数量明显增加,对系统资源造成压力。而IO多路复用采用了事件驱动的方式,同一个线程可以同时监视多个IO资源(例如套接字),当有IO事件到达时,线程会被唤醒,并根据事件类型进行相应的处理。

2023-10-16 20:00:42 45 1

原创 Redis基本知识点

Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供了数据结构,如字符串、哈希、列表、集合、排序集合、范围查询、位图、超日志、地理空间索引和流。Redis具有内置复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster提供高可用性和自动分区。

2023-10-15 20:23:40 61 1

原创 spring事务

例如,事务A按某个条件范围查询了一组数据,然后事务B新增了符合该条件的数据并提交,事务A再次按同一条件查询,发现结果集比之前查询时多了一条或多条数据。例如,事务A读取了某个数据,然后事务B修改了这个数据并提交,事务A再次读取同一数据,得到了不同的结果。保证了在事务运行期间,其他事务对于该数据的修改不可见,但仍然可能出现幻读问题(即一个事务多次查询同一范围的数据,结果却不一致)。隔离性(Isolation):隔离性指的是多个并发的事务之间要互相隔离,每个事务的执行都是独立的,并且不受其他事务的干扰。

2023-10-14 23:28:23 37 1

原创 AOP概念及实现

AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面 向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况 下给程序动态统一添加额外功能的一种技术。(预编译+动态代理+不改源码 = 新增功能)spring允许你使用通知的地方。

2023-10-12 23:59:53 34

原创 Java动态代理

动态代理更加灵活,不需要必须实现接口,可以直接代理实现类,并且可以不需要针对每个目标类都创建一个代理类。另外,静态代理中,接口一旦新增加方法,目标对象和代理对象都要进行修改,这是非常麻烦的!:静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。当我们的动态代理对象调用一个方法时,这个方法的调用就会被转发到实现。JDK 动态代理有一个最致命的问题是其只能代理实现了接口的类。用于拦截增强被代理类的方法,和 JDK 动态代理中的。,这个方法主要用来生成一个代理对象。

2023-10-10 00:14:50 40 1

原创 Java反射

Java反射是指在程序运行时动态地获取和操作类、对象、方法等的能力。通过反射,我们可以在运行时检查类的属性和方法,并可以动态地创建、操作、调用对象,甚至可以修改类和对象的属性、方法。

2023-10-08 23:38:53 31 1

原创 @Autowired、@Qualifier、@Resource

Resource 先根据名称再根据类型。

2023-10-08 01:11:24 45 1

原创 IoC、Bean的作用域、生命周期

IoC译为"控制反转",IoC容器不是一种技术而是一种思想,其核心在于把Java对象的控权交给Spring全面管理。Spring通过IoC容器管理Java对象的实例化和初始化,控制对象与对象之间的依赖关系,对象的创建到销毁都由IoC容器管理。DI译为"依赖注入",IoC是一种思想而DI则是这种思想的具体实现。它可以将对象依赖属性通过配置进行注入。

2023-10-08 00:33:47 91 1

原创 CDN和DNS是什么?

用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com,都可以访问其Web网站。上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个。

2023-10-06 21:25:45 85 1

空空如也

空空如也

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

TA关注的人

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