一个Restufl URI模式匹配以及替换Demo

使用场景 网关的路由编排,权限管理,URL白名单等场景下,都可能需要判断给定的URL是否符合匹配某个模式。 URI Template Patterns 模式匹配 Spring 提供了一个很好用的工具类:org.springframework.web.util.UriTemplate, Representation of a URI template that can be expanded wit … 继续阅读

Springboot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

Springboot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能 Micrometer Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,它提供了多种度量指标类型(Timers、Guauges、Counters等),同时支持接入不同的监控系统,例如 Influxdb、Graphite、Prometheus 等。我们可以通过 Mi … 继续阅读

Java Bean的转换工具MapStruct

MapStruct 对象转换框架 MapStruct 是一个对象转换框架,这类的对象转换框架有不少,比较有名的有 ModelMapper 和 MapStruct。ModelMapper是基于反射的,有性能损耗,而MapStruct基于编译阶段代码生成的,生成的转换代码在运行的时候跟一般的代码一样,没有额外的性能损失。 MapStruct 是一个可以处理注解的Java编译器插件,可以在命令行中使用, … 继续阅读

性能瓶颈分析

整理和总结一些常见的性能瓶颈分析思路和工具。 CPU分析 当程序响应变慢的时候,首先使用top、vmstat、ps等命令查看系统的cpu使用率是否有异常,从而可以判断出是否是cpu繁忙造成的性能问题。其中,主要通过us(用户进程所占的%)这个数据来看异常的进程信息。当us接近100%甚至更高时,可以确定是cpu繁忙造成的响应缓慢。一般说来,cpu繁忙的原因有以下几个: 线程中有无限空循环、无阻塞、 … 继续阅读

性能指标

系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request/事务 数量 (很多人经常会把并发数和TPS理解混淆) 并发数: 系统同时处理的request … 继续阅读

zuul动态网关

Zuul网关 Zuul 是Netflix 提供的一个开源组件,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。 gateway最终也会部署多个实例,达到分布式的效果。 动态路由 动态路由需要达到可持久化配置,动态刷新的效果。如架构图所示,不仅要能满足从spring的配置文件properties加载路由信息,还需要从数据库加载我们的配置。另外一点是,路由信息在容器启动时就已经加载进入 … 继续阅读