前言 字节码增强:指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。 为什么要进行字节码增强呢?字节码增强可以用在什么地方呢?如何对字节码进行增强?增强的手段都有哪些?一起来看看吧 做为JAVA开发,你应该无数次的听过一句话:一次编译,到处运行。没错,这是JAVA的优势,但你有没有想过这究竟是为什么呢?Why??? 是因 […]
前言 字节码增强:指的是在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 […]
点击上方蓝色字关注我们~ 01 阻塞I/O blocking i/o ①等待数据:需要等待数据拷贝进内核 ②需要等内核将数据复制到用户空间。 ◇优点:①能够及时返回数据,无延迟。②内核开发者省事。 ◇缺点:对用户来说处于等待就要付出性能的代价了 02 非阻塞I/O nonblocking i/o 用户进程需要不断的主动询问kernel数据好了没有。 用户进程发出read操作 […]
超实用的30多款idea插件,有百万级下载量的优秀插件,你值得拥有! 好的工具助你事半功倍,快速协助敲出更漂亮更有效率的代码。搬运工这里收集了很不错的IDEA插件,相信你一定会喜欢的。 〓必备插件列表: Grep Console :自定义控制台输出格式插件,下载量115W+,推荐指数:☆☆☆☆ FindBugs-IDEA :潜在Bug检查,下载量108W+,推荐指数:☆☆☆ […]
点击上方蓝色字关注我们~ 最近在网上看到别人提出了这个问题 : 现在从源码的角度简单剖析其原因。 我们知道,一般在配置注册中心eureka的地址类似这个: eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ 而访问eureka注册中心控制台页面管理则是:http://localho […]
点击上方蓝色字关注我们~ 我们经常会面临这样的问题,在确定某个topic下应该设置多少分区数,有时并不知道应该如何设置,如何评估等。或者别人问你当前kafka集群中,具体的业务topic中分区数是多少,是如何知道需要多少分区或怎么选择比较适合的分区数。 1 结合业务场景和非业务条件 那么我们应该如何选择合适的分区数呢? 具体的业务具体分析。 但是前期我们可以根据这些条件:实 […]
消息队列(MQ)的基本概念,很多时候都要了解清楚,这样在学消息队列中间件就比较能够游刃有余,遇到不清楚的也可以重新翻来看看,加深理解。这里有关于:优先级队列、延迟队列、死信队列、重试队列、消息回溯、消息堆积、消息追踪/消息轨迹、消息过滤、消息审计、消息路由等的介绍。 01 优先级队列 优先级队列不同于先进先出队列,优先级高的消息具备优先被消费的特权,这样可以为下游提供不同消 […]
点击上方蓝色字关注我们~ 01 问题背景 最近,在使用idea开发时业务系统时,发现idea上使用了@Autowired,发现竟然被警告了!提示:Field injection is not recommended,警告如下图: what?Field injection is not recommended. (不推荐使用属性注入) 这不是常规操作吗?我们在开发的时候经常使 […]
BeanUtils (1) BigDecimal (1) CDC (1) ETL (1) github (1) heap (1) LLaMa (1) MAT (5) MDM (1) Sora (1) TCP (1) 业务图 (1) 企业应用 (1) 停机迁移 (1) 内存泄露 (4) 协议 (1) 可用性 (1) 基础设施层 (1) 堆内存 (1) 堆外存 (1) 大事记 (1) 实时协作 (1) 对象转换 (1) 应用架构 (1) 异常 (3) 技术规范 (1) 技术选型 (4) 提示工程 (1) 数据交换 (1) 数据共享 (1) 数据双写 (1) 日期 (1) 时间 (1) 时间线 (1) 术语 (1) 架构方案 (14) 流程图 (1) 精度 (1) 线程模型 (1) 经验分享 (1) 网络编程 (2) 解耦 (1) 软件复杂性 (1) 软件工程 (1) 重构 (3) 重试 (1) 隔离级别 (1) 集群扩容 (1) 领域层 (3) 领域模型 (1)
COPYRIGHT © 2014-2024 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang