博客园 - Fururur
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=658068
2023-06-21T08:28:59Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
feed.cnblogs.com
https://www.cnblogs.com/Sinte-Beuve/p/13392747.html
LVS+Keepalived 实现高可用负载均衡 - Fururur
前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡,当有服务出现异常,也能够自动剔除。但是负载均衡服务自身也可能出现故障,因此需要引入其他的软件来实现负载均衡服务
2020-07-28T10:17:00Z
2020-07-28T10:17:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡,当有服务出现异常,也能够自动剔除。但是负载均衡服务自身也可能出现故障,因此需要引入其他的软件来实现负载均衡服务 <a href="https://www.cnblogs.com/Sinte-Beuve/p/13392747.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/13260249.html
解决HttpServletRequest 流数据不可重复读 - Fururur
前言 在某些业务中可能会需要多次读取 HTTP 请求中的参数,比如说前置的 API 签名校验。这个时候我们可能会在拦截器或者过滤器中实现这个逻辑,但是尝试之后就会发现,如果在拦截器中通过 getInputStream() 读取过参数后,在 Controller 中就无法重复读取了,会抛出以下几种异常
2020-07-07T05:54:00Z
2020-07-07T05:54:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 在某些业务中可能会需要多次读取 HTTP 请求中的参数,比如说前置的 API 签名校验。这个时候我们可能会在拦截器或者过滤器中实现这个逻辑,但是尝试之后就会发现,如果在拦截器中通过 getInputStream() 读取过参数后,在 Controller 中就无法重复读取了,会抛出以下几种异常 <a href="https://www.cnblogs.com/Sinte-Beuve/p/13260249.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/13260256.html
一文搞定 Spring Data JPA - Fururur
Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是
2020-07-07T05:52:00Z
2020-07-07T05:52:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是 <a href="https://www.cnblogs.com/Sinte-Beuve/p/13260256.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/13260254.html
谈谈事务的隔离性及在开发中的应用 - Fururur
前言 对于关系型数据库事务,之前的理解还比较浅显,基本还停留在面试宝典中长期背诵的那些以及最基本的操作上,比如一个事务可以执行一对 SQL,一旦遇到异常后会全部回滚,不会造成脏数据。这里体现的是事务的原子性、一致性和持久性。对于隔离性,在之前的开发中基本没有用到过,一直用的数据库默认的隔离级别,也就
2020-07-07T05:50:00Z
2020-07-07T05:50:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 对于关系型数据库事务,之前的理解还比较浅显,基本还停留在面试宝典中长期背诵的那些以及最基本的操作上,比如一个事务可以执行一对 SQL,一旦遇到异常后会全部回滚,不会造成脏数据。这里体现的是事务的原子性、一致性和持久性。对于隔离性,在之前的开发中基本没有用到过,一直用的数据库默认的隔离级别,也就 <a href="https://www.cnblogs.com/Sinte-Beuve/p/13260254.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/12340634.html
JVM优先级线程池做任务队列 - Fururur
前言 我们都知道 web 服务的工作大多是接受 http 请求,并返回处理后的结果。服务器接受的每一个请求又可以看是一个任务。一般而言这些请求任务会根据请求的先后有序处理,如果请求任务的处理比较耗时,往往就需要排队了。而同时不同的任务直接可能会存在一些优先级的变化,这时候就需要引入任务队列并进行管理
2020-02-21T03:12:00Z
2020-02-21T03:12:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 我们都知道 web 服务的工作大多是接受 http 请求,并返回处理后的结果。服务器接受的每一个请求又可以看是一个任务。一般而言这些请求任务会根据请求的先后有序处理,如果请求任务的处理比较耗时,往往就需要排队了。而同时不同的任务直接可能会存在一些优先级的变化,这时候就需要引入任务队列并进行管理 <a href="https://www.cnblogs.com/Sinte-Beuve/p/12340634.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/12093307.html
聊聊 API 签名方式 - Fururur
前言 现在越来越多的公司以 API 的形式对外提供服务,这些 API 接口大多暴露在公网上,所以安全性就变的很重要了。最直接的风险如下: 非法使用 API 服务。(收费接口非法调用) 恶意攻击和破坏。(数据篡改、DOS) 因此需要设计一些接口安全保护的方式来增强接口安全,在运输层可添加 SSL 证书
2019-12-25T00:38:00Z
2019-12-25T00:38:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 现在越来越多的公司以 API 的形式对外提供服务,这些 API 接口大多暴露在公网上,所以安全性就变的很重要了。最直接的风险如下: 非法使用 API 服务。(收费接口非法调用) 恶意攻击和破坏。(数据篡改、DOS) 因此需要设计一些接口安全保护的方式来增强接口安全,在运输层可添加 SSL 证书 <a href="https://www.cnblogs.com/Sinte-Beuve/p/12093307.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/12072969.html
Bug复盘:接口异步返回的重要性 - Fururur
前言 最近接收了一个老项目,突然甲方 QA 报了一个 bug,连续请求 60 次,成功 8 次,后面的 52 次全部失败,而且成功的 case 返回时间普遍较长。看了日志,并非业务上的异常。这让刚毕业没什么经验的我,顿时陷入了沉思。但回过神来考虑了一下,大胆才猜测,可能是网络问题或者是并发请求上的问
2019-12-20T06:39:00Z
2019-12-20T06:39:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】前言 最近接收了一个老项目,突然甲方 QA 报了一个 bug,连续请求 60 次,成功 8 次,后面的 52 次全部失败,而且成功的 case 返回时间普遍较长。看了日志,并非业务上的异常。这让刚毕业没什么经验的我,顿时陷入了沉思。但回过神来考虑了一下,大胆才猜测,可能是网络问题或者是并发请求上的问 <a href="https://www.cnblogs.com/Sinte-Beuve/p/12072969.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/12009885.html
一个缓存使用的思考:Spring Cache VS Caffeine 原生 API - Fururur
欢迎访问我的个人博客, "《一个缓存使用的思考:Spring Cache VS Caffeine 原生 API》" 最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API。那么是否 Spring 官方提供的
2019-12-09T05:35:00Z
2019-12-09T05:35:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】欢迎访问我的个人博客, "《一个缓存使用的思考:Spring Cache VS Caffeine 原生 API》" 最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API。那么是否 Spring 官方提供的 <a href="https://www.cnblogs.com/Sinte-Beuve/p/12009885.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11739196.html
Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目 - Fururur
本文首发于我的个人博客, "Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目" ,欢迎访问! 在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务。那么这篇文章我们
2019-10-28T01:49:00Z
2019-10-28T01:49:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】本文首发于我的个人博客, "Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目" ,欢迎访问! 在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务。那么这篇文章我们 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11739196.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11582511.html
Docker Gitlab CI 部署 Spring Boot 项目 - Fururur
本文首发于我的个人博客, "Docker Gitlab CI 部署 Spring Boot 项目" ,欢迎访问! 目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程。 Docker 的安装这里就不赘述了,基本上几行
2019-09-25T01:40:00Z
2019-09-25T01:40:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】本文首发于我的个人博客, "Docker Gitlab CI 部署 Spring Boot 项目" ,欢迎访问! 目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程。 Docker 的安装这里就不赘述了,基本上几行 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11582511.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11569838.html
解决 Windows Docker 安装 Gitlab Volume 权限问题 - Fururur
本文首发于我的个人博客, "解决 Windows Docker 安装 Gitlab Volume 权限问题" ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤。 Caution: We do not officially support running on
2019-09-24T08:58:00Z
2019-09-24T08:58:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】本文首发于我的个人博客, "解决 Windows Docker 安装 Gitlab Volume 权限问题" ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤。 Caution: We do not officially support running on <a href="https://www.cnblogs.com/Sinte-Beuve/p/11569838.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11569789.html
Spring Cloud 负载均衡初体验 - Fururur
[toc] 本文首发于我的个人博客, "Spring Cloud 负载均衡初体验" ,欢迎访问! 使用 Spring Cloud Netflix 组件 Eureka 和 Ribbon 构建单注册中心的负载均衡服务。 Spring Cloud 是基于 Spring 的微服务技术栈,可以这么概括吧,里面
2019-09-24T05:53:00Z
2019-09-24T05:53:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】[toc] 本文首发于我的个人博客, "Spring Cloud 负载均衡初体验" ,欢迎访问! 使用 Spring Cloud Netflix 组件 Eureka 和 Ribbon 构建单注册中心的负载均衡服务。 Spring Cloud 是基于 Spring 的微服务技术栈,可以这么概括吧,里面 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11569789.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11569912.html
Spring Boot 部署浅析(jar or war) - Fururur
对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来。而 Spring Boot 默认会内嵌一个 Tomcat,因此即便是 web 项目也可以直接打包成 jar 包,直接 j
2019-09-23T05:21:00Z
2019-09-23T05:21:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来。而 Spring Boot 默认会内嵌一个 Tomcat,因此即便是 web 项目也可以直接打包成 jar 包,直接 j <a href="https://www.cnblogs.com/Sinte-Beuve/p/11569912.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11569741.html
Windows Docker 部署 Spring Boot 项目 - Fururur
[toc] 本文首发于我的个人博客, "Windows Docker 部署 Spring Boot 项目" ,欢迎访问! 使用 Docker 部署一个简单的 Spring Boot 数据库项目。 最近容器化技术 hin 流行啊,所以开始折腾一下呗。试用了下,有的时候的确比虚拟机要方便。其实起初是要用
2019-09-23T01:11:00Z
2019-09-23T01:11:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】[toc] 本文首发于我的个人博客, "Windows Docker 部署 Spring Boot 项目" ,欢迎访问! 使用 Docker 部署一个简单的 Spring Boot 数据库项目。 最近容器化技术 hin 流行啊,所以开始折腾一下呗。试用了下,有的时候的确比虚拟机要方便。其实起初是要用 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11569741.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11569821.html
谈谈适配器模式 - Fururur
本文首发于我的个人博客, "谈谈适配器模式" ,欢迎访问! 适配器模式 (Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器 (Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 设计模式的目的本身应该
2019-09-23T01:05:00Z
2019-09-23T01:05:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】本文首发于我的个人博客, "谈谈适配器模式" ,欢迎访问! 适配器模式 (Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器 (Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 设计模式的目的本身应该 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11569821.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/11568579.html
Bean 装配:从 Spring 到 Spring Boot - Fururur
[TOC] 本文首发于我的个人博客, "Bean装配,从Spring到Spring Boot" ,欢迎访问! 本文旨在厘清从Spring 到Spring Boot过程中,Bean装配的过程。 自从用上Spring Boot,真的是一直用一直爽,已经完全无法直视之前Spring的代码了。 约定大于配置
2019-09-23T00:38:00Z
2019-09-23T00:38:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】[TOC] 本文首发于我的个人博客, "Bean装配,从Spring到Spring Boot" ,欢迎访问! 本文旨在厘清从Spring 到Spring Boot过程中,Bean装配的过程。 自从用上Spring Boot,真的是一直用一直爽,已经完全无法直视之前Spring的代码了。 约定大于配置 <a href="https://www.cnblogs.com/Sinte-Beuve/p/11568579.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/9618877.html
[2019校招] - Java多线程面试题总结 - Fururur
1. Object 的 和`notify()` 方法 下图为线程状态的图: Object 对象中的 和`notify() notify()` 方法唤醒并继续执行,而阻塞状态的线程则是等待获取新的锁。 调用 方法后,当前线程会进入等待状态,直到其他线程调用 或`notifyAll()` 来唤醒。 调用
2018-09-10T05:46:00Z
2018-09-10T05:46:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】1. Object 的 和`notify()` 方法 下图为线程状态的图: Object 对象中的 和`notify() notify()` 方法唤醒并继续执行,而阻塞状态的线程则是等待获取新的锁。 调用 方法后,当前线程会进入等待状态,直到其他线程调用 或`notifyAll()` 来唤醒。 调用 <a href="https://www.cnblogs.com/Sinte-Beuve/p/9618877.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/9216525.html
[译]Kubernetes 分布式应用部署和人脸识别 app 实例 - Fururur
原文地址: "KUBERNETES DISTRIBUTED APPLICATION DEPLOYMENT WITH SAMPLE FACE RECOGNITION APP" 原文作者: "skarlso" 译文出自: "掘金翻译计划" 好的,伙计,让我们静下心来。下面将会是一个漫长但充满希望和有趣的
2018-06-23T02:35:00Z
2018-06-23T02:35:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】原文地址: "KUBERNETES DISTRIBUTED APPLICATION DEPLOYMENT WITH SAMPLE FACE RECOGNITION APP" 原文作者: "skarlso" 译文出自: "掘金翻译计划" 好的,伙计,让我们静下心来。下面将会是一个漫长但充满希望和有趣的 <a href="https://www.cnblogs.com/Sinte-Beuve/p/9216525.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/9190495.html
[译]通往 Java 函数式编程的捷径 - Fururur
原文地址: "An easier path to functional programming in Java" 原文作者: "Venkat Subramaniam" 译文出自: "掘金翻译计划" 以声明式的思想在你的 Java 程序中使用函数式编程技术 Java™ 开发人员习惯于面向命令式和面向对
2018-06-19T01:08:00Z
2018-06-19T01:08:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】原文地址: "An easier path to functional programming in Java" 原文作者: "Venkat Subramaniam" 译文出自: "掘金翻译计划" 以声明式的思想在你的 Java 程序中使用函数式编程技术 Java™ 开发人员习惯于面向命令式和面向对 <a href="https://www.cnblogs.com/Sinte-Beuve/p/9190495.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Sinte-Beuve/p/9195018.html
Git push 时如何避免出现 "Merge branch 'master' of ..." - Fururur
在使用 Git 的进行代码版本控制的时候,往往会发现在 log 中出现 "Merge branch 'master' of ..." 这句话,如下图所示。日志中记录的一般为开发过程中对代码的改动信息,如果出现过多例如上述描述的信息会造成日志的污染。 阅读了一些外文的博客,下面就来一探究竟。 产生原因
2018-06-19T00:06:00Z
2018-06-19T00:06:00Z
Fururur
https://www.cnblogs.com/Sinte-Beuve/
【摘要】在使用 Git 的进行代码版本控制的时候,往往会发现在 log 中出现 "Merge branch 'master' of ..." 这句话,如下图所示。日志中记录的一般为开发过程中对代码的改动信息,如果出现过多例如上述描述的信息会造成日志的污染。 阅读了一些外文的博客,下面就来一探究竟。 产生原因 <a href="https://www.cnblogs.com/Sinte-Beuve/p/9195018.html" target="_blank">阅读全文</a>