首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏wayn的程序开发

    Redis分布式锁常见分析

    本文主要针对日常开发中加锁过程中某些异常场景进行讲解与分析。 1.1 先说一个暴论:如果料想到有这类异常产生,为什么不在加锁时,就把加锁过期时间设置大一 不管所续期还是增大加锁时长,都会导致一个问题,其他线程会迟迟获取不到锁,一直被阻塞。 五、总结 其实本文得核心逻辑有许多都是参考 Redission 客户端而写,对于这些常见得,博主结合自身思考,业界知识总结并自己实现一个分布式锁得工具类。

    1K61编辑于 2023-03-13
  • 来自专栏K8s 系列

    Go嵌套并发实现EDM,附分析#1

    因此本文就结合自己在学习Go并发的实战demo中,把遇到的一些写下来,共享进步。 1. Demo需求与分析: 需求:实现一个EDM的高效邮件发送:需要支持多个国家(可以看成是多个任务),需要记录每条任务发送的状态(当前成功、失败条数),需要支持可暂停(stop)、重新发送(run)操作。 分析:从需求可以看出,在邮件发送中可以通过并发实现多个国家(多个任务)并发、单个任务分批次并发实现快速、高效EDM需求。 3. 小结: 本文通过两层嵌套Go 并发,模拟实现了高性能并发EDM,具体的一些出错行控制、任务中断与再次执行将在下次继续讨论,主要逻辑已跑通,几个小结如下: a) WaitGroup 一般用于main

    83420发布于 2021-09-22
  • 来自专栏c++与qt学习

    JUC记录

    JUC记录 tomcat中threadlocal使用采记录 tomcat中threadlocal使用采记录 tomcat默认使用线程池来管理线程,即当收到一个请求时,如果线程池存在空闲线程,则会从中取出一个空闲线程来处理该请求

    27340编辑于 2021-12-24
  • 来自专栏全栈程序员必看

    微信公众号网页开发-Vue项目分析

    项目背景 该系统为商品推广系统,微信交互涉及网页授权和网页分享,年前使用django框架做了基础版,节后项目升级,功能更加丰富,使用vue框架做前后端分离开发,前后端分离开发提升了开发效率,也埋藏了很多 分析及解决 开发前需要进入公众号后台配置”JS接口安全域名”及“授权回调页面域名”,如果服务端要获取token,还需要配置”IP白名单”,详细信息可以查阅官网。 params).json() openid = res.get("openid") # 获取openid return ajax.ajax_ok(dict(openid=openid)) 以下Android和iOS都有,处理方案都可行 1. vue-router默认为hash模式,此时添加的code参数会添加到#前面造成授权失败,处理方案是使用history模式。 微信分享 微信网页分享可以将网址以卡片的形式转发,提升用户体验,但也最多 微信分享最难的部分就是权限验证,主要逻辑是根据当前网址生成签名配置到config函数,微信sdk会重新生成签名进行比对验证

    1.3K20编辑于 2022-09-06
  • 来自专栏算法channel

    Python 闭包

    闭包 上篇参考:Python 闭包使用注意,接下来,介绍使用闭包,经常会犯的一个错误:演示代码如下, In [6]: def boy(pos): ...: def run(step return pos 5 return run UnboundLocalError: local variable 'pos' referenced before assignment 分析原因

    83620发布于 2019-05-13
  • 来自专栏简单的日记

    支付流程的

    支付流程中的猜的几个。 交易流水和记账 每一笔交易都需要记录流水,并登记到个人和机构的分户账户上,统计和分析也需要根据交易流水来更新相关数据。 完成数据记录后,发送MQ出来,记账、统计、分析,都是接收MQ来完成数据处理。 涉及到本地资金支付,比如钱包支付,会需要分布式事务处理,扣减账号余额,记账,扣减库存等,每个操作失败,都要回滚。 整体上,风控可以分为数据采集,数据分析,实时计算,规则配置,实时拦截等模块。风控本身是个大话题,以后专门讨论。又欠一个债。 但风控和交易的接口比较简单。

    2K41发布于 2019-07-15
  • 来自专栏猫头虎博客专区

    Java 脑图

    上面这些都很对,这些也都是面试中经常考察的。但从真实工作场景看,我觉得还缺少一环:业务开发能力。可能你会说,业务开发不就是 CRUD 吗,有啥难的? 最后,项目负责人开启明细日志彻查问题,才发现是自调用方法导致事务没生效造成的。 诸如以上种种,由一个小引发的重大事故不在少数。不仅会给公司造成损失,还会影响自己的职业发展。 其实,并非是我们不想解决问题,只是不知道问题到底出在哪里。

    21610编辑于 2024-04-07
  • 来自专栏wayn的程序开发

    7000字详解Spring Boot项目集成RabbitMQ实战以及分析

    本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ,包含对 RibbitMQ 的架构介绍、应用场景、点解析以及代码实战。 例如,在 waynboot-mall 项目中,每天晚上八有秒杀活动,这时可以使用 RabbitMQ 来削峰限流,保证系统的稳定运行。 分析 在使用 RabbitMQ 的过程中,有一些常见的问题需要注意: 消息确认:消息确认是 RabbitMQ 保证消息可靠传递的机制。消息确认分为生产者确认和消费者确认。 消费者配置 在 RabbitMQ 的消息消费环节,需要注意的一就是,如果需要确保消费者不出现漏消费,则需要开启消费者的手动 ack 模式。 大家在自己的项目中如果需要引入 RabbitMQ 时,都可以参考本文的代码实战配置,帮助大家快速集成、避免踩。 我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

    5.1K33编辑于 2024-01-30
  • 来自专栏算法channel

    Python必知(2):嵌套列表的

    2 识别 在使用嵌套的列表时要小心,否则很可能遭遇非常尴尬的情况,下面是一个小例子。 3 区分两个概念 要想把这个填平,我们首先要区分对象和对象的引用这两个概念,而要区分这两个概念,还得先说说内存中的栈和堆。 我们经常会听人说起“堆栈”这个词,但实际上“堆”和“栈”是两个不同的概念。 知道了这一,我们可以回过头看看刚才的程序,我们对列表进行[[0]* 3] * 5操作时,仅仅是将[0, 0, 0] 这个列表的地址进行了复制,并没有创建新的列表对象。 这一可以通过id函数检查scores[0]和scores[1]的地址得到证实。在此我们举一个小例子,读者朋友们可以敲一敲加深印象。 5 正确代码 所以,正确的代码应该按照如下的方式进行修改。 往期推荐 盘点互联网公司最常见的面试编程题 Python那些年:我们踩过的那些(1)

    6.2K20发布于 2019-07-30
  • 来自专栏前端说吧

    css - 兼容适配总结(。。。)

    1. transform为代表的这些css3属性一定要写-webkit-,不然低版本(目前遇到的是8)的苹果,不支持。

    92820发布于 2018-12-05
  • 来自专栏拂晓风起

    rsync 自动创建目录的

    第三种情况,目录路径很可能就不存在,而这里就有。rsync只支持创建一层目录!!!也就是说,上述例子,只允许目录3不存在,前缀/data/1/2/必须先存在。 要解决上述问题,就要用小技巧,例如: 1、用别的程序创建目录 2、ssh过去先创建 3、奇技淫巧:rsync -a --rsync-path="mkdir -p /tmp/imaginary/

    3.3K20发布于 2018-07-03
  • 来自专栏CDN及云技术分享

    重构代码遇到的(一)

    我得确保即将修改的代码拥有一组可靠的测试。这些测试必不可少。尽量遵循重构手法可以避免绝大多数引入bug的情形,但是我毕竟是人,毕竟有可能犯错。

    51050发布于 2021-09-25
  • 来自专栏不换的随想乐园

    Taro 中使用 Echarts 小记

    Taro 中使用 Echarts 小记 背景 最近的一次项目中实践了两个技术方向: Taro 中使用 React 组件结合原生的 小程序 组件使用; Taro 中使用 echarts 做图表; 中间经历的略微有些坎坷 xx.addEventListener is not a function; echarts 层级过高,浮在 Popup 、Modal 等组件上; echarts 面积过大,导致移动端的触摸滚动影响页面; CoverView 组件的 CoverView 组件的的一批,谁用谁知道,俗称:“狗都不用”,但我还是用了,害!

    1.4K10编辑于 2024-05-11
  • 来自专栏全栈之路

    egret知(填)识()

    替换控件,方法为dragonBones.Slot.setDisplay(dispaly:any),但是并不是每一次都能成功设置上,display也并不是一直有值,以下提供一种方式参考,并不一定对哈:

    1.2K10发布于 2018-10-19
  • 来自专栏知无不言 - 畅所欲言

    Mybatis Plus 数据权限插件

    Mybatis Plus 数据权限插件Mybatis Plus 插件版本:3.5.3.1插件作用:通过拼接 SQL 的方式给 where 添加查询条件达到数据隔离的效果。 IN (1,2,3)"; Expression sqlSegmentExpression = CCJSqlParserUtil.parseCondExpression(sqlSegment); 忽略权限过滤后配置 【1】这些调用栈从上到下是入口到出口的方法调用顺序,从调用栈中每个方法进去就很容易找到插件的执行位置,调用的入口。然后在入口中打一个断点,把注解的注释放开,然后一步步步过,就能发现出问题的地方了。

    1.3K20编辑于 2023-11-20
  • 来自专栏全栈之路

    egret知(填)识()

    hello",style:{size:16,textColor:oxffff00}} ] 富文本还可以添加链接,同时可以给链接添加下划线哦 \^0\^ var ADDRESS = "egret知(填)识() 集"; lbTest.textFlow=[ ... { text: ADDRESS, style: { textColor: 0x76b7e8, size: 21, href:"https:/ /www.jianshu.com/p/a4d600ce46af", underline: true }, } ... ] 给链接添加事件: var ADDRESS = "egret知(填)识()集" } window.open("https://www.jianshu.com/p/a4d600ce46af","_blank"); }, this ); 但是这样写可能会带来, 因此,兼容移动端时,应该这么些: var ADDRESS = "egret知(填)识()集"; lbTest.textFlow=[ { text: ADDRESS, style: { textColor

    1.3K10发布于 2020-01-21
  • 来自专栏云深之无迹

    开新:betaflight源码分析(开篇)

    其次也是想小小的在GT上面提个issue,但是就提个崩溃这种的就太没有水平了,还是想提交一代码的,所以,编写的前提是看懂,也是我写这个东西的一个原因。当然更重要的是学习里面各个学科的知识了。

    3.5K30编辑于 2022-11-25
  • 来自专栏JavaWeb

    项目中Spring 声明式事务使用的一些分析02

    项目中Spring 声明式事务使用的一些分析02         基于上次对"Spring 声明式事务使用的一些分析01"分析后感觉还是有一定收获的,现在开始进行对Spring 事务进行更进一步的分析 方法中有多个操作是对数据表进行更改(insert,update,delete)都需要在该方法上加上@Transactional(rollbackFor = Exception.class)",今天我就来分析一下在指定情况下其实不用加这个注解其实也是能回滚数据的 抛出异常了..."); } 如上代码是SecurityAddition类对应security_addition表,对于security_addition表的插入后抛出了RuntimeException,分析

    86930发布于 2018-05-15
  • 来自专栏LinkinStar's Blog

    Go 应用容器下优雅停止

    前言 之前我有写过 go 应用在 k8s 中如何优雅停止 的博客,理论上在配置好对应的参数之后就能 优雅停止 了,但是最近接触到了两个场景,会导致配置的优雅停止失效,为了避免踩,对于之前的博客进一步进行补充

    27010编辑于 2024-08-23
  • 来自专栏JavaWeb

    项目中Spring 声明式事务使用的一些分析01

    项目中Spring 声明式事务使用的一些分析         事务的中重要性我在这就不用提了,10个系统基本10个都需要用到事务;事务从早期的存储过程代码中手动提交事务和回滚事务、Spring早期的编程事务管理到现在的声明事务管理 在这里我会将按照自己学习的角度去分析spring事务的强大和常见开发中的一些。 1.     先介绍一个自己定位bug的技巧:         就是我们在使用各种开源框架的,要直接定位到自己的bug,第一步就是看日志,看错误信息,有的错误非常明了,有的需要自己结合理论知识去分析,日志分析也是对开源框架更加深入去掌握和使用 如上图,日志错误信息其实是我们在使用Spring事务经常遇到的一个,就是在配置文件中已经配置了service中指定方法为只读后,还在这个方法中直接插入或修改等操作,这个时候就能看到上面的异常信息了。 最后:日志也分析了,现在应该知道怎么处理了吧!其实这问题导致的原因也是在于我们程序员开发的时候没有养成一个好的习惯,如:命名规范等,其实这都是在爬自己的,爬完后就要好好总结,这样才会有收获。

    4.1K80发布于 2018-05-15
领券