自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring Cloud Sleuth + Zipkin 历险记

前言经过近期的努力,已经为公司初步搭建起了一套基于 springcloud、docker、k8s、gitlab-ci 的微服务结构。虽然可以整条线跑起来了,但是还有很多支撑服务有待完善,今天主要讲一下我是如何通过 Spring Cloud Sleuth + Zipkin 来解决分布式链路跟踪问题的,以及过程中出现的问题。Spring Cloud Sleuth 简介Spring Cloud S...

2019-09-27 18:54:55 239

原创 设计模式:责任链模式

什么是责任链模式在一条流水线的链条上分布至多个处理节点(Handler),当请求源(RequestSource)流入这条流水线的链条,请求源中的数据顺着流水线的链条传递,直到有一个处理节点处理了它为止。使用场景很多框架如 mybatis、servlet 的 filter、dubbo、安全框架诸如 Spring security、apache shiro 都应用到了责任链模式。实现方式根据...

2019-09-26 09:28:09 75

原创 《k8s in action》 - 了解结构

介绍k8s 集群由两个部分组成:管理节点工作节点每个组成部分根据自身功能的需要,会有使用到不同的组件,下面我将对管理节点、工作节点所涉及的组件以及各组件的主要作用进行一下说明。管理节点:etcd布式存储数据库,作为 k8s 的中央数据库,保存了整个集群的状态。API 服务器资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制。调度器负责资源的调度,按...

2019-09-24 17:29:45 446

原创 谈谈 Redis 持久化

什么是 Redis 持久化Redis 是什么这里就不多介绍了,作为一款 NoSQL 数据库来说,Redis 的相关的所有数据操作都是基于内存的,如下图:基于内存有一个最大的问题就是,由于各种原因造成服务器的重启,那么内存中的数据就会消失。为了要解决这个问题,Redis 提供了对持久化的支持,我们可以通过 Redis 提供的2种不同的方式(RDB和AOF)将内存中的数据保存到硬盘中,以此实现数...

2019-09-24 16:01:13 208

原创 对 Synchronized 和 Lock 的简单理解

概念SynchronizedSynchronized 是Java 并发编程中很重要的关键字,另外一个很重要的是 volatile。Syncronized 的目的是一次只允许一个线程进入由他修饰的代码段,从而允许他们进行自我保护。进入由 Synchronized 保护的代码区首先需要获取 Synchronized 这把锁,其他线程想要进入相同代码区执行必须等待 Synchronized 锁被释放...

2019-09-23 11:03:06 95

原创 从0到1搭建 K8s+Docker+Gitlab-CI+SpringCloud 之 整体全貌

前言公司之前没有一个整体的系统架构,每个系统都是一个独立的存在,也就是所谓的信息孤岛。近期公司要上一个新的系统,我们最终的方案是采购第三方的产品以满足业务方的需求,对司内的老系统来说,最大的问题就是如何对接。经过一番考量,最终决定借此机会搭建一套完整的系统架构。为啥要采用 K8s+Docker+Gitlab-CI+SpringCloud 这个解决方案,由于不是本文的重点,这里就不展开了。让我们进...

2019-09-20 17:37:47 879

原创 GC (Allocation Failure) 日志分析

最近在做 SpringBoot 项目(我的项目最终是要被打成 docker image 的)调优的过程中,由于启动 Jar 的时候设置了XX:+PrintGCDetails 参数,所以在容器启动的过程中初夏了如下日志信息:[GC (Allocation Failure) [ParNew: 221714K->11707K(235968K), 0.0503991 secs] 246868K-...

2019-09-19 13:23:35 3603

原创 SpringBoot 项目调优

前言对于 SpringBoot 项目通常会选择默认配置,显然这不是一个最优的选择,今天偶然翻到一篇关于 《SpringBoot项目优化和Jvm调优》的文章,正好也有时间,何不如尝试下,看看效果如何呢?心动就要行动!!!如何调优在 SpringBoot 项目中,调优主要通过设置 application.yaml 文件和设置 JVM 的参数。在这边有一篇关于 SpringBoot 项目详细的配...

2019-09-18 10:51:42 285

原创 注解 @ConditionalOnProperty 介绍

spring boot 通过 @ConditionalOnProperty 来控制加了 @Configuration 注解的类中哪些 @Bean 可以被加载,如下图:该代码截图要表达的意思是,如果 application.yaml(如下图) 文件中存在 rest.auth-open=true,则 AuthFilter 将会被加载,否则将不会被加载。server: port:8080#...

2019-09-17 18:55:34 505

原创 注解 @ComponentScan 如何使用

在main方法对应的类上,加上@ComponentScan(value= {“com.cjl.controller”}),这个注解可以指向包路径,这样就可以启动了,如下图:controller类所在的包在 application 启动文件包下的子包,如下图,这样它启动后能直接找到,此时不需要@ComponentScan注解,如下图:...

2019-09-17 18:31:00 1527

原创 注解 @AutoConfigureBefore 和 @AutoConfigureAfter 的用途

介绍@AutoConfigureBefore 和 @AutoConfigureAfter 是 spring-boot-autoconfigure 包下的注解用途@AutoConfigureBefore(AAAA.class) 或 AutoConfigureBefore({AAAA.class, BBBB.class})@AutoConfigureBefore(AAAA.class)p...

2019-09-17 18:28:09 32615

原创 采用 try-with-resources 语法更加简洁方便的关闭资源

介绍说起释放资源,大家自然会想到 try-catch-finally 语法。JDK 1.7 新增了一个 AutoCloseable 接口,结合 try-with-resources 语法,提供了一种更加简洁方式来释放资源。比较try-catch-finally 方式try-with-resources 方式是不是很清爽!!哈哈哈哈!!!原因究其原因,FileInputStrea...

2019-09-17 18:18:50 101

原创 如何使用 lombok

2019-09-17 17:58:49 93

原创 用图来说明 IaaS、PaaS、SaaS 之间的区别

用两张网上找到的图来说明一下 IaaS、PaaS、SaaS 之间的区别图一图2

2019-09-17 17:57:43 346

原创 注解 @Slf4j 的使用

2019-09-17 17:51:39 835

原创 Gitlab CI/CD-【Maven 历险篇 - 2】

问题的场景描述最近刚把所有的微服务从 Jenkins 迁移到 Gitlab 上,又恰巧碰到集成测试高峰,各个微服务修复 Bug 后,频繁进行【提交->发布->测试】这个过程,本来还能愉快地进行操作,差不多下午16点左右,杯具发生了!!所有微服务在 Gitlab 上执行 Run Pipeline 发布的时候,全都报错,如下图:问题的排查过程提示信息很清晰“no space lef...

2019-09-12 17:53:29 419

原创 Gitlab CI/CD - 【Maven 篇】

本篇将会介绍 gitlab-ci.yml 中的 package 阶段,如下图:在这个阶段中,Gitlab Runner 实际上是启动了一个 Docker Container 来运行 package 阶段,上图中的 image: maven:3.5.4 说明该阶段是以 maven:3.5.4 作为基础镜像,每次构建都是一个全新的 Container,这样就会产生两个问题:每次构建都需要重新从...

2019-09-12 15:44:27 3841 2

原创 关于 Java 关键字 final 的理解

作用被修饰的类,不允许被继承被修饰的方法,不允许被重写(Override)被修饰的变量,不允许被修改使用场景1、匿名内部类在 JAVA 8 之前,如果在匿名内部类中要使用某外部变量,则该外部变量必须显示的声明为 final,否则会报错并提示“Cannot refer to a non-final variable arg inside an inner class defined ...

2019-09-12 10:12:00 91

原创 关于 spring-boot-maven-plugin 插件使用心得

作用SpringBoot 项目借由 spring-boot-maven-plugin 插件,通过 Maven 将项目打包成可执行的 JAR 或者 WAR 。安装方式方式一方式二

2019-09-10 14:14:01 5710

原创 Maven中 pluginmanagement 和 plugins 区别

pluginmanagementpluginmanagement 是插件的声明,即你在项目中的 pluginManagement 下声明了插件,Maven 不会加载该插件(只有在…中定义才会加载),pluginManagement 声明可以被继承。pluginManagement 一般是用来在 父POM 中定义,提供给 子POM 使用,子POM也可以覆盖这个定义,而且你在 父POM 中定义了版...

2019-09-10 13:27:04 1117 4

原创 数据库事务总结

2019-09-09 15:38:07 89

原创 持续集成、持续交付、持续部署 是啥

持续集成开发人员开发完成后,将最新代码合并到主干之上,进行持续交付持续部署

2019-09-09 13:49:36 349

原创 关于 maven-compiler-plugin 插件的使用心得

再认识 maven-compiler-plugin 插件maven 项目是通过 maven-compiler-plugin 插件来对 Java 代码编译的,如果不指定 JDK 版本,maven-compiler-plugin 会自动使用一个默认的版本,该版本可能与你使用的 IDE 所使用的 JDK 版本不一致,这种情况可能会导致代码无法通过 maven 的编译,例如:在 IDE 指定 JDK 1...

2019-09-06 19:25:01 31818 4

原创 Gitlab CI/CD-【Maven 历险篇 - 1】

Gitlab CI/CD maven 编译历险记最近一直致力于将 Jenkins 自动发布的工作前移至 Gitlab上,在进行这个工作的时候时常会出现一些预想不到情况,今天要讲的是其中的一次历险经历。问题的场景描述借助公司引入第三方CRM的契机,我们对公司内的系统进行了重新的规划,目标是搭建一个基于微服务的分布式系统。因此创建了很多微服务,例如:合同、客户、财务、订单、样本、员工等等,除了业...

2019-09-06 09:08:55 1324

采用Java SPI和Spring factories来实现插件化的demo

该项目主要用来演示通过 Java SPI 和 Spring factories 两种方式来实现插件化

2023-06-29

Spring Batch 参考文档

Spring Batch 参考文档

2022-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除