面试-八股
Springquestion:事务的七种类型 required:默认 存在事务:加入当前事务,和调用者共用同一个事务 不存在:自己创建一个新事务 回滚:任何地方抛出异常,整个事务进行回滚
mysql
MySQL 八股事务 事务是数据库中的基本概念,是指一组操作的集合,而这一组操作要么同时成功,要么同时失败,从而保证数据库中数据的正确性和完整性。事务具有四大特性,也就是我们常说的ACID,分别是:原子性、一致性、隔离性、持久性。 原子性指的是事务中的这一组操作,是不可分割的最小操作单元了,操作要么全部成功,要么全部失败。 一致性是指在事务操作的前后,必须使数据处于一致的状态。 隔离性指的是数据库中提供了隔离机制,保证事务在不受外部并发操作的影响的独立环境中运行。 持久性就比较简单了,就是事务一旦提交或回滚了,它对数据库的改变就是永久的。 并发事务,那并发事务回引发哪些问题 脏读:就是一个事务,读取到了另一个事务还没有提交的数据。 不可重复读:指的是在同一个事务中,先后读取同一条记录,但两次读取的数据不同。 幻读:指的是一个事务按照条件查询数据时,没有对应的行,但是插入时,又发现这行数据已经存在了好像出现了幻觉。 在数据库系统中都已经解决了。在数据库中提供了不同的隔离级别来解决这些问题, 分别有以下几种: READ UNCOMMITED :读未提交。 这种隔离级别下,会...
拉卡拉支付
ruoyi-vue-pro 添加三方支付(拉卡拉moss支付)一、实现 PayClientConfig类创建LklPayClientConfig配置类,存放拉卡拉支付的必须属性和实现支付client配置类 123456789101112131415161718192021222324252627282930313233public class LklPayClientConfig implements PayClientConfig{ /** * 拉卡拉appId */ @NotBlank(message = "appId 不能为空") protected String appId; /** * 商户证书序列号 */ @NotBlank(message = "商户id") protected String merchantId; /** * 商户私钥信息地址 */ @NotBlank(message = "商户公钥 不能为空&...
java
一、JVMJVM主要由三部分组成:类加载区、运行时数据区和执行引擎。 类加载区类加载区是JVM的“入口”。其负责找到并加载编译好的.class文件,并将这些二进制数据放到运行时数据区的方法内。 加载:通过类的全限定名、获取定义此类的二进制字节流。 链接:将加载到内存中的类的二进数据合并到JVM的运行状态中。流程:验证->准备->解析 初始化:执行类的构造器(clinit)方法,为静态变量赋予正确的初始值。 运行时数据区(JVM内存模型)JVM在执行Java程序时,为“安放”各种数据而划分的内存区域,它是JVM的核心,老生常谈的JVM调优,主要就是针对该区域。 堆:这是JVM管理中最大一块内存区域,也是所有线程共享的区域。它几乎存放了所有的对象实例,也是垃圾回收器管理的主要区域,因此也被称为“GC堆”。 方法区(元空间):这也是线程共的享区,它存储了每个类的构造信息,如运行时常量池*、字段和方法数据、构造函数、以及普通方法代码。Java8之后的方法区的实现被称为“元空间”。 虚拟机栈:这是线程私有的,它的生命周期与线程相同。每个方法被执行的时候,JVM都会同步创建...
rabbitMQ
RabbitMQ一、RabbitMQ基本架构 生产者 (Producer) 交换机 (Exchange) :直接交换机(direct),扇出交换机(fanout),主题交换机(topic),消息头交换机(headers) 消息队列 (Queue) 消费者 (Consumer) 路由键 (RoutingKey) :消息头的一个属性,用于标记消息的路由规则,决定了交换机的转发路径。最大长度255 字节。 信道 (Channel):多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接上的虚拟连接。生产者通过和交换机建立信道来发送消息,消费者也需要通过和队列建立信道来获取消息。对于操作系统来说建立和销毁TCP连接都是比较昂贵的开销,引入了信道的概念,以复用一条TCP连接。也就说,一个TCP 被多个线程共享,每个线程对应一个信道,每个信道都有唯一的ID,保证了信道的私有性。 交换机的mandatory属性 为 true 时:如果交换机无法根据自身类型和路由键找到一个符合条件的队列,则会将该消息返回给生产者;为 false 时:如果交换机无法根据自身类型和路由键找到一个符...
红包生成(拼手气红包-二倍均值 普通红包-均分)
二倍均值法生成红包123456789101112@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedissonClient redissonClient; // 用于分布式锁// Spring 容器销毁前执行@PreDestroypublic void shutdownRedisson() { if (redissonClient != null) { redissonClient.shutdown(); System.out.println("Redisson 客户端已优雅关闭"); }} 一、redis 初始化123456789101112131415161718192021222324252627282930313233343536373839404142434445464748/** * 初始化红包到Redis * @param packetId 红包I...
DNS(Dubbo + Nacos + Spring 不是域名解析那个喔)
Dubbo一. 服务发现 Dubbo 提供的是一种 Client-Based 的服务发现机制,依赖第三方注册中心组件来协调服务发现过程,支持常用的注册中心如 Nacos、Consul、Zookeeper 等。 生产者、消费者和注册中心模式。(类似于rocketmq) Dubbo3在性能、可伸缩性、易用性等方面的表现大幅领先于业界大多数主流开源产品。 Dubbo3 创建了一个平滑迁移方案。(例:消费者只订阅自己依赖的应用) 二、负载均衡负载均衡策略 算法 特性 备注 Weighted Random LoadBalance 加权随机 默认算法,默认权重相同 RoundRobin LoadBalance 加权轮询 借鉴于Nginx的平滑加权轮询算法,默认权重相同 LeastActive LoadBalance 最少活跃优先 + 加权随机 背后是能者多劳的思想 Shortest-Response LoadBalance 最短响应优先 + 加权随机 更加关注响应速度 ConsistentHash LoadBalance 一致性哈希 确定的入参,确定的提供者,适用...
bloom过滤器
bloom 过滤器所需校验的数据经过多个哈希函数散列映射过后在位图上的分布是否全为1,存在0(即不正确的数据,拒绝放行)全为1(即可能为正确的数据,放行)。 一、优点 支持海量数据场景下高效判断元素是否存在。 布隆过滤器存储空间小,并且节省空间,不存储数据本身,仅存储hash结果取模运算后的位标记。 不存储数据本身,比较适合某些保密场景。 二、缺点 不存储数据本身,所以只能添加但不可删除,因为删掉元素会导致误判率增加。 由于存在hash碰撞,匹配结果如果是“存在于过滤器中”,实际不一定存在。 当容量快满时,hash碰撞的概率变大,插入、查询的错误率也就随之增加了。 ps: 1.布隆过滤器中一个元素如果判断结果为存在的时候元素不一定存在,但是判断结果为不存在的时候则一定不存在。因此,布隆过滤器不适合那些对结果必须精准的应用场景。 2.误判率 p≈(1−e^(−kn/m))^k;其中n为已插入元素数,m为位数组长度,k为哈希函数数量。
商超短距离配送小程序设计思路
支付集成支付宝、微信支付,购物车统一付款功能。 商城配送1 配送人员 配送为专送,小团队专送 配送费 五公里以内1公里1元,5公里至15公里 1公里1.3元 商户管理端
Linux系统使用手册
软件安装python 安装12345678910111213141516171819202122cd /down // 进入下载目录sudo wget https://www.python.org/ftp/python/3.11.13/Python-3.11.13.tgz //下载python环境安装包sudo tar xzf Python-3.11.13.tgz //压缩包解压cd Python-3.11.13 //进入解压后的文件夹./configure --enable-optimizations --enable-shared \ //--enable-optimizations: 启用优化 --enable-shared: 构建共享库--prefix=/usr/local/python3.11.13 \ //--prefix: 指定安装目录--with-ensurepip=install //--wi...