![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构工具
夜雨落花
这个作者很懒,什么都没留下…
展开
-
log4j:log4j1.x升级log4j2.x及异步日志开启
由于log4j1.x采用同步的方式打印log,当项目中打印log的地方很多的时候,频繁的加锁拆锁会导致性能的明显下降。log4j推出了异步logging的方式,所以项目准备升级log4j2.x。 备注:项目使用maven管理第三方类库,所以jar包的替换是通过更改maven配置的方式进行更改的。 官方文档链接:https://logging.apache.org/log...原创 2018-11-01 18:26:38 · 6307 阅读 · 0 评论 -
maven:pom文件详解
一、maven项目的目录结构 pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下。 maven的遵循约定大于配置,约定了如下的目录结构:目录 目的 ${basedir} 存放pom.xml和所有的子目录 ${basedir}/src/main/java 项目的java源代码 ${basedir}/sr...原创 2019-06-15 16:59:29 · 51627 阅读 · 15 评论 -
git:git修改项目的远程url
需要复制一个gitlab的base项目,但由于一些原因复制操作难以实现,所以通过 git clone base项目 ----> git remote 修改远程url ----> git push到目标项目 的方式实现复制过程。git clone和git push不必多说,git remote修改远程url的过程记录如下。1、git 命令修改 推荐使用git rem...原创 2019-05-06 16:17:00 · 4126 阅读 · 0 评论 -
git:GitLab代码回滚到特定版本——本地+远程
在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本。步骤如下:1、查找commitId首先用命令行打开git项目路径,输入git log命令查看commit记录,如下:$ git log找到commitId是9a0d02d1578ea064479296ad7efa70c5cb1a3717记录,这是执行上面命令后打印出来的信息:com...原创 2018-10-11 19:50:04 · 31654 阅读 · 6 评论 -
resilience4j:CircuitBreaker的主要API
resilience4j是github推出的一款弹性架构工具,其中有一项很好用的功能:熔断。 官方文档:resilience4j一、服务安装 服务要求JDK版本为JDK 1.8及以上。maven应用安装resilience4j-circuitBreaker服务:<dependency> <groupId>io.github.re...原创 2019-06-14 14:35:24 · 1119 阅读 · 0 评论 -
resilience4j:熔断器核心配置详解
Resilience4j提供了熔断、高频控制、隔离、限流、限时、重试等多种高可用机制。这里我们看一下熔断机制,通过熔断器配置来理解熔断机制。一、概述1、定制化熔断器配置 官网提供的定制化熔断器配置的模板:// Create a custom configuration for a CircuitBreakerCircuitBreakerConfig circuit...原创 2019-04-24 16:48:38 · 2925 阅读 · 0 评论 -
Redis:分布式锁
Redis分布式锁本质上是在Redis中占一个“坑”,当其他进程也要来占坑的时候,如果有其他进程来占坑,就放弃或者稍后重试。1、基本实现 “占坑”的基本操作是使用setnx(set if not exists)指令,保证只有第一个客户端能占到;使用完再用del指令释放“坑”。当然,为了避免客户端执行的中间出现异常挂掉,还应该增加过期机制,让锁可以超时自动释放。例如:&g...原创 2019-07-03 23:13:32 · 143 阅读 · 0 评论 -
toxiproxy:实战:toxiproxy-java安装试用
一、简介 toxiproxy是一款用于模拟网络环境的框架,可以模拟定制化的或是随机的网络连接。我们通常在测试环境或者开发环境使用它来检测应用是否存在单点故障。 toxiproxy包含两个部分,一部分是用Go写的TCP代理(项目地址:toxiproxy),一部分是基于HTTP协议的客户端。在使用的时候,需要配置待测试的连接通过toxiproxy实现。 二、安装1、客户...原创 2019-05-23 11:02:35 · 970 阅读 · 0 评论 -
log4j:log4j2日志备份日期错误
问题描述: 最近项目上发现线上服务的日志备份出现了问题:有一台机器上7号的备份文件里面写的是8号的日志,8号的备份文件里面写的是9号的日志。。。其他机器上的日志正常。日志的备份相关的配置如下:appender.R.type=RollingFileappender.R.name=Rappender.R.fileName=/home/servlets/logs/dialogue.l...原创 2019-05-14 18:22:53 · 3010 阅读 · 0 评论 -
log4j:log4j2配置文件解析
本文主要对如下配置文件进行解析:status=infoname=PropertiesConfigrootLogger.level=inforootLogger.appenderRef.stdout.ref=STDOUTrootLogger.appenderRef.rolling.ref=RollingFileappender.stdout.type=Consoleap...原创 2018-11-13 10:28:28 · 12178 阅读 · 1 评论 -
nginx:工作原理
一遍很全面的介绍Nginx工作原理的文章,传送门:Nginx工作原理(侵删)转载 2018-11-26 18:09:29 · 197 阅读 · 0 评论 -
实战:micrometer+prometheus+grafana搭建Java程序的监控系统
近期项目需要引入监控系统,一番折腾后搭建成功。这里总结一下搭建的过程。本文旨在引导整合并打通整个监控系统各个环节,适合新手及需求急切的开发者快速搭建监控系统的基础。1、MicroMeter 官网:micrometer micrometer号称监控界的SLF4J,主要用来以极低极低的消耗来给Java程序提供对指标的监控。 micrometer支持接入多种数据...原创 2019-01-03 11:29:43 · 15157 阅读 · 1 评论 -
micrometer:重点总结
micrometer号称监控界的SLF4J,以极低的开销为基于JVM的程序收集监控指标。1、注册表Registry: Meter是用来收集应用的测量指标的接口。micrometer通过MeterRegistry创建和保存Meter,每个监控系统都会有MeterRegistry的实现。SimpleMeterRegistry: SimpleMeterRegistry...原创 2019-02-25 20:25:33 · 7498 阅读 · 0 评论 -
jetty+guice:添加servlet失败:javax.servlet.ServletException: Servlets must be bound as singletons
1、问题描述 项目使用Jetty作为Servlet容器,使用Google的guice作为依赖注入的工具。在添加自定义Servlet的时候出错,异常信息如下:javax.servlet.ServletException: Servlets must be bound as singletons. Key[type=com.mobvoi.be.utils.PrometheusMeter...原创 2019-01-16 19:54:50 · 472 阅读 · 0 评论 -
prometheus:要点总结
1、简介 Prometheus是一款开源的监控和告警工具,用于时序数据的存储和查询。Prometheus适用于统计相关的指标,但不适合记录复杂的细节信息。1、主要特征多维的数据模型;灵活的查询语言;不依赖分布式存储,单个服务器节点是自主的;基于HTTP的数据拉取;通过中间网关推送数据;通过静态配置和服务发现监控目标;多样化的数据界面。2、重要组件P...原创 2019-02-01 17:53:09 · 6096 阅读 · 0 评论 -
log4j:踩坑记录:log4j2异步日志无法打印%L %M等位置信息
问题描述: 最近项目想打印更详细的日志信息,包括打印日志的位置和方法。在log4j2的配置文件中为格式添加%L和%M后,发现并不能打印出行号和方法名。 不了解log4j2配置文件请参考log4j2配置文件解析。问题分析: 一通乱七八糟的操作后,毫无用处,还是乖乖的去看官方文档吧。由于配置文件使用的是PatternLayout,所以在官网找到PatternLayou...原创 2019-02-19 10:08:54 · 9605 阅读 · 0 评论 -
log4j:运行时间极短的应用调用System.exit导致Log4j日志无法打印
最近在写代码的时候,写了一个奇怪的问题。我写了一个主函数,测试刚写一个方法,其中调用了Log4j的API去打印log,但是log打印不出来,检查配置文件也没有问题。代码如下:public static void main(String[] args) { Logger logger = LogManager.getLogger(“MAIN”); String url ...原创 2019-02-26 20:19:30 · 412 阅读 · 0 评论