自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 收藏
  • 关注

原创 SpringCloud alibaba实战系列文章汇总

个人感觉这是全网比较齐全,写的比较好的SpringCloud alibaba系列教程了,推荐给大家!SpringCloud Alibaba微服务实战一 - 基础环境准备SpringCloud Alibaba微服务实战二 - 服务注册SpringCloud Alibaba微服务实战三 - 服务调用SpringCloud Alibaba微服务实战四 - 版本管理SpringCloud Alibaba微服务实战五 - 限流熔断SpringCloud Alibaba微服务实战六 - 配置隔离Sprin

2021-05-20 09:13:50 2626 14

原创 微服务上云后本地如何联调?

大家好,我是飘渺!今天给大家带来云原生实战系列的第三十五篇,微服务上云后本地如何联调?当我们将微服务上云以后在开发过程中会遇到这样的场景:生产者服务部署到了云上,消费者服务还处于开发阶段,现在开发人员想在本地启动消费者服务调用云上生产者服务进行接口调试,很显然由于生产者和消费者处于不同的网络区间无法互相访问,在应用层的表现就是:会出现服务调用超时的异常,如下所示此时为了联调不得不将本地服务也部署到...

2023-01-15 08:32:20 531

原创 聊聊分库分表后非Sharding Key查询的三种方案~(建议收藏)

大家好呀,我是飘渺!通过上篇文章我们知道了一个结论:那就是对于toC的业务来说,需要选择用户属性如 user_id 作为分片键。那问题来了,对于订单表来说,选择了user_id作为分片键以后如何查看订单详情呢?比如下面这样一条SQL:SELECT*FROMT_ORDERWHEREorder_id=801462878019256325由于查询条件中的order_id不是分片键,所以需要...

2022-12-01 08:32:39 265

原创 SpringBoot中如何实现业务校验,这种方式才叫优雅!

大家好,我是飘渺。在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验:参数校验业务规则校验首先我们先看看参数校验。参数校验参数校验很好理解,比如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。而实现参数校验也非常简单,我们只需要使用Bean Validation校验框架即可,借助它提供的校验注解我们可以非常方便的完成参数校验。常...

2022-11-30 08:31:11 168

原创 Kubernetes云原生实战03 搭建高可用负载均衡器(Keepalived 和 HAproxy)

今天咱们继续更新系列,本节文章主要是基于Keepalived 和 HAproxy实现负载均衡器的高可用。上图是我们的部署架构,包含三个主节点,三个工作节点,两个用于负载均衡的节点,以及一个虚拟 IP 地址,虚拟 IP 地址也可称为“浮动 IP 地址”。这意味着在节点故障的情况下,该 IP 地址可在节点之间漂移,从而实现高可用。

2022-11-21 10:49:25 243

原创 Kubernetes云原生实战02 对节点磁盘进行分区挂载

今天咱们继续更新系列,如何基于上篇文章中提到的部署架构进行磁盘分区、格式化、挂载目录。

2022-11-21 10:41:14 939

原创 Kubernetes云原生实战01 Kubernetes高可用部署架构

Kubernetes中组件众多,要完全介绍清楚估计要写上厚厚一本书,我们实战系列主要记住几个核心组件就行,即两种节点,三种IP,四种资源。

2022-11-21 10:28:56 469

原创 Kubernetes云原生实战00 何为云原生?

新系列,何为云原生?

2022-11-21 10:16:02 142

原创 史上最详细的docker学习手册,请收藏!

大家好,我是飘渺,今天我们来学习一下Docker!一、docker入门docker的安装及入门示例环境准备:docker需要安装在centos7 64位系统上;docker要求系统内核在3.10以上查看系统内核:uname-r安装命令:yum-yinstalldocker-io安装完成后,启动命令servicedockerstart安装nginx体验dockerrun-p80:8...

2022-08-19 08:32:18 362

原创 数据权限就该这么实现(实践篇),yyds!

我的知识星球正式上线了(戳链接),期待你的加入,我们一起冲冲冲!大家好,在上一篇文章中我们详细介绍了在RBAC模型中如何集成数据权限,本篇文章我们将通过实际案例,从代码实战的角度来实现这样的一个数据权限。在开始阅读本文之前,建议先把上篇文章 读一遍,读一遍,读一遍!数据权限就该这么设计,yyds!数据权限模型上篇文章的数据模型是基于传统的RBAC模型来设计的,由于我们这里...

2022-08-04 08:32:25 748

原创 数据权限就该这么设计,yyyds!

我的知识星球正式上线了(戳链接),期待你的加入,我们一起冲冲冲!大家好,我是飘渺!在项目实际开发中我们不光要控制一个用户能访问哪些资源,还需要控制用户只能访问资源中的某部分数据。控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC,但是控制用户只能访问某部分资源(即我们常说的数据权限)使用RBAC模型是不够的,本文我们尝试在RBAC模型的基础上融入数据权限的管理...

2022-07-25 08:32:48 592

原创 Kubernetes云原生实战06 使用Rook搭建Ceph集群

使用Rook搭建Ceph集群

2022-07-22 08:32:06 1309 2

原创 Oauth2协议中如何对accessToken进行校验

大家好,我是飘渺。今天我们来聊聊oauth2.0的accesstoken校验逻辑。概述本文来自球友Never Sett* 的提问看完这个问题,我感觉读者对于accesstoken的校验逻辑不太清楚,所以特意写了这篇文章解释一下。首先我们要知道Oauth2是一个授权协议,客户端访问某个被保护的资源之前,需要先通过认证服务器获取accesstoken,而后通过在请求头上带上a......

2022-07-04 08:37:52 2177

原创 面试拆解:系统上线后Cpu使用率飙升如何排查?

大家好,我是飘渺。上次面试官问了个问题:应用上线后Cpu使用率飙升如何排查?其实这是个很常见的问题,也非常简单,那既然如此我为什么还要写呢?因为上次回答的时候我忘记将线程PID转换成16进制的命令了。所以我决定再重温一遍这个问题,当然贴心的我还给大家准备好了测试代码,大家可以实际操作一下,这样下次就不会忘记了。模拟一个高CPU场景publicclassHighCpuT...

2022-07-01 08:32:14 430

原创 Java 结构化数据处理开源库 SPL使用手册

现代Java应用架构越来越强调数据存储和处理分离,以获得更好的可维护性、可扩展性以及可移植性,比如火热的微服务就是一种典型。这种架构通常要求业务逻辑要在Java程序中实现,而不是像传统应用架构中放在数据库中。应用中的业务逻辑大都会涉及结构化数据处理。数据库(SQL)中对这类任务有较丰富的支持,可以相对简易地实现业务逻辑。但Java却一直缺乏这类基础支持,导致用Java实现业务逻辑非常繁琐低效。结果,虽然架构上有各种优势,但开发效率却反而大幅下降了。如果我们在Java中也提供有一套完整的结构化数据处理和计算类

2022-06-20 11:45:37 977 2

原创 聊聊服务器性能优化~(建议收藏)

大家好,我是飘渺。听多了架构优化,数据库优化,今天我们来聊聊服务器优化。我们开发的软件服务需要在服务器上运行,所以服务器性能代表了软件的性能上限,因此服务器性能调优是个十分重要的环节,然而大部分同学对服务器性能调优关注的较少,今天从3个部分对服务器性能调优进行介绍,分别是:服务器配置选择,服务器负载分析,服务器内核参数调优。服务器配置选择服务器一般是由CPU、内存、磁盘和...

2022-06-06 09:03:39 534 2

原创 SpringCloud Alibaba微服务实战三十七 - Oauth2自定义登录接口

大家好,我是飘渺。(今天又来给大家送书了~)有不少人私下问我,为什么SpringCloud alibaba实战系列不更新了,主要是因为大部分核心功能都已经讲完了,剩下的基本是属于业务功能开发了,需要根据实际业务扩展。今天更新文章的原因是粉丝提了个问题:如何实现Oauth2认证服务器自定义登录接口以及返回自定义格式? 这里我给大家分享一个简单且实用的方法,既可以灵活定制登录...

2022-05-25 09:03:53 1136 1

原创 聊聊K8S(文末送书~)

大家好,我是飘渺。有不少人问什么是K8S,其实这很好理解。K8S就是Kubernetes的简称,取收尾两个字母K和S,剩下中间8个字母使用数字8代替,就成为了K8S。开个玩笑,本文从开发人员的视角带大家理解一下Kubernetes。当然,文末还会给你送上一份惊喜。概述在JAVA开发中使用 docker run命令配合上自建的Docker仓库可以很容易部署JAVA服务,但是...

2022-05-19 09:05:47 308

原创 SpringBoot 如何进行限流?老鸟们还可以这样玩!

大家好,我是飘渺。在之前一篇文章中我们详细介绍了为什么需要对接口进行限流,也介绍了常见的限流算法,最后还基于Guava工具类实现了接口限流。但是这种方式有个问题,无法实现分布式限流。那今天我们来利用Redis + Lua 来实现分布式限流。Lua 脚本和 MySQL 数据库的存储过程比较相似,他们执行一组命令,所有命令的执行要么全部成功或者失败,以此达到原子性。也可以把 ...

2022-05-17 09:03:18 444

原创 间歇性宏图大志,持续性混吃等死...

大家好,我是飘渺!好久不见,想死你们了!想必大家天天看技术文章应该都看累了吧,今天咱们不谈技术,聊个有意思的话题,即如何为自己构造出一个职业成长方面动力十足的良性循环系统。什么意思呢?我相信各位做技术的 “秃头老码农” 肯定都有过或实践过这样一个想法:即通过在上班之余努力学习各种知识、开发技能和思维能力,一段时间后提高我们的工作能力,进而做出更好的工作成绩。这些工作成绩会为我们带来更多的金钱,如升职加薪、当上CTO、迎娶白富美等。这些钱会对我们构成正面激励,让我们有更大的学习动力去继续学习更多的知识和能力,

2022-05-09 13:55:44 605

原创 一名架构师,懂点硬件知识不过分吧?

大家好,我是飘渺。很多架构师都是从软件开发成长起来的,大家在软件领域都有很深的造诣,大部分人对硬件接触的很少。而成为架构师后需要频繁的跟人 、硬件 、软件 、网络打交道,本篇文章就给大家带来服务器硬件方面的相关知识,主要包括服务器、CPU、内存、磁盘、网卡。当然如果此文对你有所帮助,请点击下方卡片给我加个关注哟。服务器根据服务器的外形和使用场景我们将服务器分为以下四种:塔...

2022-04-29 09:05:59 445

原创 实战,SpringBoot中如何解决CORS跨域问题~(文末送书)

CORS(Cross-Origin Resource Sharing)"跨域资源共享",是一个W3C标准,它允许浏览器向跨域服务器发送Ajax请求,打破了Ajax只能访问本站内的资源限制。在前后分离的架构下,我们经常会遇到跨域CORS问题,在浏览器上的表现就是出现如下一段错误提示:No 'Access-Control-Allow-Origin' header is pre...

2022-04-03 19:44:32 1015

原创 我懂了,原来这就是4+1架构模型!

大家好,我是飘渺。今天继续带来架构师之路系列文章。之前我们讲架构描述的时候提到过,一个有效的架构描述需要做到以人为本,不同的利益相关方展示不同的视点及视图。那究竟需要从哪些视点入手,应该展...

2022-03-08 09:03:00 3323

原创 实战,Spring Boot整合GraphQL实现动态字段接口!

概述REST作为一种现代网络应用非常流行的软件架构风格受到广大WEB开发者的喜爱,在目前软件架构设计模式中随处可见REST的身影,但是随着REST的流行与发展,它的一个最大的缺点开始暴露出...

2022-02-24 09:03:00 2953

原创 SpringBoot中实现业务校验,这种方式才叫优雅~

大家好,我是飘渺。在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验:参数校验业务规则校验首先我们先看看参数校验。参数校验参数校验很好理解,比如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。而实现参数校验也非常简单,我们只需要使用Bean Validation校验框架即可,借助它提供的校验注解我们可以非常方便的完成参数校验。常见的校验注解有:@Null、@NotNull、@AssertTrue、@AssertFal

2022-02-12 09:21:25 952 1

原创 Win10上操作Docker,一样可以纵享丝滑~

大家好,我是飘渺!在平时开发工作中,如果你要学习或使用某个中间件,如Redis,MongoDB,ES等,你肯定得先去官网下载、安装、然后配置。有时候遇到一个问题,捣鼓半天还是无法启动,等你...

2022-01-27 08:54:31 5078 1

原创 Redis夺命十二问,你能扛到第几问?

大家好,我是飘渺Redis是面试中绕不过的槛,只要在简历中写了用过Redis,肯定逃不过。今天我们就来模拟一下面试官在Redis这个话题上是如何一步一步深入,全面考察候选人对于Redis的...

2022-01-21 09:03:00 10057 8

原创 SpringBoot 如何进行业务校验,老鸟们都这么玩的~

大家好,我是飘渺。今天继续给大家带来SpringBoot老鸟系列 的第七篇,来聊聊在SpringBoot项目中如何实现业务异常校验Assert。希望通过今天的文章,咱们能够了解到:如何使...

2022-01-19 09:03:00 1032 3

原创 我懵了,那个听起来很厉害的微内核架构是个什么鬼?

大家好,我是飘渺!咱们经常在一些中间件架构设计中听到 “微内核架构“ 这个词,不知道各位第一次听到这个词是什么感觉,反正我是一脸懵逼,两脸茫然。那究竟什么是 “微内核架构” ,我们又应该如...

2022-01-13 09:03:00 312

原创 SpringBoot启动时如何对配置文件进行校验?这种方法才叫优雅~

概述在项目开发过程中,某个功能需要依赖在配置文件中配置的参数。这时候就可能出现下面这种现象:有时候经常出现项目启动了,等到使用某个功能组件的时候出现异常,提示参数未配置或者bean注入失败...

2022-01-05 09:03:00 797 2

原创 SpringBoot 如何异步编程,老鸟们都这么玩的

大家好,我是飘渺。今天继续给大家带来SpringBoot老鸟系列的第六篇,来聊聊在SpringBoot项目中如何实现异步编程。老鸟系列文章导读:1. SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!2. SpringBoot 如何进行参数校验?老鸟们都是这么玩的!3. SpringBoot 如何生成接口文档,老鸟们都这么玩的!4. SpringBoot 如何进行对象复制,老鸟们都这么玩的!5. SpringBoot 生成接口文档,我用smart-doc6. SpringBoot

2021-12-01 09:00:00 1448 1

原创 什么?Spring官方推荐的@Transational还能导致生产事故?

在Spring中进行事务管理非常简单,只需要在方法上加上注解@Transactional,Spring就可以自动帮我们进行事务的开启、提交、回滚操作。甚至很多人心里已经将Spring事务与@Transactional划上了等号,只要有数据库相关操作就直接给方法加上@Transactional注解。不瞒你说,我之前也一直是这样,直到使用@Transactional导致了一次生产事故,而那次生产事故还导致我当月绩效被打了D…@Transactional导致的生产事故19年在公司做了一个内部报销的项目,有这

2021-11-24 11:31:52 7997 33

原创 SpringCloud Alibaba微服务实战三十六 - 这大概算是使用Feign的正确姿势。

此文章为收费专栏文章,待流量变少时将移入收费专栏,且看且珍惜!在SpringCloud架构体系中,微服务间的通信是基于Feign调用。而在实际使用Feign的过程中我们大概率会面临下面几个问题:Feign客户端放在消费端还是独立一个api层?Feign调用的接口如何要不要进行包装?Feign如何抓取业务生产端的业务异常?这篇文章我们就来一起探讨一下这几个问题,希望看完能对你有所帮助。首先我们先看看Feign的调用方式如何抉择?Feign的调用方式如何选择?总体来说,Feign的调用方.

2021-11-17 08:32:07 1656 7

原创 java后端实现token自动续期,这方案有点优雅

前言在前后端分离的开发模式下,前端用户登录成功后后端服务会给用户颁发一个token。前端(如vue)在接收到 token后会将token存储到LocalStorage中。后续每次请求都会将此token放在请求头中传递到后端服务,后端服务会有一个过滤器对token进行拦截校验,校验token的合法性以及token是否过期,如果token过期则会让前端跳转到登录页面重新登录。因为token中一般会包含用户的基础信息,为了保证token的安全性,一般会将token的过期时间设置的比较短。但是这样又会导致前

2021-11-08 23:07:08 4225 7

原创 为什么要在MVC三层架构上再加一层Manager层?

我们在刚刚成为程序员的时候,就会被前辈们 “教育” 说系统的设计要遵循 MVC(Model-View-Controller)架构。它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是一种标准的软件分层架构。

2021-10-21 12:48:56 8090 18

原创 公众号两年,粉丝一万,收益五千。

一位做公众号的大佬说过:做公众号,如果半年内粉丝没到1万,说明这个号基本是废了,没必要再坚持了。而我用了两年,在这个国庆节的时候粉丝终于到了1万。在这期间无数次想过要放弃,好在最后终究是坚...

2021-10-18 09:22:56 1462 4

原创 SpringBoot 如何进行限流?老鸟们都这么玩的!

大家好,我是飘渺。SpringBoot老鸟系列的文章已经写了四篇,每篇的阅读反响都还不错,那今天继续给大家带来老鸟系列的第五篇,来聊聊在SpringBoot项目中如何对接口进行限流,有哪些常见的限流算法,如何优雅的进行限流(基于AOP)。首先就让我们来看看为什么需要对接口进行限流?为什么要进行限流?因为互联网系统通常都要面对大并发大流量的请求,在突发情况下(最常见的场景就是秒杀、抢购),瞬时大流量会直接将系统打垮,无法对外提供服务。那为了防止出现这种情况最常见的解决方案之一就是限流,当请求达到一定的并

2021-10-11 11:48:16 8490 29

原创 SpringBoot 集成接口文档,老鸟们也被打脸了!

之前我在SpringBoot老鸟系列中专门花了大量的篇幅详细介绍如何集成Swagger,以及如何对Swagger进行扩展让其支持接口参数分组功能。详情可见:SpringBoot 如何生成接口文档,老鸟们都这么玩的!可是当我接触到另一个接口文档工具 smart-doc后,我觉得它比Swagger更适合集成在项目中,更适合老鸟们。今天我们就来介绍一下smart-doc组件的使用,作为对老鸟系列文章的一个补充。swagger vs smart-doc首先我们先看一下Swagger组件目前存在的主要问题:

2021-09-29 08:57:51 1786 4

原创 SpringBoot 如何进行对象复制,老鸟们都这么玩的!

大家好,我是飘渺。今天带来SpringBoot老鸟系列的第四篇,来聊聊在日常开发中如何优雅的实现对象复制。首先我们看看为什么需要对象复制?为什么需要对象复制如上,是我们平时开发中最常见的三层MVC架构模型,编辑操作时Controller层接收到前端传来的DTO对象,在Service层需要将DTO转换成DO,然后在数据库中保存。查询操作时Service层查询到DO对象后需要将DO对象转换成VO对象,然后通过Controller层返回给前端进行渲染。这中间会涉及到大量的对象转换,很明显我们不能直接使

2021-09-23 14:39:34 4301 13

原创 SpringCloud Alibaba微服务实战三十五 - 实现退出登录后注销 jwt token

大家好,我是飘渺。有一个看我SpringCloud alibaba系列文章的粉丝私下问我:如何处理jwt失效的问题?修改密码或退出登录后需要将之前的jwt token失效掉,不允许使用旧token登录系统。我说:很简单呀,咱们直接 无为而治,用户退出或修改密码的时候前端直接删除这个token不就完了吗?后端啥都不用管,啥也不用做。他说:别闹,你的每篇文章我都给你一键三连。我当时就被感动了,既然是这样的好读者,我果断答应专门给他写篇文章来分享一下我这个不太成熟的做法,改造一下这个SpringCloud

2021-09-15 14:08:34 14481

空空如也

空空如也

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

TA关注的人

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