Yezhiwei Blog

平时多流汗,战时少流血!

Git Flow 工作流程

关于分支分类 主分支 master 分支,存储官方发布历史,始终都是稳定状态。 develop 分支,作为功能集成历史的分支。 辅助分支 feature 分支,一个功能特性的开发分支。 release 分支,进行测试发布。 hotfix 分支,快速修复 master 分支的 bug。 分支的生命周期 master 分支与 develop 分支与项目...

是时候将日志框架升级到Log4j2了

为什么要升级 现在维护的公司项目,在不同的时期使用了不同的日志框架,最早的 Log4j,前两年开始使用 Spring Boot ,日志使用了 Logback,最近看到一些介绍 Log4j2 的文章和官方的性能测试对比。所以计划在未来的新项目中使用 Log4j2,及旧项目的日志升级为 Log4j2 。在实践的过程中也遇到了一些问题,下面做一个简单的记录。 旧项目的日志使用的Log4...

Java应用程序读取外部配置文件

背景 当我们在服务器上安装一些软件服务时,如 MySQL、Kafka、ES 等,在启动服务的时候,脚本会读取默认路径下的配置文件,如果配置文件没有放到默认的路径下,我们也可以通过参数的方式指定,通过这个配置文件,可以灵活方便的开始某些功能或调整某些参数,不用重新对源码进行修改、编译和发布了。 所以,我们工作当中有时希望可以把配置文件放在程序外,这样的话就可以做到配置与业务分离,在...

ContiPerf轻量级的测试工具

ContiPerf 介绍 In order to assure software performance, software needs to be tested accordingly as early as possible - only weaknesses diagnosed early can be assessed quickly and cheaply. ContiPe...

SpringBoot-MapStruct自动合并多表查询结果

Mapstruct进行实体与模型之间的自动映射操作

背景 在我们开发的规范中,MySQL 数据库不使用多表查询,也就是 @OneToMany 、 @ManyToMany 这样的注解不会出现在我们的实体中。但在实际的工作中,返回给前端的 Model 数据往往来自多个表的数据拼装。 使用 Mapstruct 来进行实体与 Model 之间自动映射 MapStruct 是一个代码生成器的工具类,简化了不同的 Java Bean 之间映射的处理...

SpringBoot-JPA数据库操作

JPA 常用API CurdRepository 提供了增删改产方法。 PagingAndSortingRepositroy 增加分页查询和排序方法。 JpaRepositroy 增加了实例查询方法。 实际应用中可以有选择的继承上面任何一个接口都可以。 JPA 查询语句关键字 JPA 提供的查询方式可以直接从方法名中派生成查询(需要遵循它的规范),都需要以fin...

服务发现组件

服务注册中心

服务发现要解决的一个问题是: 解耦服务。 服务提供者、服务消费者、服务发现组件三者关系: 各微服务启动的时候,将自己的网络信息注册到服务发现组件中,服务发现组件会储存这些信息。 服务消费者可以通过服务发现组件中查询服务提供者的网络地址,并使用该网络地址调用服务。 各微服务与服务发现组件通过心跳机制通信,服务发现组件如长时间无法与某个服务实例通信,服务发现组件会注销该实...

微服务为什么要使用网关服务

在没有网关服务时,是怎么工作的 不同的微服务一般会有不同的网络地址,但 web 端或 APP 端需要调用多个服务的接口才能完成一个业务需求。在这种客户端直接与各个服务通信的架构时,会有以下问题: 客户端需要维护很多服务的请求地址; 客户端会多次请求不同的微服务,增加了客户端的复杂性; 存在跨域请求,处理相对复杂; 认证复杂,每个服务都需要独立认证; 随着项目的迭代,...

微服务简介

单体应用架构存在的问题 一个 war 包含所有功能的应用程序,通常称为单体应用。尽管在程序中进行了模块化,但若干业务模块被打包在一个 war 包中,这样的应用系统称为单体应用。 优点:容易部署、测试。可以快速实现需求。 缺点:随着需求的不断增加,开发团队的状大,代码库也在迅速增长, 此时单体应用变得越来越臃肿,可维护性、灵活性逐渐下降,维护成本高: 模块...

Scrapy安装与创建项目

Scrapy爬取静态页面数据

Scrapy 安装 pip install scrapy 以上会报超时错误,所以增加了国内镜像,如下 pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ scrapy 还是会有超时现象,不过重新试一次就自动地把所有相关的包安装成功,最后终端显示如下提示,说明安装成功: Installing collecte...