随笔分类 -  后端

摘要:添加依赖 //网关组建依赖 implementation 'org.springframework.cloud:spring-cloud-starter-gateway' //eureka客户端依赖 implementation 'org.springframework.cloud:spring-c 阅读全文
posted @ 2024-03-31 00:11 周仙僧 阅读(72) 评论(0) 推荐(0)
摘要:nacos安装 下载安装包 官方下载地址 修改配置 配置文件:{nacos_home}/conf/application.properties # 指定端口号 server.port=8848 # 指定数据库类型 spring.datasource.platform=mysql # 数据库初始化使用 阅读全文
posted @ 2024-03-31 00:10 周仙僧 阅读(227) 评论(0) 推荐(0)
摘要:IOC控制反转 如A类中依赖了B类,传统生成实例的过程是需要先实例化B,在实例化A时传入B;控制反转实现了先实例化A,扫描到需要使用B时再实例化B 实现了实例化过程的解耦,A、B可以单独实例化,再实现依赖关系 Spring容器管理时的循环依赖问题 三级缓存解决循环依赖 三级缓存实际对应的是三次实例化 阅读全文
posted @ 2024-03-21 14:38 周仙僧 阅读(12) 评论(0) 推荐(0)
摘要:缓存 一级缓存 SqlSession级别,同一会话中多次重复的查询会使用以及缓存,默认开启 二级缓存 Mappr级别,需要在Mappr显性的开启,不同会话使用同样的Sql会查询二级缓存 Mapper.XML文件中常用标签 sql脚本相关 select、insert、update、delete 动态s 阅读全文
posted @ 2024-03-21 13:10 周仙僧 阅读(20) 评论(0) 推荐(0)
摘要:线程 一个进程中可以有多个线程,多个线程共享进程的堆和方法区 (JDK1.8 之后的元空间)资源,但是每个线程有自己的程序计数器、虚拟机栈 和 本地方法栈。 线程是进程划分成的更小的运行单位。线程和进程最大的不同在于进程之间是相互独立的,而线程之间则不一定,因为同一进程中的线程极有可能会相互影响。线 阅读全文
posted @ 2024-03-18 22:30 周仙僧 阅读(38) 评论(0) 推荐(0)
摘要:Java内存区域详解 运行时数据区域 结构图: 线程共享区域 堆区 存放常量池、实例对象等公共元素,所有线程共享。整个内存模块分新生代和年老代,新生代区分Eden、from Survivor和to Survivor。 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域 阅读全文
posted @ 2024-03-18 18:53 周仙僧 阅读(24) 评论(0) 推荐(0)
摘要:JAVA IO Java IO属于传统的io模式,是阻塞性IO;针对文件数据的读取,主要区分了字节流和字符流 字节流 InputStream(字节输入流) 从磁盘文件中读取数据,以流的方式读取到内存中,java.io.InputStream抽象类是所有字节输入流的父类。 InputStream 常用 阅读全文
posted @ 2024-03-18 10:52 周仙僧 阅读(18) 评论(0) 推荐(0)
摘要:概述 本文阐述内容以JDK1.8为基准 Java包含四类基本集合:Map、Set、List、Queue,其中Set、List、Queue基于Collection接口实现,Map类集合基于Map接口。 List:提供链式和数组式结构,元素之间保证有序性,可重复 Set: 元素之间不可重复,底层基于Ma 阅读全文
posted @ 2024-03-13 10:09 周仙僧 阅读(35) 评论(0) 推荐(0)
摘要:系统环境 Java: openjdk version“1.8.0_382” rocketmq-all-5.1.4 整体机制 使用rocketmq的事务消息,分两个阶段保证分布式事务的最终一致性; 一阶段:消息生产者(分布式事务发起方)发送半消息(消费者不接收半消息),之后完成本地事务的执行,根据执行 阅读全文
posted @ 2024-01-16 23:21 周仙僧 阅读(321) 评论(0) 推荐(0)
摘要:整体机制 TCC模式采用的也是两阶段提交的模型,区别于AT和XA模式,TCC模式的两阶段需要自定义实现,不依赖于数据库的事务模型和协议。 机制示例图 工作机制 TCC模式客户端使用时需要分try、commit、cancel三个部分: try:检查预留资源 commit:执行真正业务的提交 Cance 阅读全文
posted @ 2024-01-10 14:29 周仙僧 阅读(173) 评论(0) 推荐(0)
摘要:运行机制 执行阶段(借助于数据库的XA协议,执行阶段通过预执行将数据持久化,但分支事务没做提交): 可回滚:业务 SQL 操作放在 XA 分支中进行,由资源对 XA 协议的支持来保证 可回滚 持久化:XA 分支完成后,执行 XA prepare,同样,由资源对 XA 协议的支持来保证 持久化(即,之 阅读全文
posted @ 2024-01-05 13:41 周仙僧 阅读(37) 评论(0) 推荐(0)
摘要:机制 两阶段提交协议的演变: 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。 二阶段: 提交异步化,非常快速地完成。 回滚通过一阶段的回滚日志进行反向补偿。 集成过程 参考Seata客户端集成 工作机制 一阶段 根据update语句的条件组成select脚本,查询得到更 阅读全文
posted @ 2024-01-04 16:11 周仙僧 阅读(29) 评论(0) 推荐(0)
摘要:架构环境 编辑工具:Gradle 8.4 运行环境:OpenJdk 1.8.0_391 开发框架:Spring-boot 2.7.17 微服务架构:Spring Cloud 2021.0.8 客户端依赖 官方提供了如下依赖方式,根据自身项目选择一个即可: 依赖seata-all,传统依赖方式,提供了 阅读全文
posted @ 2024-01-02 14:17 周仙僧 阅读(154) 评论(0) 推荐(0)
摘要:本文参考官方部署说明文档 系统环境 阿里云ubuntu Java: openjdk version "1.8.0_382" Seata:seata-server-1.8.0 下载Seata-server github下载地址:https://github.com/seata/seata/releas 阅读全文
posted @ 2023-11-26 12:39 周仙僧
摘要:异常出现原因是response在获取字节流之前会判断字符流是否已使用,反之获取字符流之前也会判断字节流是否已使用,若判断已使用则抛出异常getWriter()/getOutStream() has already been called for this response,我的异常堆栈如下: 问题出 阅读全文
posted @ 2022-08-15 15:04 周仙僧 阅读(1658) 评论(0) 推荐(0)