- 博客(56)
- 收藏
- 关注
原创 redis详解之数据备份与恢复
Redis所有数据都是保存在内存中,Redis数据备份可以定期的通过异步方式保存到磁盘上,该方式称为半持久化模式,如果每一次数据变化都写入aof文件里面,则称为全持久化模式。本章节通过配置文件,触发快照的方式,恢复数据的操作,优缺点来学习 Redis 的重点知识——数据备份与恢复。1、方式一:半持久化RDB模式(Redis DataBase)【redis备份默认方式】通过快照完成,由用户在redis.conf配置文件中设置两个参数:时间和改动的键的个数。当在指定的时间内被更改的键的个数大于指定的数值时,re
2021-06-28 09:40:20 16656
原创 Springboot 整合 Knife4j (API文档生成工具)
Knife4j是一个基于Swagger构建的开源Java API文档工具,主要包括两大核心功能:文档说明和在线调试。使用简单的配置和注解就可以节省写接口文档的时间了,舒服!
2024-03-21 17:14:47 760
原创 Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②
Springboot 整合 Elasticsearch(四):使用RestHighLevelClient操作ES ②
2024-03-12 14:51:50 1414 1
原创 Springboot 整合 Elasticsearch(四):使用 Kibana 连接 Elasticsearch
Kibana 是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进行视觉探索和实时分析。 之前的文章中我们使用的 elasticsearch-head 浏览器插件连接Elasticsearch 并查询数据,本次我们介绍另一种可视化查询工具——Kibana。
2024-02-29 15:26:10 555
原创 (っ•̀ω•́)っ 如何在PPT中为文本框添加滚动条
本人在写技术分享的PPT时,遇到问题:有一大篇的代码,如何在一张PPT页面上显示?急需带有滚动条的文本框!
2024-02-21 17:08:39 942 1
原创 Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES ①
Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES
2024-02-07 09:40:37 1747
原创 Springboot 整合 Quartz(定时任务框架)
Quartz是 OpenSymphony 开源组织在 Job scheduling 领域又一个开源项目,完全由 Java 开发,可以用来执行定时任务,类似于 java.util.Timer。持久性作业 - 就是保持调度定时的状态;作业管理 - 对调度作业进行有效的管理;
2024-01-31 15:24:54 1272 1
原创 SeaTunnel 海量数据同步工具的使用(连载中……)
SeaTunnel 是一个非常易用,高性能、支持实时流式和离线批处理的海量数据处理产品,前身是 WaterDrop (中文名:水滴),自 2021年10月12日更名为 SeaTunnel。2021年12月9日,SeaTunnel 正式通过Apache 软件基金会的投票决议,以全票通过的优秀表现正式成为 Apache 孵化器项目。2022年 3月18日社区正式发布了收个 Apache 版本 V2.1.0。
2024-01-15 19:34:17 1223 2
原创 【插播一条广告】寻找LOL游戏搭子,恕瑞玛大乱斗养老!
👻虽然是大乱斗,但还是希望技术好点,可开麦~👽工作日:19:30 - 22:30。👾评论区留言游戏昵称,互相认识~😄大家报团取暖,寻找生活的乐趣!
2023-12-29 16:53:38 386 2
原创 【SpringCloudAlibaba】Sentinel熔断限流工具的使用
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。--以上来自Sentinel官方文档;
2023-12-18 11:32:38 1114
原创 Springboot 整合 Elasticsearch(一):Linux下安装 Elasticsearch 8.x
Springboot整合Elasticsearch(一):Linux下安装 Elasticsearch 8.x
2023-06-12 16:46:43 1675
原创 Spring Validation 接口入参校验
JSR 是 Java Specification Requests 的缩写,含义为 JAVA 规范提案。JSR 303 - Bean Validation 规范, 正是一套基于 JavaBean 参数校验的标准。Hibernate Validator 是 JSR 303 的实现,它提供了 JSR 303 规范中所有约束(constraint)的实现,同时也对其作出一些拓展。
2023-06-05 15:24:09 1691
原创 CompletableFuture 线程编排
一、前言Java8 新特性之一,其实现了Future, CompletionStage两接口,后者是对前者的一个扩展,增加了异步回调、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利。
2023-05-31 16:41:06 811
原创 关于 @Aspect 注解的使用
AOP(Aspect Oriented Programming) 是一种面向切面的编程思想。面向切面编程是将程序抽象成各个切面,即解剖对象的内部,将那些影响了多个类的公共行为抽取到一个可重用模块里,减少系统的重复代码,降低模块间的耦合度,增强代码的可操作性和可维护性。
2023-03-10 18:03:04 732
原创 InfluxDB:时序型数据库学习笔记,就这一篇吧o(╥﹏╥)o
时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。时间序列数据主要由电力行业、化工行业、气象行业、地理信息等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。
2023-03-07 11:19:40 1277
原创 Springboot 整合 WebSocket
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信,即允许服务器主动发送信息给客户端。因此,在WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,客户端和服务器之间的数据交换变得更加简单。
2022-11-16 11:51:33 4939 1
原创 ThreadPool 线程池的使用
一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。(摘抄自百度百科什么是线程池)
2022-09-15 19:58:04 1748
原创 【JAVA并发】CyclicBarrier
CyclicBarrier 从字面意思上可以翻译成循环栅栏,或者循环屏障。设立一个屏障,让一组线程都等待完成后(或都到达同一状态后),再继续下一步行动。
2022-09-08 16:58:06 138
原创 【JAVA并发】Semaphore:信号量的使用
Semaphore 也叫信号量,在 JDK1.5 被引入,主要用于在多个线程访问多个共享资源的场景下,通过协调各个线程,来保证合理的资源访问。例如数量有限的餐厅桌椅,银行业务办理窗口等。
2022-09-08 15:24:50 1507
原创 【JAVA并发】CountDownLatch
CountDownLatch 定义了一个计数器,和一个阻塞队列, 当计数器的值递减为 0 之前,阻塞队列里面的线程处于挂起状态,当计数器递减到 0 时会唤醒阻塞队列所有线程,这里的计数器是一个标志,可以表示一个任务一个线程,也可以表示一个倒计时器,CountDownLatch 可以解决那些一个或者多个线程在执行之前必须依赖于某些必要的前提业务先执行的场景,例如主线程要等待所有子线程执行完再执行,老师要等待所有考生都交卷再离开考场……
2022-09-08 10:31:57 369
原创 ExpiringMap:轻量级的Java缓存方式
一、ExpiringMap具有高性能、低开销、零依赖、线程安全、使用 ConcurrentMap 的实现过期 entries 等优点。其主要特点包括:过期策略、可变有效期、最大尺寸、侦听器过期、延迟输入加载、过期自省等。
2022-09-07 15:04:08 3078 1
原创 Java设计模式:策略模式
策略模式是一种行为型模式,它将对象和行为分开,将行为定义为一个行为接口和具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化。UML结构图如下:环境/上下文 (Context):持有一个策略类的引用,最终给客户端调用。抽象策略 (Strategy): 策略类,通常是一个接口或者抽象类。具体策略 (ConcreteStrategy):实现了策略类中的策略方法,封装相关的算法和行为。
2022-08-25 16:10:21 949 3
原创 【JAVA并发】CAS(第二弹)
上文说到,CAS在更新值的时候,会判断要修改的A 是否和预期值相同,如果相同则更新新值。但会存在一种情况:线程 t2 在 t1 写回前,已经读取 A,修改成了 B,又修改成了 A,再写回时,满足要修改的值和预期值相同,更新成功。整个过程 t1 是无法知道的, t1 在更新时也能成功;而之后 t2 如果还想用 A,就读取不到了,因为已经是 t1 修改后的 B,这就造成了数据不一致的问题。产生ABA问题的代码示例:目前在 JDK 的 atomic 包里提供了一个类 AtomicStampedReferen
2022-08-19 16:53:04 126
原创 【JAVA并发】CAS(第一弹)
一、什么是CASCAS(Compare And Swap),比较并交换;它将内存位置的内容与给定值进行比较,只有在相同的情况下,才将该内存位置的内容修改为新的给定值。二、Java中如何实现CAS三、CAS在JUC下的应用四、CAS存在的问题1、ABA问题2、循环时间长开销大3、只能保证一个共享变量的原子操作........................
2022-08-14 17:49:12 265
原创 浅谈 DelayQueue 延时队列
是一个支持延时获取元素的无界阻塞队列。队列使用PriorityQueue来实现。队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素。只有在延迟期满时才能从队列中提取元素。1、用户下订单后,超过一段时间未支付,订单取消2、停车场停车超时,发送短信通知;1、定义延时对象DelayEvent,需要实现Delayed接口。2、测试3、执行结果四、DelayQueue相关API 变量和类型 方法 描述
2022-06-21 17:07:02 746
原创 Java设计模式:桥接模式
桥接(Bridge)模式属于结构型设计模式。通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。该UML结构图如下:主要角色:(1)Abstraction:抽象类。(2)RefinedAbstraction:扩充抽象类。(3)Implementor:实现类接口。(4)ConcreteImplementor:具体实现类 。场景: 一个甜品店,售卖的食品有蛋糕、奶茶和牛奶,但
2022-06-21 15:48:30 4505 1
原创 进来学习 BlockingQueue 阻塞队列
阻塞队列家族:一、ArrayBlockingQueue用数组实现的有界队列。此队列按照先进先出(FIFO)的原则对元素进行排序。ArrayBlockingQueue一旦创建,容量不能改变。其并发控制采用可重入锁来控制,不管是插入操作还是读取操作,都需要获取到锁才能进行操作。当队列容量满时,尝试将元素放入队列将导致操作阻塞;尝试从一个空队列中取一个元素也会同样阻塞。默认情况下不保证线程访问队列的公平性,所谓公平性是指严格按照线程等待的绝对时间顺序,即最先等待的线程能够最先访问到ArrayB
2022-04-24 22:47:09 618 1
原创 深入理解JVM—垃圾收集器
如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。一、Serial收集器(单线程、复制算法)Serial(串行)收集器是最基本、历史最悠久的垃圾收集器了。是一条单线程收集器。它的“单线程”的意义不仅仅意味着它只会使用一条垃圾收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集工作的时候必须暂停其他所有的的工作线程(“Stop The World”),直到它收集结束。新生代采用复制算法,老年代采用标记-整理算法优点:简单高效,对于限定单个CPU环境来说,没有
2022-03-16 10:41:12 912
原创 使用OpenFeign实现微服务间的接口调用
一、微服务架构如下:模块名 用途 实例名 springCloud_nacos 服务注册中心 springcloud-nacos springCloud_serviceA 微服务模块A springcloud-serviceA springCloud_serviceB 微服务模块B springcloud-serviceB 二、openFeign实现微服务间接口调用(serviceA 调用 serviceB 接口)1、在父pom.xml中
2022-03-08 19:43:19 2508
webSocket.html
2022-11-15
influxDB V2.3.0 镜像包
2022-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人