- 博客(124)
- 资源 (4)
- 收藏
- 关注
原创 锁和事务谁在外层
在分布式系统中同时使用事务和分布式锁时,建议将事务放在内层(方法内部),分布式锁放在外层(方法外部)。分布式锁后置:在调用事务方法之前先获取分布式锁,并在方法结束后释放锁。最近发布系统出现一个问题,发布单审核时,子发布单中的数据出现重复,经过排查,是因为锁和事务的顺序问题引起的。线程1进入方法,开启了事务A,获取了分布式锁,执行完业务逻辑后,释放了锁,然后发钉钉通知,最后提交事务。在线程1释放锁和提交事务A这段时间内,有可能会有其他线程进入该方法,执行业务逻辑并提交事务。引起问题的伪代码入下。
2025-04-28 14:02:33
145
原创 使用phaser打僵尸游戏
Phaser是一个用于开发2D视频游戏的开源框架,使用JavaScript和HTML5编写。它被设计为跨平台,可以在桌面和移动浏览器上运行,并且支持Canvas和WebGL渲染。Phaser因其易用性和强大的功能而受到广大游戏开发者的欢迎。精灵(Sprites):管理游戏中的角色和其他图像元素。物理引擎:内置了Arcade Physics、Ninja Physics和P2.js等物理引擎,用于处理碰撞检测和物体间的互动。动画:支持创建和管理复杂的动画序列。音效和音乐:添加背景音乐和音效效果。
2024-12-17 09:36:40
454
原创 经历的事故回归
但是业务有死循环的调用链路,导致数据频繁的更新,产生了大量的binlog,而binlog的消费慢,从而导致数据同步延迟,影响了业务。10台机器,在注册到注册中心时,通过tag分了组,消费者根据分组选择提供者时,该分组对应的提供者都不在线,报错提示无服务提供者。dubbo的服务提供者是集群的,有10多台机器,并且有提供者在线,但是部分业务的请求报错,提示无服务提供者。业务写了bug,导致一条车辆数据的json字段里,重复的拼接了感兴趣的用户id,并且频繁更新。机器挂了没告警,没监控。
2024-12-16 17:54:03
506
原创 用户中台的用户模型应该怎样设计
用户信息、员工信息、账号信息、状态、店铺code、个人钱包code 全部都糅杂在一条数据上。这就算了,主要是多个不同业务域的用户信息、员工信息、账号信息、状态、店铺code、个人钱包code 也全部都糅杂在一条数据上。罄竹难书1 因为原用户系统奇葩的调用拓扑2 因为原用户系统诡异的代码实现3 因为原用户系统面目全非的范接口的存在4 因为原用户系统秉承着最底层业务所以无业务逻辑,但是却在Dao层写满了互相干扰的业务逻辑的神操作。
2024-08-21 15:08:06
1012
原创 使用elasticsearch解决复杂查询场景:查询可领取的优惠券
测试分词器"text": ["浙江省,安徽省黄山市"]结果"token": "浙江省",},"token": "安徽省黄山市",收到前端的查询参数后,把处理为省份,省份城市如安徽省,安徽省黄山市,然后用match完成条件匹配。query,如下"query": {"bool": {"must": ["match": {"allowed_areas": "安徽省,安徽省黄山市"},"term": {不论是单个查询还是多个条件查询,方案二都很简洁。利用了es的match全文检索。
2024-08-13 14:09:58
396
原创 搜索中台的三次演变——基于阿里云智能开放搜索OpenSearch实现的第一代
可以参考阿里云的文档了解https://help.aliyun.com/zh/open-search/product-overview/what-is-opensearch?
2024-08-12 14:23:00
335
原创 记录最近发生的两次事故
总结和复盘我们都做了第一个事故,客户反馈时间是早上,我们一直到晚上八九点才意识到事故的严重性,事故升级的时间太慢了,链路里的人员事故意识都有点弱呀第二个事故呢,根因应该是我们公司内部发布二方包不规范,为了方便,发的都是SNAPSHOT,几乎没有哪个团队有发RELEASE的规定,如果大家都规范的发RELEASE,那就不会 或者说 可以提前发现 这种 二方包 背刺的事情了。
2024-07-17 15:39:57
843
原创 gc.log中 CMS-concurrent-abortable-preclean
预清理阶段有助于减少下一个“最终标记”阶段的工作。如果重复打印此消息,则表示它无法在 5 秒内完成预清理阶段。要么需要增加时间以允许更长的预清理阶段,要么需要检查操作系统或堆以确定为什么没有在分配的 5 秒内完成。如果重复打印此消息,则表示它无法在 5 秒内完成预清理阶段。要么需要增加时间以允许更长的预清理阶段,要么需要检查操作系统或堆以确定为什么没有在分配的 5 秒内完成。的值,就会打印上述日志,默认为 5 秒。如果超过这个阶段,它就会中止这个阶段并继续进入下一个阶段。如果可中止的预清理阶段。
2024-06-26 16:32:06
533
1
原创 数据库发生死锁 xxl-job任务不自动执行
经过排查,该异常连接属于18:45分挂掉的pod,有一台k8s的worker有问题,节点被k8s驱逐,但实际物理机还在运行,停不掉应用,当前发现物理机节点磁盘有问题,还在排查中。,查到了该连接的客户端地址,并且发现该客户端的连接已经存在了14778秒,约等于4个小时,和事故持续时间一致。业务同学反馈配置的xxl任务在18点45分之后就没有自动执行了,导致业务付款结果更新不及时。请求一次,更新执行器的心跳信息,调度中心启动线程每隔30秒检测一次。根据xxl的原理和业务反馈的问题,很容易想到可能出问题的点。
2024-04-07 17:39:16
2155
原创 ES 更新索引mapping后,如何不重新导入数据使新的mapping字段生效
例如使用mapping的 fields特性 或者 copy_to 时,增加新的mapping后,并不能使用,一般都需要重新导入数据。如何不导入数据,使历史数据生效呢。
2024-01-19 09:56:08
632
原创 byte-budddy: Unexpected type reference on method: 19
在使用agent时,启动应用,报错如下。使用byte-buddy版本为。
2023-08-24 16:08:41
237
原创 软引用的使用场景-链路日志
我司自研的链路系统中的agent层记录日志时,使用的是异步打印日志的机制。异步打印会使用队列,现将待打印的日志对象,记录在队列中。但这块的日志,为了不影响业务,例如不能因为链路记录的日志过多,导致业务应用oom,使用了软引用。
2023-08-24 16:01:42
520
原创 角度刁钻的慢查询优化
用户输入的是中文字符,肯定不可能匹配手机号和微信号,这里就可以通过简单判断下用户的输入特征,优化查询。不包含中文,包含字母,下划线等时,搜索微信号。下面的语法格式,转为es搜索,会使用。只有数字是,搜索手机号和微信号…发现一个业务的es慢查询。包含中文时,搜索姓名。
2023-08-15 17:50:07
185
原创 10倍提升效率,号称取代Elasticsearch?
对于小型数据集,比Elasticsearch快15倍对于中等大小的数据,比Elasticsearch快5倍对于大型数据,比Elasticsearch快4倍在单个服务器上进行数据导入时,最大吞吐量比Elasticsearch快最多2倍。
2023-08-04 09:36:43
2449
原创 梦网短信服务真的垃圾
刚接手集团的消息中心服务时,需要对服务的供应商进行评价打分。当时刚接手,不是很懂,只是查了历史数据,统计了触达率,进行了评价。随着处理问题的越来越多,越来越感觉梦网的短信服务真的是垃圾,服务贼差。我司的供应商评价考核主要是从以下几个方面。以后,我就是梦网的小黑子。
2023-07-20 10:26:34
342
原创 我司的短信接口被刷了
当今互联网中,大量诸如垃圾注册、刷库撞库、薅羊毛等严重影响企业正常业务运作的恶意风险背后都离不开机器自动化脚本。阿里云验证码服务在保障用户体验的同时有效拦截机器风险,为您提供安全可靠的业务环境。验证码服务是阿里集团突破传统验证码的人机识别产品。通过对用户的行为数据、设备特征与网络数据构建多维度数据分析,使用业界先进的风控引擎结合“规则+AI”模型,对风险设备使用、模拟行为、暴力重放等攻击进行综合实时风控判决。同时,验证码服务采用完整的可信前端安全方案保证数据采集的真实性、有效性。
2023-07-13 17:38:36
261
原创 工作中保持情绪稳定
工作压力大、人际关系等多种因素可能导致工作中情绪不稳定。应对方法包括主动沟通、调整心态、时间管理、寻找正能量等。情绪稳定能提高工作效率、人际关系,有利于发展。情绪稳定的人更易让团队感到舒适和安全、解决问题。情绪管理与晋升密切相关,因为它展示了应对压力、决策、人际交往、适应变化的能力。总体来说,掌握情绪管理技巧,使自己在工作中保持情绪稳定,可以从许多方面获得益处,是非常有价值的软技能。我们都应该在工作生活中,学会更好地管理自身情绪,保持大局稳定。
2023-07-11 12:57:32
322
原创 Apache HttpComponents 5
超文本传输协议(HTTP)可能是当今互联网上使用的最重要的协议。Web 服务、支持网络的设备和网络计算的增长继续将 HTTP 协议的作用扩展到用户驱动的 Web 浏览器之外,同时增加了需要 HTTP 支持的应用程序数量。
2023-06-28 15:24:25
508
原创 沉浸式翻译
1、首先,他养成了从国际知名媒体获取第一手信息的习惯,路透社、《纽约时报》、《经济学人》、《大西洋周刊》是他经常访问的新闻网站。但上个月,他直接从谷歌图书购买了《芯片战争》外文版,上传到沉浸式翻译,然后导出到自己的Kindle上,开始了他的双语电子书阅读。结合搜索结果的双语翻译,小张搜索信息的效率提升到了前所未有的水平。支持 10+ 种翻译服务 - 在沉浸式翻译中,您可以选择 10 多种翻译服务,例如 Deepl、OpenAI、微软翻译、谷歌翻译、腾讯翻译等,而且这个列表还在不断增长。
2023-06-27 14:35:01
874
原创 庆祝公司业务增长,int已经不够用了
之前的程序员大哥,没有预想到公司业务的业务会这么火,这么持久,主键竟然用了int。这不,公司业务向好发展,超出了这位大哥的期望。而我们的数据,已经超过这个最大值了。java中的整型取值范围。老哥,你万万想不到吧🐣。
2023-06-16 10:24:01
92
原创 使用 Flyway 优雅地管理数据库迁移
Flyway 是一款开源的数据库迁移工具。它可以管理SQL脚本来演进数据库schema,并将开发、测试和生产环境的数据保持同步。
2023-05-31 14:31:51
1564
原创 FinOps云成本管理的新方法
综上,FinOps 是云环境中实现成本效益的最佳实践。它不仅可以大幅降低云成本,还可以带来操作效率、可预测性和安全性等方面的改进,从而使企业的云之旅更智能、敏捷和高效。(已编辑)
2023-05-30 11:30:36
993
原创 多渠道短信管理后台
架构采用三层设计,UI 层面向用户,业务层面向业务处理,DAO 层面向数据库。各层通过接口相互调用。这种分层的架构设计可以使系统扩展性好,可维护性高。各层级相互解耦,有利于后期优化和迭代。API 层对外提供接口服务,WEB 层作为管理后台。数据库存储核心业务数据。
2023-05-29 10:27:24
1058
原创 短信营销一二三
除内容和发送策略的优化之外,选择一家服务稳定的短信供应商,实现更快速更高效的短信传送,这也是取得成功的基础。需要持续监控和优化,根据市场与用户反馈调整短信方案。总之,持续监测、不断测试、及时改进、采用新技术,这几点可以最大限度提高短信的触达率与效果。选择一家优秀的短信供应商,是短信营销成功的基础。短信触达率直接关乎短信营销的效果和ROI,一条成功送达的短信同样重要。那么如何提高短信的触达率呢?通过这几个方法,对短信供应商的SLA服务水平进行持续性监督和评估,可以有效保证其服务质量,确保短信业务的稳定运行。
2023-05-26 09:56:31
1605
原创 OrbStack
OrbStack 是一个可以在 macOS 上快速运行 Docker 容器,和 Linux 虚拟机的工具,资源占用率低,高效,快速。macOS 上的 Parallels Desktop 和 Docker Desktop 一直是饱受诟病,慢、重、资源消耗巨大。OrbStack 的出现就是为了解决这个问题。OrbStack 主要有两个作用:替代 Docker Desktop、替代 Linux 虚拟机。
2023-04-27 10:06:21
10094
1
原创 Kubernetes VPA
Kubernetes Vertical Pod Autoscaler (VPA) 是在集群中安装的组件。它增加和减少容器 CPU 和内存资源配置,使集群资源分配与实际使用情况保持一致。接下来,介绍一些重要的 VPA 概念。请求定义容器所需的最小资源量。例如,应用程序可以使用超过 256MB 的内存,但如果其请求是 256MB 的内存,则 Kubernetes 将保证容器至少为 256MB。限制定义给定容器可以消耗的最大资源量。
2023-04-05 15:00:49
1248
原创 基于 FinOps 的云资源分析与成本优化平台——Crane
Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。
2023-04-03 13:42:11
622
Windows Service Wrapper in less restrictive license
2023-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人