- 博客(66)
- 收藏
- 关注
原创 Springboot整合RocketMQ分布式事务
以上主干流程已由RocketMQ实现,对用户侧来说,用户需要分别实现本地事务执行以及本地事务回查方法,因此 只需关注本地事务的执行状态即可。Producer (MQ发送方)发送事务消息至MQ Server,MQ Server将消息状态标记为Prepared(预备状态),注。如果执行Producer端本地事务过程中,执行端挂掉,或者超时,MQ Server将会不停的询问同组的其他 Producer。MQ订阅方(积分服务)消费消息,消费成功则向MQ回应ack,否则将重复接收消息。这里ack默认自动回应,即。
2024-10-29 19:59:28
1132
原创 秒杀案例-分布式锁Redisson、synchronized、RedLock
因为synchronized 锁住的只是当前JVM中的this对象,集群状态下,还是有可能发生并发关系,同时执行到updateStockCount,当获取的库存都会存入自己的栈帧,所以还会导致库存超卖的情况。**读取与更新之间的窗口期:**当一个线程读取库存后,其他线程可能已经完成了库存的扣减操作,但当前线程由于持有库存值的本地副本,仍可能认为库存充足而继续执行扣减操作。**使用乐观锁:**在数据库表中增加一个版本号字段,每次更新库存时也更新版本号,并在更新语句中加入版本号的检查,以确保数据的一致性。
2024-07-21 10:02:47
926
原创 设计模式(七)创建者模式之建造者模式
建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同属性的对象建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,不需要知道内部的具体构建细节(如用户在选购汽车的时候,只需要选择好方向盘、轮胎、发动机类型,不需要知道零件是怎么制造出来的)例如需要把这些的配件组装成一个主机。第一步安装CPU、第二步安装风扇、第三步安装内存条…建造者模式注重于组装。
2024-06-19 16:48:33
2178
原创 设计模式(五)创建者模式之工厂模式
在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如电器厂既生产电视机又生产洗衣机或空调, 手机店既可以卖手机也可以卖平板、音响等。返回一个芥末味的咖啡。工厂类的客户端可能有很多,比如创建美团外卖等,这样只需要修改工厂类的代码,省去其他的修改操作。
2024-06-18 21:35:39
737
原创 设计模式(四)创建者模式之单例模式
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。
2024-06-18 21:35:14
1094
原创 【设计模式(三) 设计模式的分类 】
设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
2024-06-18 21:34:50
689
原创 Activiti7 Maven笔记
表分类表名解释一般数据通用的流程定义和流程资源系统相关属性流程历史记录历史的流程实例历史的流程附件历史的说明性信息历史的流程运行中的细节信息历史的流程运行过程中用户关系历史的流程实例历史的任务实例历史的流程运行中的变量信息流程定义表部署单元信息模型信息已部署的流程定义运行实例表运行时事件运行时流程执行实例运行时用户关系信息,存储任务节点与参与者的相关信息ACT_RU_JOB运行时作业运行时任务运行时变量表添加节点,然后点击空白处 设置流程的id和name。
2024-06-03 11:12:24
1377
原创 IDEA 安装BPMN插件-Activiti BPMN visualizer
使用activiti 不要使用**CamundaModeler BPMN visualizer插件 ** 和Activiti 不兼容。想要保存图片直接可以右键 SAVE TO PNG。点击箭头拖动到指定的节点,就可完成步骤关联。可以通过搜索插件actiBPMN直接安装。下载自己合适的版本,如果没有就下载最新的。选中evection.bpmn。
2024-05-31 22:32:28
2182
2
原创 Sharding-JDBC四:分库分表(水平分表)
通过user_id进行分库。分库的类型是INLINE行表达式分片算法。通过配置algorithm-expression参数,进行配置行表达式。根据行表达式 进行路由具体的数据库。
2024-05-30 20:03:11
1151
原创 activiti01 获取processEngine 是null
如果是MySQL8.0的版本请修改pom文件中的mysql-connector-java的版本号。原因分析:是没有读取到activiti的配置文件。
2024-05-30 19:56:09
680
原创 Sharding-JDBC一:MySQL主从复制搭建
默认情况下MySQL的binlog日志是自动开启的,可以通过如下配置定义一些可选配置。执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。在主机中执行以下SQL,在从机3506中查看数据库、表和数据是否已经被同步。可以配置多台从机slave1、slave2…**两个关键进程:**下面两个参数都是Yes,则说明主从配置成功!错误日志,根据日志中显示的错误信息在网上搜索解决方案即可。下面两个参数都是Yes,则说明主从配置成功!需要的时候,可以使用如下SQL语句。的情况,此时查看下方的。
2024-05-11 17:27:41
710
1
原创 MyCat基于多主多从实现读写分离
MyCat基于一主一从实现读写分离前期准备连接mycat创建逻辑库逻辑库配置添加数据源 (读写分离嘛)使用注解方式添加数据源配置rwSepw写数据源配置rwSepw2写数据源配置rwSepr读数据源配置rwSepr2读数据源更新集群信息,添加dr0从节点.实现读写分离重启mycqt完成读写分离验证读写分离在主机数据库下执行以下sql语句登录mycat验证读写分离成功查询出的name值不一样说明搭建成功前期准备先搭建多主多从参考文章多主多从安装mycat Mycat安装基于mycat一主一从读写分离
2024-05-06 16:57:32
930
原创 MyCat基于一主一从实现读写分离
集群信息配置好之后,会/lx/mycat/conf/clusters生成对应的配置文件prototype.cluster.json。数据源配置好之后,会/lx/mycat/conf/datasources生成对应的配置文件。targetName的值是自定义的 只需要和后面的集群信息中的数据源名称保持一致即可。:获取集群中允许读写的数据源,但允许读的数据源优先。:获取集群中允许写数据源,即主节点中选择。配置哪些是读数据源,哪些是写数据源。(默认值):获取集群中所有数据源。:获取集群中允许读的数据源。
2024-05-06 16:19:37
843
1
原创 MyCat安装
账号密码参考/lx/mycat2/mycat/conf/users/root.user.json配置文件。默认端口号是8066。官网可能受到DNS污染导致无法访问,下载服务失效,导致安装下载不便。可以修改操作系统的host文件添加下面行,绕过DNS解析。修改成最高权限,否则运行启动命令时,会因权限不足而报错。使用外部连接工具 或者使用mysql -u -p都可以。进入/lx/mycat2/mycat/bin目录下。把基础包放到 /lx目录下进行解压。mycat就是解压出的目录。
2024-05-06 15:17:14
1106
2
原创 MySql主从复制(多主多从)
二:停止master1和slave1。随后启动master1和slave1,验证是否同步数据。master1端口号是13306 master2端口号是13307 slave1端口号是13308 slave2端口号是13309。查看master2、slave1和slave2是否成功复制数据。可是有的小伙伴还希望了解一下多主多从。采用两个主机互备,slave1 复制 master1,slave2 复制 master2。查看slave1两个选项是否为Yes;查看slave2两个选项是否为Yes;
2024-04-29 11:09:22
1006
原创 MySQL主从复制一主一从
主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。
2024-04-29 10:56:04
924
原创 SpringSecurity+ Oauth2.0+JWT 0-1
*** 令牌存储策略*/@Bean//内存模式//令牌服务@Autowired//客户端详情服务@Autowired/*** 配置令牌服务* 不管是什么模式都需要配置* 需要使用到客户端clientDetailsService和令牌服务tokenStore*/@Bean//客户端详情//刷新token//令牌服务// 令牌默认有效期2小时// 刷新令牌默认有效期3天。
2023-10-19 18:39:31
694
原创 linux 安装 docker
是Docker的社区版,全称为Docker Community Edition,是Docker的社区版。它是一个完整的容器化平台,包括了Docker-ce-cli以及其他必要的组件,如Docker守护程序和基础设施管理工具。使用docker命令,可以构建、运行、停止、删除容器,以及管理Docker镜像、网络、卷等。Docker-ce-cli 提供了与Docker守护程序通信的途径,使可以轻松地管理容器化应用。Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。
2023-10-19 09:50:23
479
原创 RabbitMQ-API
MQ默认是采用轮询的方式分发消息,但是有的消费者处理很慢,就会导致消息积压,可以设置不公平分发,消费者进行应答之后,才会接收下一条消息。了部分突然它挂掉了,会发生什么情况。,因为这种模式如果消息在接收到之前,消费者那边出现连接或者 channel 关闭,那么消息就丢。默认消息采用的是自动应答,所以我们要想实现消息消费过程中不丢失,需要在接收消息是把自动应答改。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。当然这样有可能使得消费者这边由于接收太多还来不及处理的消息,导致这些消息的积压,最终。
2023-08-02 19:32:27
2734
原创 java 定时任务不按照规定时间执行
*是因为springboot默认给定时任务配置的线程池只有一个线程,当很多个定时任务都加了异步注解,没有配置线程池时,他们会因为只有一个线程出问题。因为springboot的定时任务默认的线程池只有一个线程,就算加了异步,也不能使得一个任务结束下个任务才能开始,所以要配置一下或者重写定时任务的线程池,也可以将异步注解去掉,将异步注解去掉,springboot就会给定时任务配置一个固定的线程,不受干扰.
2023-08-02 17:14:56
1034
原创 RabbitMQ安装
RabbitMQ 是一个开源的遵循 AMQP 协议实现的基于 Erlang语言编写,**即需要先安装部署Erlang环境再安装RabbitMQ环境。**需加注意的是,读者若不想跟着我的版本号下载安装,可根据两者版本号的对应表(下面图示只展示了部分),安装相应版本的Erlang和RabbitMQ,只需在下文修改命令里面的版本号即可。
2023-07-19 15:43:06
421
原创 Kafka生产者API
如果研发人员可以根据企业需求,自己重新实现分区器。在kafka生产者配置对象中添加自定义分区器//自定义分区器 properties . put(ProducerConfig . PARTITIONER_CLASS_CONFIG , "com.itwlj.kafka.shangguigu.kafka.producer.MyPartitioner");acks=0,生产者发送过来数据就不管了,可靠性差,效率高;acks=1,生产者发送过来数据Leader应答,可靠性中等,效率中等;
2023-07-18 14:33:58
110
原创 Win安装kafka
打开命令行终端,进入 Kafka 的安装目录。打开命令行终端,进入 Kafka 的安装目录。同时在解压目录中拆创建 data和 log文件夹。双击 bin 目录下zkServer.cmd。进入\bin\windows下,执行以下命令。进入\bin\windows下,执行以下命令。进入 \bin\windows 执行以下命令。先启动zookeeper,参考上文。
2023-06-07 15:30:32
820
原创 关于SpringDataJPA通过查询数据直接修改数据库
Transactional 用在Controller 和service中可以实现修改用在mapper中不能实现修改。
2023-04-19 19:23:16
399
原创 Springboot解决跨域
这种方式和@CrossOrigin方式要配置的属性基本一样,大致原理也类似,都是在DispatcherServlet中触发跨域处理,配置了一个CorsConfiguration对象,然后用该对象创建CorsInterceptor拦截器,然后在拦截器中调用DefaultCorsProcessor#processRequest方法,完成对跨域请求的校验。origins:允许的域,* 表示所有,一般可以指定具体的域, allowedHeaders:允许的请求头字段,* 表示所有。
2023-02-16 15:06:35
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人