代码改变世界

LVS+Keepalived 实现高可用负载均衡

2020-07-28 18:17 by Fururur, 16478 阅读, 7 推荐, 收藏, 编辑
摘要:前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡,当有服务出现异常,也能够自动剔除。但是负载均衡服务自身也可能出现故障,因此需要引入其他的软件来实现负载均衡服务 阅读全文

解决HttpServletRequest 流数据不可重复读

2020-07-07 13:54 by Fururur, 10379 阅读, 7 推荐, 收藏, 编辑
摘要:前言 在某些业务中可能会需要多次读取 HTTP 请求中的参数,比如说前置的 API 签名校验。这个时候我们可能会在拦截器或者过滤器中实现这个逻辑,但是尝试之后就会发现,如果在拦截器中通过 getInputStream() 读取过参数后,在 Controller 中就无法重复读取了,会抛出以下几种异常 阅读全文

一文搞定 Spring Data JPA

2020-07-07 13:52 by Fururur, 2551 阅读, 4 推荐, 收藏, 编辑
摘要:Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是 阅读全文

谈谈事务的隔离性及在开发中的应用

2020-07-07 13:50 by Fururur, 722 阅读, 0 推荐, 收藏, 编辑
摘要:前言 对于关系型数据库事务,之前的理解还比较浅显,基本还停留在面试宝典中长期背诵的那些以及最基本的操作上,比如一个事务可以执行一对 SQL,一旦遇到异常后会全部回滚,不会造成脏数据。这里体现的是事务的原子性、一致性和持久性。对于隔离性,在之前的开发中基本没有用到过,一直用的数据库默认的隔离级别,也就 阅读全文

JVM优先级线程池做任务队列

2020-02-21 11:12 by Fururur, 2462 阅读, 0 推荐, 收藏, 编辑
摘要:前言 我们都知道 web 服务的工作大多是接受 http 请求,并返回处理后的结果。服务器接受的每一个请求又可以看是一个任务。一般而言这些请求任务会根据请求的先后有序处理,如果请求任务的处理比较耗时,往往就需要排队了。而同时不同的任务直接可能会存在一些优先级的变化,这时候就需要引入任务队列并进行管理 阅读全文

聊聊 API 签名方式

2019-12-25 08:38 by Fururur, 6638 阅读, 5 推荐, 收藏, 编辑
摘要:前言 现在越来越多的公司以 API 的形式对外提供服务,这些 API 接口大多暴露在公网上,所以安全性就变的很重要了。最直接的风险如下: 非法使用 API 服务。(收费接口非法调用) 恶意攻击和破坏。(数据篡改、DOS) 因此需要设计一些接口安全保护的方式来增强接口安全,在运输层可添加 SSL 证书 阅读全文

Bug复盘:接口异步返回的重要性

2019-12-20 14:39 by Fururur, 1413 阅读, 2 推荐, 收藏, 编辑
摘要:前言 最近接收了一个老项目,突然甲方 QA 报了一个 bug,连续请求 60 次,成功 8 次,后面的 52 次全部失败,而且成功的 case 返回时间普遍较长。看了日志,并非业务上的异常。这让刚毕业没什么经验的我,顿时陷入了沉思。但回过神来考虑了一下,大胆才猜测,可能是网络问题或者是并发请求上的问 阅读全文

一个缓存使用的思考:Spring Cache VS Caffeine 原生 API

2019-12-09 13:35 by Fururur, 5321 阅读, 4 推荐, 收藏, 编辑
摘要:欢迎访问我的个人博客, "《一个缓存使用的思考:Spring Cache VS Caffeine 原生 API》" 最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API。那么是否 Spring 官方提供的 阅读全文

Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

2019-10-28 09:49 by Fururur, 4769 阅读, 2 推荐, 收藏, 编辑
摘要:本文首发于我的个人博客, "Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目" ,欢迎访问! 在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务。那么这篇文章我们 阅读全文

Docker Gitlab CI 部署 Spring Boot 项目

2019-09-25 09:40 by Fururur, 7837 阅读, 0 推荐, 收藏, 编辑
摘要:本文首发于我的个人博客, "Docker Gitlab CI 部署 Spring Boot 项目" ,欢迎访问! 目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程。 Docker 的安装这里就不赘述了,基本上几行 阅读全文

解决 Windows Docker 安装 Gitlab Volume 权限问题

2019-09-24 16:58 by Fururur, 3457 阅读, 0 推荐, 收藏, 编辑
摘要:本文首发于我的个人博客, "解决 Windows Docker 安装 Gitlab Volume 权限问题" ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤。 Caution: We do not officially support running on 阅读全文

Spring Cloud 负载均衡初体验

2019-09-24 13:53 by Fururur, 2596 阅读, 1 推荐, 收藏, 编辑
摘要:[toc] 本文首发于我的个人博客, "Spring Cloud 负载均衡初体验" ,欢迎访问! 使用 Spring Cloud Netflix 组件 Eureka 和 Ribbon 构建单注册中心的负载均衡服务。 Spring Cloud 是基于 Spring 的微服务技术栈,可以这么概括吧,里面 阅读全文

Spring Boot 部署浅析(jar or war)

2019-09-23 13:21 by Fururur, 1221 阅读, 0 推荐, 收藏, 编辑
摘要:对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来。而 Spring Boot 默认会内嵌一个 Tomcat,因此即便是 web 项目也可以直接打包成 jar 包,直接 j 阅读全文

Windows Docker 部署 Spring Boot 项目

2019-09-23 09:11 by Fururur, 3827 阅读, 2 推荐, 收藏, 编辑
摘要:[toc] 本文首发于我的个人博客, "Windows Docker 部署 Spring Boot 项目" ,欢迎访问! 使用 Docker 部署一个简单的 Spring Boot 数据库项目。 最近容器化技术 hin 流行啊,所以开始折腾一下呗。试用了下,有的时候的确比虚拟机要方便。其实起初是要用 阅读全文

谈谈适配器模式

2019-09-23 09:05 by Fururur, 444 阅读, 0 推荐, 收藏, 编辑
摘要:本文首发于我的个人博客, "谈谈适配器模式" ,欢迎访问! 适配器模式 (Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器 (Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 设计模式的目的本身应该 阅读全文