「 TEST 」 七月 17, 2022
ApacheBench 简介
文章字数 8.3k 阅读约需 8 mins.
ApacheBench 简称 ab
,是 Apache HTTP Server 中的一个性能测试工具,可单独安装,在命令行中直接使用,可基于 HTTP 接口对任意 HTTP 服务器进行性能测试,得到每秒请求数(RPS)、平均请求响应时间等性能指标。
Ubuntu/Debian
$ sudo apt-get update
$ sudo apt-get install -y apache2-utils
CentOS/Readhat/Fedora
$ yum install httpd-tools
MacOS...
查看全文「 SPRING 」 七月 10, 2022
【转】Spring 之 Interceptor
文章字数 5.3k 阅读约需 5 mins.
原文地址:https://wyiyi.github.io/amber/2022/07/01/interceptor/
什么是拦截器
在 Spring Web MVC 中,拦截器(Interceptor)同 Servlet 中的过滤器(Filter) 类似,都可以实现对用户的请求做出相应的处理。
所有 HandlerMapping
的实现都支持处理程序拦截器,当想将特定功能应用于某些请求时很有用 —— 例如检查权限。
拦截器必须实现 org.springframework.web.servlet
包中...
「 KAFKA 」 六月 19, 2022
Kafka 性能测试
文章字数 12k 阅读约需 11 mins.
在 Apache Kafka 安装目录的 bin
路径下,包括启停服务在内的很多脚本。这些脚本能够帮助我们完成对 Kafka 的各类操作,其中就有对生产者和消费者进行性能测试的工具。
脚本分为两个版本:Linux 下执行的 Shell 脚本,以及 Windows 下执行的 bat 脚本。
以 Shell 脚本为例,可以查看脚本内容,除了停止 ZooKeeper 和 Kafka 服务的脚本外,其余脚本均会在最后调用 kafka-run-class.sh
并根据使用脚本的不同,传入不同的类进行处理。...
「 KAFKA 」 六月 12, 2022
【译】深入了解 Apache Kafka 存储内部
文章字数 15k 阅读约需 13 mins.
英文原文:Deep dive into Apache Kafka storage internals: segments, rolling and retention
Apache Kafka 采用类似提交日志的方式处理消息的存储。消息一个接一个的追加在每个日志的末尾,每个日志也会被分成段。分段有助于删除较旧的消息记录及提高性能等。所以,日志是一个由段(文件)组成的消息记录的逻辑序列,每个段内存储的是一部分消息。消息代理(Broker)的配置允许您调整与日志相...
查看全文「 JAVA 」 五月 15, 2022
使用 Alibaba Druid 进行 SQL 翻译
文章字数 12k 阅读约需 11 mins.
Alibaba Druid 是阿里云计算平台 DataWorks 团队出品,为监控而生的数据库连接池。
Apache 旗下也有一个 Apache Druid,是一个高性能的实时分析数据库。
本文提到的 Druid
,指 Alibaba Druid
。
Druid
其实是一个 JDBC 组件库,不仅包含数据库连接池组件,还有 SQL Parser 等组件,被大量业务和技术产品使用或集成,从 GitHub 的 Start 数量(25.5k
),和 Used by
数量(206k
)可见一斑。
网上关于 ...
查看全文「 JAVA 」 四月 17, 2022
写测试用例都这么简单了,你不来试试?
文章字数 14k 阅读约需 13 mins.
提到测试,所有人都知道它的重要性,但大部分开发人员都会觉得测试应该交给测试人员来做,或者直接到环境上执行一下、点一点看看没有问题就可以了。
究其原因,个人觉得是因为写单元测试的成本太高了,尤其是对外部环境依赖较多的项目,开发环境想运行起来都要依赖特定的组件,就更别提测试用例的运行了。
一个好的测试用例,应该是自动化的、可重复执行的,容易理解、容易运行的,且有明确的断言,以便在代码出现不符合预期的结果时,能够快速发现且定位到问题的。
本文以一些面向 Java 和 Spring 的常见测试场景为例,...
查看全文「 JAVA 」 二月 13, 2022
覆盖 MyBatis Mapper 文件
文章字数 14k 阅读约需 12 mins.
在 通过 -Xbootclasspath/a 参数修改 Spring Boot 应用行为实例 的 场景2 中,我们通过 -Xbootclasspath/a
参数,对 Spring Boot 应用 JAR 包中的 Mapper 文件进行了覆盖,但美中不足的是需要将未修改的 Mapper 文件也重新附加进去。
本文将演示两种仅需将改动的 Mapper 文件覆盖进去的方式。
先让我们看一下,在使用 MyBatis 时,如果仅将修改了的 Mapper 文件(即非全部 Mapper 文件)添加到 bootclasspath...
「 JAVA 」 一月 23, 2022
通过 -Xbootclasspath/a 参数修改 Spring Boot 应用行为实例
文章字数 3.9k 阅读约需 4 mins.
在 Spring boot 应用不重新打包,添加新类 中简单介绍了 -Xbootclasspath/a
参数的用法,下面用两个实例来进行实际使用场景的说明。
bootclasspath 为本文使用的演示项目,可通过 mvn clean package -DskipTests
命令获得 Spring Boot 应用 JAR 包,并在项目根路径通过 java -jar app/target/app-0.0.1-SNAPSHOT.jar
命令启动应用,之后可访问 http://localhost:8080...