自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式事务中TCC模式常见问题(幂等、空回滚、悬挂)解决

前面讨论了分布式事务三种典型的异常类型,它们的解决方案都依赖于一张事务状态控制表。我们来尝试总结一下它们各自的特点。幂等问题:TC重复调用二阶段解决:事务状态控制记录作为控制手段,只有存在INIT记录时才执行,存在CONFIRMED/ROLLBACKED记录时不再执行空回滚问题:TC回滚事务调用二阶段,但一阶段尚未执行解决:事务状态控制记录作为控制手段,无记录时即为空回滚资源悬挂问题:TC回滚事务调用二阶段完成空回滚后,一阶段执行成功。

2024-06-11 23:41:10 932

原创 分布式事务Seata

当某分支事务的try阶段阻塞时,可能导致全局事务超时而触发二阶段的cancel操作。对于已经空回滚的业务,如果以后继续执行try,就永远不可能confirm或cancel,这就是业务悬挂。应当阻止执行空回滚后的try操作,避免悬挂。TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。

2024-06-11 22:45:30 896

原创 Mysql和Innodb存储引擎

每个数据页都有一个LSN,redo log 中也记录了LSN,当数据库异常重启时,系统读取redo log并定位到checkpoint位置,如果此时当redo log中的LSN大于数据页中的LSN,说明redo log中的数据未完全写入数据页中,那么将从数据页中记录的LSN开始,从redo log中恢复数据。不可以,因为binlog是追加写入的,只要开启了binlog,所有的更新记录都会被写入,保存的是全量的日志, InnoDB不能区分出哪些数据已经刷盘,哪些还没有。

2023-07-07 11:40:12 1425

原创 使用RabbitMQ接收消息报错问题处理(org.springframework.amqp.AmqpException: No method found for class [B)

在处理统一身份认证平台推送的RabbitMQ消息时,监听器代码如下:import org.springframework.amqp.rabbit.annotation.RabbitHandler;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Component@RabbitListener(queues = "xxx

2022-05-09 14:48:53 11944

原创 在SpringBoot中使用RabbitMQ

本文在预先部署过了RabbitMQ及其管理界面的情境下一、RabbitMQ的工作模式先介绍一下RabbitMQ的工作模式,RabbitMQ共五种工作模式:简单模式:就是一个生产者一个消费者,中间通过一个队列直接连接。work工作模式:就是有多个消费者消费队列里的消息,队列里的消息只能被一个消费者消费。这样多部署几个消费者,就可以缓解压力,比如过年的时候抢票,抢票成功后会给你发短信,这个时候就可以把发短信的任务放入队列里,然后有多个发短信的服务来处理队列里的任务。(其他场景:抢红包,抢票等.

2022-05-07 15:24:28 4069 1

原创 Python中的函数

1. 函数的定义与调用2. 函数调用的参数传递(位置实参,关键字实参)def calc(a, b): # a,b形参 c = a + b return cresult = calc(10, 20) # 10,20实参print(result)res = calc(b=10, a=20) # 等号左侧的变量的名称 称为 关键字参数print(res)3. 函数参数传递的内存分析def fun(arg1, arg2): print('arg1', arg1

2022-04-02 17:20:56 1804

原创 Python中的字符串

1. 字符串的创建与驻留机制字符串在python中字符串是基本数据类型,是一个不可变的字符序列字符串驻留机制定义仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量驻留机制的几种情况(交互模式)字符串的长度为0或1时符合标识符的字符串(数字字母下划线)字符串只在编译时进行驻留,而非运行时[-5, 256]之间的整数数字sys中

2022-03-31 20:12:49 3707 1

原创 Python中的else用法

Python中的else用法1. 和if搭配使用1.1 多分支结构"""多分支结构,多选一执行 从键盘录入一个整数 成绩 90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 小于0或大于100:为非法数据(不是成绩的有效范围)"""score = int(input('请输入一个成绩:'))# 判断if 90 <= score <= 100: print('A级')elif 80 <= score &lt

2022-03-30 11:33:10 1088

原创 Python中的元组和集合

一、Python中的元组1.元组的概念Python内置的数据结构之一,是一个不可变序列"""不可变序列,可变序列"""'''可变序列 列表,字典'''lst = [10, 20, 45]print(id(lst))lst.append(300)print(id(lst))​'''不可变序列 字符串,元组'''s = 'hello'print(id(s))s = s + 'world'print(id(s))print(s)2.元组的...

2022-03-29 18:29:15 1298

原创 Python中的字典

1. 字典概念 Python内置的数据结构之一,与列表一样是一个可变序列。 以键值对的方式存储数据,字典是一个无序的序列。(列表是有序的) 字典通过计算key的hash值确定存储位置,所以key应为不可变序列(字符串,整数等) 2. 字典原理 Python中的字典根据key,通过hash函数,计算出存储位置,找到value 3. 字典的创建"""字典的创建方式"""'''使用{}创建字典'''scores = {'张三': 100, '李四': 98...

2022-03-24 18:49:37 15956

原创 Python中的列表

1.列表的创建"""python列表可以支持不同数据类型"""​'''创建列表的第一种方式,使用[]'''lst = ['hello', 'world', 98, 'hello']​'''创建列表的第二种方式,使用内置函数list()'''lst2 = list(['hello', 'world', 98])2.列表对象的索引lst = [2,6,2,1]print(lst[0]) # 正序索引依次为0,1,2...n-1print(lst[-4]) # ...

2022-03-23 20:04:27 1100

原创 微服务接口调用空指针问题分析

今天有个动态筛选条件不能正常筛选,估计是没有拿到查询条件。因查询条件是由入参调微服务接口查询拿到的,故先看微服务的producer端日志,发现了个HttpMessageNotWritableException,类型转换失败。先看日志:2021-11-29 15:13:39 [ERROR] userId:108340 c.l.c.b.c.LSControllerAdvice >> 程序产生未知异常:o(╥﹏╥)o ==> 接口地址:/client/customer/regR..

2021-11-29 18:26:34 1137

原创 学习笔记01

@DateTimeFormat:规定入参格式@JsonFormat:toString()出参格式化,默认GMT时区。国内为CST时区,应加timezone="GMT+8"

2021-09-28 09:57:26 72

原创 Pulsar运维监控

消息队列——>用来程序的异步解耦Queuing:消费一次,不按特定顺序Streaming:可多次消费,按特定顺序Pulsar同时支持以上两种Exclusive,Failover:Streaming 流处理消费模式Shared,Key Shared:Queue 队列消费模式Pulsar特性:Durability(持久性),Ordering(有序),Delivery Guarantees(传递保证),High throughput(高吞吐量),Low Latency(低延迟).

2021-09-14 17:46:34 2468

原创 SpringBoot集成Pulsar开发步骤

1. 引入依赖包<!-- in your <properties> block --><pulsar.version>2.8.0</pulsar.version>​<!-- in your <dependencies> block --><dependency> <groupId>org.apache.pulsar</groupId> <artifactId>puls..

2021-08-13 15:03:25 5794 2

原创 @RequestBody用法

User类public class User{ private String username; private String password;​ public User() { }​ public User(String username, String password) { this.username = username; this.password = password; }​ public St...

2021-08-05 09:13:55 814

原创 Pulsar集群搭建

Pulsar 是一个支持多租户的、高性能的消息中间件。本文介绍一下pulsar的集群搭建(在3台linux服务器上)1. 集群组成1.1 搭建 Pulsar 集群至少需要 3 个组件:ZooKeeper 集群、BookKeeper 集群和 broker 集群(Broker 是 Pulsar 的自身实例)。这三个集群组件如下:① ZooKeeper 集群(多 个 ZooKeeper 节点组成)② bookie 集群(也称为 BookKeeper 集群,多个 BookKeeper 节.

2021-07-27 14:42:50 990

原创 Pulsar Java client

可以使用 Pulsar 的 Java 客户端来创建 生产者,消费者 和 消息读取器 ,以及进行 任务管理 。 当前Java客户端版本为2.8.0。在 Java 客户端所创建的 生产者 ,消费者 和 读取器 中所提供的方法都是线程安全的。Pulsar 客户端的 Javadoc 按包分为两个域,如下所示。包 描述 Maven Artifact [org.apache.pulsar.client.api](https://pulsar.apache.org/api/client/2.8

2021-07-26 11:51:54 2073

原创 设计模式简介

设计模式的类型根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 中所提到的,总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。当然,我们还会讨论另一类设计模式:J2EE 设计模式。序号

2021-07-22 16:14:04 88

原创 组合和继承——面向对象编程思想

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。四位作者合称 GOF(四人帮,全拼 Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则:

2021-07-22 10:37:54 353

原创 Pulsar消息传递机制

Pulsar消息传递详细说明官方文档:https://pulsar.apache.org/docs/zh-CN/concepts-messaging/翻译不易,转载请链接到本文章Pulsar 采用发布-订阅的设计模式(简称 pub-sub), 该设计模式中,producer发布消息到 topic, Consumer订阅topic、处理发布的消息,并在处理完成后发送确认。一旦创建订阅,即使 consumer 断开连接,Pulsar 仍然可以保存所有消息。 在 consumer 确认消息已处理

2021-07-16 15:45:04 3967

空空如也

空空如也

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

TA关注的人

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