阿里妹导读 本文主要针对Spring为什么要支持@Resource和@Autowired两个类似的注解做出了解答。 提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,很多文章只是讲解了功能上的区别,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然。不知大家在使用这两个注解的时候有没有想过,@Resource […]
阿里妹导读 本文主要针对Spring为什么要支持@Resource和@Autowired两个类似的注解做出了解答。 提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,很多文章只是讲解了功能上的区别,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然。不知大家在使用这两个注解的时候有没有想过,@Resource […]
一、背景 针对老项目,去年做了许多降本增效的事情,其中发现最多的就是接口耗时过长的问题,就集中搞了一次接口性能优化。本文将给小伙伴们分享一下接口优化的通用方案。 二、接口优化方案总结 1.批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。 //for循环单笔入库 list.stream() […]
Tech 导读 Redis是一个开源的内存中的数据结构存储系统,在实际的开发过程中,Redis已经成为不可或缺的组件之一,基于内存实现、合理的数据结构、合理的数据编码、合理的线程模型等特征不仅仅让Redis变得如此之快,同时也造就了Redis对更多或者复杂的场景的支持。 01 Redis的发家史 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单 […]
在字节码增强解密(上)的章节中,给大家介绍了字节码的基本结构、主流的字节码增强构架、以及各个架构的优缺点和应用建议。在本章节中,将从字节码的重载、JavaAgent、Dynamic Attach、以及对在线Debug的高级应用展开分析,给大家详细分解下字节码增强的实际应用。让你真正体会下字节码增强技术带来的丝般顺滑体验。 一、字节码的重载 在上一章节中,我们介绍了使用ASM […]
前言 字节码增强:指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。 为什么要进行字节码增强呢?字节码增强可以用在什么地方呢?如何对字节码进行增强?增强的手段都有哪些?一起来看看吧 做为JAVA开发,你应该无数次的听过一句话:一次编译,到处运行。没错,这是JAVA的优势,但你有没有想过这究竟是为什么呢?Why??? 是因 […]
一、文章摘要 应用安全一直是一个非常重要的课题,2021年12月7日Log4j2爆出核弹级漏洞,Log4j2作为一款优秀的日志框架,其高使用率加上此漏洞利用难度低,导致企业安全风险剧增。那么猪八戒网是如何应对此类漏洞的呢? 此文主要讲述猪八戒在Java组件安全方面实施的防护措施,如何阻断存在安全漏洞的Java应用上线,在出现类似Log4j2这样的漏洞后如何及时发现哪些应用存 […]
背景 监控是服务端应用需要具备的一个非常重要的能力,通过监控可以直观的看到核心业务指标、服务运行质量等,而要做到可监控就需要进行相应的监控埋点。大家在埋点过程中经常会编写大量重复代码,虽能实现基本功能,但耗时耗力,不够优雅。根据“DRY(Don't Repeat Yourself)"原则,这是代码中的“坏味道”,对有代码洁癖的人来讲,这种重复是不可接受的。 那有什么方法解决 […]
01 背景 购物车面临的挑战: 1)新业务:随着业务形态的丰富,购物车在不断支持各种新业务,依赖的外部接口也随之增加; 2)下沉:一些前端调用的接口下沉到购物车中台; 3)前置:结算流程很多业务前置到购物车中,如优惠券、京豆; 4)扩容:为改善用户体验购物车可容纳的商品数量在不断增长; 这些导致购物车依赖的RPC接口数量及分页调用次数都在不断增加。购物车作为交易流程开端,本 […]
Netty是JVM中最著名、使用最广泛的异步网络应用程序框架之一。这个视频将向你展示Netty本身是如何工作的,并解释为什么会做出一些设计选择。除此之外,它还将包括关于Netty社区在开发过程中所面临的许多jvm相关的挑战,并解释采取了什么行动来解决这些问题等等。 《Netty - One Framework to rule them […]
B站视频地址:https://www.bilibili.com/video/BV1ia411X7SW (点击‘阅读原文’直达) 垃圾收集在很大程度上消除了在编写Java代码时考虑内存管理的需要,但是理解和最小化应用程序的内存使用仍然有好处,特别是随着在嵌入式设备上部署Java的数量不断增加 […]
一 相关概念 影子,我们都知道是什么意思,百度百科:物体挡住光线后,映在地面或其他物体上的形象。如果用在我们技术领域,比如数据方面,可以理解成是数据的一份拷贝,也就是“原封不动”的进行复制。那么把“影子”用在全链路压测是怎样的呢? 影子库:实际中使用的数据库的完整数据库数据拷贝,比如进行压测数据隔离的影子数据库,与生产数据库应当使用相同的配置。 影子表:是实际 […]
腾讯面试官:说说Redis的哈希表是如何扩容的? 面试者:what?额......,(我懵了!)这个我还没了解过,尬...。但我了解java里面的HashMap的扩容,我觉得应该有相通的一些原理在里面吧,然后我就把HashMap的扩容机制balabla的说了一遍...... Redis中使用哈希表作为底层实现的是叫做字典的数据结构,字典又称为符号表、关联数组或映射(map) […]
I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。 01 select int select (int n, fd_set *readfds, fd_set  […]
遇到了一个奇怪的问题,使用tomcat启动项目,从标准输出日志看,似乎很正常,但是访问却失败了! 如下图: ......(省略N多日志) Jun 04, 2018 12:42:27 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deployment of web application archive / […]
点击上方蓝色字关注我们~ 01 阻塞I/O blocking i/o ①等待数据:需要等待数据拷贝进内核 ②需要等内核将数据复制到用户空间。 ◇优点:①能够及时返回数据,无延迟。②内核开发者省事。 ◇缺点:对用户来说处于等待就要付出性能的代价了 02 非阻塞I/O nonblocking i/o 用户进程需要不断的主动询问kernel数据好了没有。 用户进程发 […]
COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang