草庐IT

分布式事务问题

​问题描述:最近在做项目过程中遇到这样一种场景:方法A依次调用方法B、C、D,其中方法B和D都是本地方法,方法C是远程方法(更具体的讲,方法C的功能是发送MQ消息),该场景要求方法A是满足事务的,即A调用B、C、D要么同时成功,要么同时失败。 问题分析:该问题的难点在于,对于方法B和D,可以通过本地事务支持回滚,对于方法C,不是一个简单的远程调用,是一个发送MQ消息的方法,本地事务不支持回滚,也无法手动调方法回滚,该如何解决? 几种可能的方案:方案一:将方法C的执行放到最后,保证其他方法执行成功后再执行方法C,这种方案不需要处理回滚;方案二:使用分布式事务,支持回滚; 方案一:需要保存方法C的

分布式事务问题

​问题描述:最近在做项目过程中遇到这样一种场景:方法A依次调用方法B、C、D,其中方法B和D都是本地方法,方法C是远程方法(更具体的讲,方法C的功能是发送MQ消息),该场景要求方法A是满足事务的,即A调用B、C、D要么同时成功,要么同时失败。 问题分析:该问题的难点在于,对于方法B和D,可以通过本地事务支持回滚,对于方法C,不是一个简单的远程调用,是一个发送MQ消息的方法,本地事务不支持回滚,也无法手动调方法回滚,该如何解决? 几种可能的方案:方案一:将方法C的执行放到最后,保证其他方法执行成功后再执行方法C,这种方案不需要处理回滚;方案二:使用分布式事务,支持回滚; 方案一:需要保存方法C的

JS原生---歌词滚动效果案例

【开门见山】实现目标:需要让歌词列表随着播放的时间更新而滚动,即实时的跟随歌曲的进度而滚动效果:​编辑 需要事先准备的东西:1.音频(mp3格式):​编辑 2.歌词(详细):​编辑 先展示html和css的实现(不重要,自己想怎样调都行,重点在js的逻辑实现)1.html:小tips:这其中的歌词列表ul里的li,可以用乱序假文(lorem)先去进行布局或样式的调整,后续再传入歌词。如:li*30>lorem3 //生成三十个li,且每个li中随机生成三个词语。Document 其中data.js为歌词的文件,index.js为主要逻辑文件,在下边js的文件中会展示 2.css:*{margi

跟着廖雪峰学python 006

​递归函数在函数内部调用自身本身计算阶乘:deffact(n):ifn==1:return1returnn*fact(n-1)注意:使用递归函数需要防止栈溢出。在计算机中,函数调用是通过栈(stack)实现,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多会导致栈溢出。 解决方法:尾递归优化。尾递归:在函数返回时,调用自身本身,且return语句不能包含表达式。计算阶乘:deffact(n):returnfact_iter(n,1)deffact_iter(num,product):ifnum==1:returnprodu

JS原生---歌词滚动效果案例

【开门见山】实现目标:需要让歌词列表随着播放的时间更新而滚动,即实时的跟随歌曲的进度而滚动效果:​编辑 需要事先准备的东西:1.音频(mp3格式):​编辑 2.歌词(详细):​编辑 先展示html和css的实现(不重要,自己想怎样调都行,重点在js的逻辑实现)1.html:小tips:这其中的歌词列表ul里的li,可以用乱序假文(lorem)先去进行布局或样式的调整,后续再传入歌词。如:li*30>lorem3 //生成三十个li,且每个li中随机生成三个词语。Document 其中data.js为歌词的文件,index.js为主要逻辑文件,在下边js的文件中会展示 2.css:*{margi

跟着廖雪峰学python 006

​递归函数在函数内部调用自身本身计算阶乘:deffact(n):ifn==1:return1returnn*fact(n-1)注意:使用递归函数需要防止栈溢出。在计算机中,函数调用是通过栈(stack)实现,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多会导致栈溢出。 解决方法:尾递归优化。尾递归:在函数返回时,调用自身本身,且return语句不能包含表达式。计算阶乘:deffact(n):returnfact_iter(n,1)deffact_iter(num,product):ifnum==1:returnprodu

记一次完整体系的攻防演练的环境部署-映射公网-渗透getshell-上线frp-上线MSF实现内网远程渗透-打开远程桌面。

前言,本次笔记是记录在工作中的一个攻防演练环境搭建和通过部署的应用存在的文件上传漏洞getshell,接着上线frp,接着上线msf,实现msf远程渗透。准备工作:1,在客户的内网环境部署一个Windows7系统,在这个系统上把finecms这个应用部署上去。把finecms安装之后,和客户沟通,把这个应用的地址映射到公网上去。2,其次,没有条件的话,自己在在wmware上装个虚拟机部署上去也行。  一:环境部署完成的模样。 二:利用上传头像处的漏洞来进行getshell。它这套源码存在这个漏洞,我们是直接用这套源码部署上去的,没有做任何的措施就会存在这个漏洞,很多开发人员部署应用的时候,因为

记一次完整体系的攻防演练的环境部署-映射公网-渗透getshell-上线frp-上线MSF实现内网远程渗透-打开远程桌面。

前言,本次笔记是记录在工作中的一个攻防演练环境搭建和通过部署的应用存在的文件上传漏洞getshell,接着上线frp,接着上线msf,实现msf远程渗透。准备工作:1,在客户的内网环境部署一个Windows7系统,在这个系统上把finecms这个应用部署上去。把finecms安装之后,和客户沟通,把这个应用的地址映射到公网上去。2,其次,没有条件的话,自己在在wmware上装个虚拟机部署上去也行。  一:环境部署完成的模样。 二:利用上传头像处的漏洞来进行getshell。它这套源码存在这个漏洞,我们是直接用这套源码部署上去的,没有做任何的措施就会存在这个漏洞,很多开发人员部署应用的时候,因为

一文搞懂蓝牙模块各种工作模式

​  摘要:本文主要归纳总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式了解其扮演不同角色时工作的一个基本原理,为更深入的研究蓝牙模块底层的工作机制和技术方案进行铺垫。1、主设备工作模式        主设备是能够搜索别人并主动建立连接的一方,从扫描状态转化而来的。其可以和一个或多个从设备进行连接通信,它会定期的扫描周围的广播状态设备发送的广播信息,可以对周围设备进行搜索并选择所需要连接的从设备进行配对连接,建立通信链路成功后,主从双方就可以发送接收数据。例如智能手机,数据传输中做主机的蓝牙模块。        一个蓝牙设备以主模式发起连接时,需要知道从设备的mac地址,配对密码等信息,

一文搞懂蓝牙模块各种工作模式

​  摘要:本文主要归纳总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式了解其扮演不同角色时工作的一个基本原理,为更深入的研究蓝牙模块底层的工作机制和技术方案进行铺垫。1、主设备工作模式        主设备是能够搜索别人并主动建立连接的一方,从扫描状态转化而来的。其可以和一个或多个从设备进行连接通信,它会定期的扫描周围的广播状态设备发送的广播信息,可以对周围设备进行搜索并选择所需要连接的从设备进行配对连接,建立通信链路成功后,主从双方就可以发送接收数据。例如智能手机,数据传输中做主机的蓝牙模块。        一个蓝牙设备以主模式发起连接时,需要知道从设备的mac地址,配对密码等信息,