自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch笔记

easy-es官网。

2024-06-15 19:20:59 301

原创 RabbitMQ学习笔记

界面地址: 地址:15672默认登录账户和密码 guest。

2024-06-14 22:59:12 445

原创 Java-支付宝支付(沙箱)

参考⽂档:开放平台 => ⽂档 => 开发⼯具 => 服务端SDK => Java => 通⽤版 => Maven项⽬依赖。商⼾后台未收到异步⽀付结果通知时,商⼾应该主动调⽤《统⼀收单线下交易查询接⼝》,同步订单状态。参考⽂档:开放平台 => ⽂档 => 开发⼯具 => 技术接⼊指南 => 数据签名。退款存在退到银⾏卡场景下时,收单会根据银⾏回执消息发送退款完成信息。创建带数据签名的客⼾端对象。开发流程类似⽀付结果通知。

2024-01-26 17:21:41 1853 4

原创 Java-微信支付

摘要算法就是我们常说的散列函数、哈希函数(Hash Function),它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹保证信息的完整性不可逆:只有算法,没有秘钥,只能加密,不能解密难题友好性:想要破解,只能暴力枚举发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化抗碰撞性:原文不同,计算后的摘要也要不同pom</</</统一返回结果类@Data@ApiModelProperty(value = "是否成功")

2024-01-21 23:03:01 1104

原创 Redis为什么这么快?高性能设计之epoll和IO多路复用深度解析

所谓 I/O 多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。这种机制的使用需要 select 、 poll 、 epoll 来配合。多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象上等待,无需阻塞等待所有连接。当某条连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理;

2024-01-11 22:08:40 938

原创 Redis主从复制、哨兵、集群搭建(docker)

2024-01-10 14:42:12 514

原创 手写简单的redis分布式锁

单机版同一个JVM虚拟机内,synchronized或者Lock接口分布式多个不同JVM虚拟机,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了。

2024-01-09 15:23:57 863

原创 Redis笔记

队列相关指令消费组相关指令四个特殊符号- +: 最小和最大可能出现的id表示只消费新的消息,当前流中最大的id,可以用于将要到来的消息用于XREADGROUP命令,表示迄今还没有发送给组中使用者的信息,会更新消费者组的最后ID用于XADD命令中,让系统自动生成id实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照。

2023-12-24 19:57:12 1680 1

原创 RabbitMQ订单超时笔记

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。延迟队列,最重要的特性就体现在它的延时属性上,跟普通队列不一样的是,普通队列中的元素总是等着希望被早点取出消费,而延迟队列中的元素则是希望在指定时间被取出消费,所以延迟队列中的元素是都是带时间属性的。利用懒加载的思想,当用户或商户查询订单时,再判断该订单是否超时,超时则进行业务处理。简单来说,延迟队列就是用来存放需要在指定时间被处理的元素的队列。

2023-12-22 11:28:27 1403

原创 Linux笔记

vim是vi增强版的文本编译器,Linux内置的。

2023-12-19 14:19:20 973

原创 ElasticSearch7.x笔记

Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。Spring Data 可以极大的简化 JPA(Elasticsearch„)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等一些常用的功能。

2023-12-19 00:19:28 1186

原创 Nginx笔记

在linux系统中准备静态资源,用于进行访问需要两台nginx服务器需要keepalived需要虚拟Ip。

2023-12-17 22:12:32 85 1

原创 docker笔记

docker学习笔记

2023-12-12 15:45:02 266

原创 面试题-微服务篇

服务雪崩:一个服务失败导致整条链路的服务都失败的情况,可以使用服务降级,服务熔断,如果流量太大的话,也可以考虑服务限流来解决服务降级就是为服务提供了一个托底方案,一旦服务无法正常调用,就使用托底方案。保证服务不会崩溃,一般在实际开发中与feign接口进行整合,编写降级逻辑服务熔断是指当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。

2023-11-08 20:03:04 27 2

原创 设计模式笔记

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

2023-11-07 23:56:16 131

原创 面试题-Mysql篇

索引是帮助mysql高效获取数据的数据结构,主要用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也降低了CPU的消耗聚集索引是指数据与索引放到一起,B+树的叶子节点保存了整行数据,有且只有一个,一般情况下主键为聚集索引二级索引(非聚集索引)指的是数据与索引分开存储,B+树的叶子节点只保存对应的主键,可以有多个,一般我们自己定义的索引都是二级索引通过二级索引找到对应的主键,然后再通过该主键找到聚集索引中对应的整行数据,这个过程就是回表。

2023-11-05 23:58:48 6

原创 面试题-Java篇

封装:封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单)继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫父类(超类、基类)、得到继承的类叫子类(派生类)。多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。

2023-11-04 20:34:40 7

原创 JVM笔记

Java Virtual Machine Stacks(Java虚拟机栈)-Xss 256K 设置栈内存大小为256k每个线程运行时所需要的内存,成为虚拟机栈每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的哪个方法没有垃圾回收机制方法执行完直接出栈Heap堆通过new关键字,创建的对象都会使用堆内存特点线程共享,堆中对象都需要考虑线程安全的问题有垃圾回收机制-Xmx[8m] 设置堆空间大小为8m。

2023-11-04 20:17:02 71 1

原创 面试题-框架篇

aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合。Spring MVC是⼀个基于Java实现的MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进⾏职责解耦,把复杂的web应⽤分成逻辑清晰的⼏部分,简化开发,减少出错,⽅便组内开发⼈员之间的配合。

2023-11-04 14:31:33 5

原创 面试题-Redis篇

缓存可以将数据存储在内存中,加快数据的访问速度,减少对数据库的读写次数,从而提高系统的性能使用缓存可以减轻后端的压力,降低服务器的负载,从而提高系统的稳定性和可靠性。Redis支持持久化,可以保证数据的一致性,避免了数据丢失的风险Redis支持多种数据结构,如字符串、列表、哈希、集合和有序集合等,可以满足不同的应用场景,提供灵活的解决方案。

2023-11-02 22:14:33 12

原创 面试题-JVM篇

线程共享的区域:主要用来保存对象实例,数组等,内存不够则抛出OutOfMemoryError异常。由新生代+老年代组成新生代被划分为三部分,伊甸园和两个大小严格相同的Survivor[səˈvaɪvə®]幸存者区老年代主要保存生命周期长的对象,一般是一些老的对象Jdk1.7和1.8的区别7中有一个永久代,存储的是类信息、静态变量、常量、编译后的代码8移除了永久代,把数据存储到了本地内存的元空间中,防止内存溢出每个线程运行时所需要的内存,称为虚拟机栈。

2023-10-29 21:13:29 37

原创 面试题-并发篇

是多线程中的队列同步器。是一种锁机制,它是做为一个基础框架使用的,像ReentrantLock(可重入锁)、Semaphore(信号量)都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储的排队的线程在AQS内部还有一个属性state,这个state就相当于是一个资源,默认是0(无锁状态),如果队列中的有一个线程修改成功了state为1,则当前线程就相等于获取了资源在对state修改的时候使用的cas操作,保证多个线程修改的情况下原子性。

2023-10-23 23:01:24 45 2

空空如也

空空如也

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

TA关注的人

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