-
用 Spring Security Oauth2 + JWT 搭建一个认证中心
前言在很多微服务分布式项目架构中,一般都会有一个独立的认证中心服务,负责用户身份认证和授权,正好近期公司的一个项目用到了,记录总结下。 在此之前,先了解一些概念。 第三方认证互联网项目经常需要访问外部资源,同样本地系统也经常需要访问外部资源,比如用户... -
配置 Fegin 拦截器解决微服务之间需要认证才能访问得问题
项目背景Spring Cloud 项目,有前端,有后端,后端服务整合了 Cloud Security OAuth2 ,请求后端的服务需要携带认证信息,即请求头中需要携带” Authorization Bearer …“ 的Token 头信息。 后台微... -
使用 Canal + 责任链模式实现 Mysql 和 Redis 同步
前言现在公司的项目实际场景中,当数据库的内容变更时,需要刷新缓存。当前的情况,经常把操作 Redis 缓存的代码耦合到了核心业务代码中,为了使之解耦,引入了 Canal 中间件。当数据库发生写入操作时,缓存可以自动刷新,实现刷新缓存的操作对核心业务代... -
降级和限流
前言高并发三把利器:缓存、降级、限流 缓存可以用来解决访问速度的问题,提高系统的吞吐量,减少数据库压力,分布式系统中,常用的缓存有 Redis、MongoDB 等。 本篇主要总结下降级和限流相关知识点笔记,用以提醒自己看到这些点后知道去哪里翻代码。 ... -
SpringBoot简单整合Netty实现一个聊天室
今天花了点时间研究下 SpringBoot 整合 Netty,因为现在公司用的框架就有 SpringBoot,感觉我现在依赖上了 SpringBoot……. 在 SpringBoot整合 Netty 的基础上实现一个聊天室这么个小东西。废话不多说直接... -
Netty解决TCP粘包拆包的问题
什么是 TCP 粘包拆包问题?可以先想象这么一个实际场景,一条河的两岸通过船来运输货品,如果每次运输的货品太少,就先把需要运输的货品积攒起来,差不多了再一起运走,这样可以减少船来往的次数节省成本;如果每次运输的货品太多,超过了船的承重,那就把这批货分... -
Netty 中的一些重要接口以及他们之间的关系
今天总结下 Netty 中几个很重要的接口,在学习时缕清楚他们之间的关系,自然对 Netty 的流程也就更清晰了。 主要的接口有ChannelHandler、ChannelPipeline、ChannelHandlerContext等。 Channe... -
NIO的一些知识点
学习 NIO有一段时间了,今天主要总结下什么是 NIO,以及 NIO 的三大组件Buffer、Channel、Selector以及其他相关概念。 NIO传统 BIO 和 NIO最大的区别在于 NIO 是非阻塞的,阻塞和非阻塞的区别在于线程得到返回结果... -
自己动手用 Redis 撸一个分布式锁
什么是分布式锁?分布式锁,是控制分布式系统之间同步访问共享资源的一种方式,在分布式环境中,如果不同的系统或是同一系统的不同服务器之间共享了某些资源,那么访问这些资源的时候需要互斥防止彼此干扰,以此来保证数据一致性,由于单机环境的 Lock 和 syn... -
ThreadLocal是什么鬼?
前言之前写过一篇关于[SimpleDateFormat线程安全问题](link: http://zhengyk.cn/2017/10/31/java/Thread_sdf/)的记录博客,里面提到了使用 ThreadLocal 来保证 SimpleD...