作者 | 邱俊涛性能问题是软件开发中的常见问题,我们在几乎每个项目在某个时期(往往是在后期快要交付的时候,或者已经上线以后收到用户反馈)都或多或少会遇到。这篇文章想要从流程方面和具体的技术细节上对软件性能优化上遇到的问题做一些总结和分类,以方便在后续类似的场景下可以提供给开发者一
理论OAuth是一个关于授权(authorization)的开放网络标准,用来授权第三方应用获取用户数据,是目前最流行的授权机制,它当前的版本是2.0。应用场景假如你正在“网站A”上冲浪,看到一篇帖子表示非常喜欢,当你情不自禁的想要点赞时,它会提示你进行登录操作。打开登录页面你会发现,除了最简单的
this关键字是JavaScript中最令人困惑的部分之一,本文试图通过介绍有关它的五个重要事项来阐明其目的和用法。1、它允许访问同一对象上的其他属性在JavaScript中,函数可以是独立的单元,但它们也可以用作对象的值。考虑下一个对象。复制constobj={msg:'Hi',logMessag
由于hystrix官方已经停止维护了,目前spring-cloud推荐使用resilience4j来代替hystrix实现熔断、限流。熔断一般指客户端调用服务端接口出现异常时客户端侧的处理,当然也可以是服务端的处理出现异常时熔断快速返回,可以暂时切断对下游服务的调用,是一种牺牲局部保全整体的有效措施
一、前言供应链时效域历经近一年的发展,在预估时效方面沉淀出了一套理论和两把利器(预估模型和路由系统)。以现货为例,通过持续的技术方案升级,预估模型的准确率最高接近了90%,具备了透出给用户的条件。但在接入前台场景的过程中,前台对我们提出接口性能的要求。以接入的商详浮层场景为例,接口调用链路经过商详、
前言最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除了优化索引之外,更多的是在优化count(*)。通常情况下,分页接口一般会查询两次数据库,第一次是获取具体数据,第二次是
11月16日,全球最大的Nuxt会议NuxtNation2022在线举行,并正式发布了Nuxt.js3.0的第一个稳定版本。Nuxt3是基于 Vite[1]、Vue3[2] 和 Nitro[3] 的Nuxt框架的现代重写,具有一流的Typescript支持,是
一、摘要在上一篇文章中,我们详细的介绍了随着下单流量逐渐上升,为了降低数据库的访问压力,通过请求唯一ID+redis分布式锁来防止接口重复提交,流程图如下!每次提交的时候,需要先调用后端服务获取请求唯一ID,然后才能提交。对于这样的流程,不少的同学可能会感觉到非常鸡肋,尤其是单元测试,需要每次先获
译者|李睿审校|孙淑娟在这个PythonNose教程中,将深入研究Nose框架。Nose是一个测试自动化框架,它扩展了unittest,并进一步利用Nose来执行Selenium测试自动化。许多开发人员在Selenium测试自动化中面临的一个挑战是如何选择正确的测试框架,以帮助他们以最少(或不需要
虽然Web性能的实践已经存在了一段时间,并且多年来研究和调试JavaScript(JS)错误的能力有所提高,但我们从未真正关注过错误对性能的影响。JavaScript错误是Akamai的真实用户监控(RUM)工具(mPulse)收集的更复杂的指标之一,作为一名数据科学家,我已经研究这些数据几年了。
大家好,我是煎鱼。Go语言中有一个东西是比较有特色的,那就是time标准库,在各类与时间有关的场景都会常常用到,例如:定时/延迟任务、数据更新、时间比较。官方Demo是一个计算时间差的样例:复制import"time"funcmain(){start:=time.Now()time.Sleep(ti
随着允许低延迟、高速数据传输的5G的引入,以及各国政府的支持,AR和VR的应用正在飞速发展,持续新冠疫情导致的在线协作也间接地提高了这些设备的使用场景和频率。汽车在采用未来技术方面一直具有优势。事实证明,汽车的整个端到端流程(包括设计、生产、销售甚至营销)在未来都将受到AR和VR技术的显著影响。数据
大家好,我是君哥。今天来介绍一下RocketMQ5.0源码上的变化。RocketMQ5.0是一个里程碑式的版本,经历了近5年的打磨,代码变更达到60%。首先看一下源码中模块的变化,如下图:从图中可以看到,RocketMQ5.0主要增加了4个模块儿,下面介绍一下这4个模块儿。1、bazelbazel是
通过上一篇文章,我们对乔巴乐高海报平台的整体架构有了初步的了解。今天我们深入到编辑器部分,对其中的难点和实现细节进行分析。这是目前生产的编辑器页面:对应的原型图:不难看出和市面上大部分低代码平台一样,由三部分组成:左侧组件列表、中间画布区域、右侧属性区域。大致操作流程就是拖动左侧的组件到中间的画布,
日常工作中Map绝对是我们Java程序员高频使用的一种数据结构,从最早的Iterator,到java5支持的foreach,再到java8Lambda,你经常使用的是哪一种?通过entrySet来遍历1、通过for和map.entrySet()来遍历第一种方式是采用for和Map.Entry的形式来
概述毫无疑问,SpringCloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对SpringCloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈SpringCloud微服务架构的底层原理。实际上,SpringC
背景新上线一个批处理功能,基于Docker发布的。上线之后出现一个问题,Docker批处理生成的文件目录,别的应用程序无法访问。之前也在使用Docker,但并未涉及到文件共享的问题,还真没留意到。经过一系列排查,终于找到原因。这篇文章就记录一下排查过程中使用到的技术点,也帮大家重温一下。涉及的知识
译者|布加迪审校|孙淑娟互联网一直处于不断进化的状态。如果不关注Web开发的未来并做出相应的调整,互联网企业的经营者很难继续取得成功。三十多年前,大多数人还无法想象移动设备在互联网用户当中的接受程度。现在有多达43.2亿用户通过手机访问互联网,这使得众多开发人员和公司在搭建网站时把移动响应视为首要
什么是中间件?在服务端开发中,“中间件”是大家一定会听到的名词。初学者听起来觉得很高大上,觉得很难,其实“中间件”并不难,对我们学习Go语言来说,使用中间件也没有太多心智挑战。“中间件”它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不
出现故障时,我们经常需要获取一次请求流程里的所有日志进行定位。如果请求只在一个线程里处理,则我们可以通过线程ID来过滤日志,但如果请求包含异步线程的处理,那么光靠线程ID就显得捉襟见肘了。华为IoT平台,提供了接收设备上报数据的能力,当数据到达平台后,平台会进行一些复杂的业务逻辑处理,如数据存储,规
大家好,我是CUGGZ。今天来分享10个基于Vue3.0全家桶的优秀开源项目!PPTistPPTist是一个基于Vue3.x+TypeScript+Pinia+AntDesignVue+Canvas 的在线演示文稿(幻灯片)应用,还原了大部分OfficePowerPoint常用功能,实现在
spring参数解析器,让你的方法入参更优雅曾几何时,我们编程从原始时代进入石器时代,开始拥有使用工具的思想,于是大量的工具,util和脚手架开始像雨后春笋似的出现,spring字如其名,像春天一样,奠定了万物复苏的基石,于是基于spring的大量框架开始出现,如springMvc,springbo
小伙伴们好呀,最近在重新复习,整理自己的知识库,偶然看到这道面试题:三个线程按顺序打印ABCABC,尝试着做一下,才发现自己对线程还有好多地方不懂,蓝瘦……🐷思路很明显,这里就涉及线程间相互通信的知识了。而相互通信的难点就是要控制好,阻塞和唤醒的时机。一.这里就是A通知B,B通知C,C通知A二.三
对大多数人而言,今年的双十一可谓是无感而过。然而,这个「无感」正是今年支付宝技术团队的一个重要目标。随着「双十一」进入第14个年头,这一现象级的标志性活动在很大程度上已经融入国人的日常生活,因而显得不再那么特殊——打折促销天天有,满减秒杀是基操,消费者已经习惯了随时随地都能下单,同城快递隔天就到。但