基于 MyBatis 插件实现字段加解密
前言 对于大多数系统来说,敏感数据的加密存储都是必须考虑和实现的。最近在公司的项目中也接到了相关的安全需求,因为项目使用了 MyBatis 作为数据库持久层框架,在经过一番调研后决定使用其插件机制来实现字段加解密功能,并且封装成一个轻量级、支持配置、方便扩展的组件提供给其他项目使用。 MyBatis 的插件机制 关于 MyBatis 插件的详细说明可以查阅官方文档 简介 MyBati...
前言 对于大多数系统来说,敏感数据的加密存储都是必须考虑和实现的。最近在公司的项目中也接到了相关的安全需求,因为项目使用了 MyBatis 作为数据库持久层框架,在经过一番调研后决定使用其插件机制来实现字段加解密功能,并且封装成一个轻量级、支持配置、方便扩展的组件提供给其他项目使用。 MyBatis 的插件机制 关于 MyBatis 插件的详细说明可以查阅官方文档 简介 MyBati...
是什么 OAuth 2.0 是目前互联网上非常流行的一种授权机制,它的工作原理是将用户身份验证委托给托管用户帐户的服务并授权第三方应用程序访问该用户帐户。在几乎所有主流的大型互联网产品中都有应用。例如,在登录掘金时,可以选择微博、微信或者 Github 这些第三方账号登录,这里的第三方登录使用的就是 OAuth 2.0 的授权机制。 角色 在 OAuth 标准中,定义了以下四个角色: ...
背景 在单机环境下,Java 中的 synchronized 关键字和 ReentrantLock 可重入锁可以满足我们在并发场景下对锁的需求。但是在单机环境满足不了业务需求的情况下,我们一般会选择分布式部署服务,在分布式环境下,synchronized 和 ReentrantLock 的加锁方法已经失效了,因为它们是本地锁,只能在单个服务内实现锁的功能,于是分布式锁就出现了。 分布...
最近使用 jmeter 做了部分压测的工作,记录一下在压测过程中使用到的一些有用的方法和技巧。 随机 自带函数 ${__Random(,,)} 生成指定范围内的随机数 例如:${__Random(1,100,num) 会生成 1-100 之间的随机数,存到变量num ${__RandomDate(,,,,)} 生成指定范围的随机日期 例如:${__RandomDate(yyy...
简介 spring-boot-starter-actuator 是一个用于监控和管理 Spring Boot 应用的组件。使用 spring-boot-starter-actuator 之后,我们可以非常方便的通过 HTTP 接口或者 JMX 获取到服务的运行状态,依赖的数据库状态,JVM 的运行状态,搜集指标等等,从而实现对服务的监控和管理。配合 prometheus 和 grafana...
简介 Alfred 官网 Alfred is an award-winning app for macOS which boosts your efficiency with hotkeys, keywords, text expansion and more. Search your Mac and the web, and be more productive with...
JMeter 是 Apache 组织开源的一款纯 Java 编写的压力测试软件。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来也扩展到其他测试领域。包括 FTP、SMTP、TCP、JMS、数据库等等。 准备工作 Jmeter 要求使用 Java8 以上的 JDK 版本,如果你使用的版本低于 8,那么需要先更新 JDK 版本并且正确配置了 JAVA_HOME 才能正常使...
在微服务架构中,一般每个服务都会做集群部署,一是可以做负载均衡,二是需要保证服务的高可用。但是由于网络或服务器或服务自身等原因,都有可能导致某一个服务出现问题,如果某个服务出现响应缓慢的情况,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务...
Ribbon 是一个基于 HTTP 和 TCP 的负载均衡客户端,Ribbon 默认提供了很多负载均衡算法,例如轮询、随机等。当然,开发者也可为 Ribbon 实现自定义的负载均衡算法。上一篇笔记中提到的 Feign 已经默认使用了 Ribbon。SpringCloud 远程调用还有另一种方式——RestTemplate,这次使用 RestTemplate 作为 Web 客户端。 服务...
服务提供者和消费者是微服务架构中两个重要的角色,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。 服务提供者 producers 新建一个 SpringBoot 项目并且引入 SpringCloud 依赖 引入 netflix-eureka-client 依赖 ... implementation 'org.springfram...