KeyCloak持久化机制-简述
在研究KeyCloak的部分接口功能的时候,发现有相当一部分的接口代码没有直接做持久化,但是在接口调用完成后,确实数据又被持久化到了数据库之中,因此花了一些时间来研究了一下他是怎么做持久化的。 业务逻辑接口-示例 RoleByIdResource 接口 @Path("{role-id}/composites") @POST @Consumes(MediaType.APPLICATION_JSON)


What else can I do ?
在研究KeyCloak的部分接口功能的时候,发现有相当一部分的接口代码没有直接做持久化,但是在接口调用完成后,确实数据又被持久化到了数据库之中,因此花了一些时间来研究了一下他是怎么做持久化的。 业务逻辑接口-示例 RoleByIdResource 接口 @Path("{role-id}/composites") @POST @Consumes(MediaType.APPLICATION_JSON)
登录/OTP页面怎么来的 表单动作操作实际上是调用各种 Form(freeMarker下页面绑定的类) 下的 action 或者是 authenticate 方法,这些方法实际上在调用 challenge 方法的时候会导致实际上表单的切换等行为的出现。至于静态资源和Form怎么绑定的就不知道了,看不懂 FreeMarkerLoginFormsProvider 登录页面的静态资源 login.ftl
客户端代理入口 - TokenService 客户端代理接口,他的实际意义是让我们可以直接通过TokenService类似于Feign等远程调用一样,可以直接调用我们的目标功能,在实际上通过代理之后,实际请求的会是 TokenEndpoint 。 @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_FORM_U
关于并发、并发安全、线程通信的浅谈 该笔记将会从并发的基础概念、Java中线程实现和管理、线程安全(JVM级别上下文切换线程安全、变量级别线程安全、代码块级别线程安全、分布式服务并发安全)、常见的线程优化进行介绍。笔记本身会比较长,阅读前请注意。 版本信息 JAVA源码版本:17 / 21 JVM源码: Hotpot Curator: 5.3.0 Redisson:3.36.0 <font col
MQ - RabbitMQ - Kafka MQ - RabbitMQ - Kafka 并发 并发 多线程报表导出 多线程报表导出 WMS WMS项目图 优化-高并发支持 开发流程 排查问题
SQL优化 进行SQL优化之前,我们首先要确定是具体的某条SQL差。一般来说实际开发之中,无非就是两种情况需要对SQL做优化。 开发的时候根据业务需求要做SQL优化 除了实际开发的时候,往往还会有一些SQL会在项目正常运行一定时间之后,才会出现性能差的问题。 针对这种情况。我们可以通过以下几种方式来帮助我们查看过去性能较差的SQL有哪些。 Mysql的性能模式 performance_schema
WMS项目 项目简单介绍 项目本身是面向国际的奢侈品品牌的,他其实是共享模式下的Saas项目来,项目本身是所有客户共享,但数据库上不同的品牌方是完全独立的,在项目之中其实是依靠AbstractRoutingDataSource实现动态切换的,这一点比较简单就不再细说了。 架构转变 - 微服务 单体架构 WMS最早的时候其实是单体项目,大概是在12年左右的项目。只有单个服务来负责所有工作,而实际部署
隔离级别与隔离问题 这个部分算是基础知识,稍微提及一下,具体不再介绍 READ_UNCOMMITED 读未提交 最弱的隔离级别,完全没有隔离效果,等同于可以读取到别人事务之中还没有提交的内容,也就是出现所谓的脏数据的场景。 READ_COMMITED 读已提交 查询只查询到别人已经在事务之中提交了的数据改动,也就是解决了脏数据的可能,但是在这种隔离级别下又出现了事务前后同一个查询语句可能会出现不同
Mysql单表存储不要超过2kw? 有不少文章在解释,Mysql单表最好不要超过2kw,了解时感觉头头是道实际上漏洞百出经不起推敲。有的人甚至会说Mysql指针大小是6,有的又说是12,搞的一塌糊涂根本不知道什么是什么,怪的很。但最终他们的结论是对的,实在有点难绷,为了避免以后又被这群人搞懵导致记错,写一个简单的笔记记录以下正确的推导过程。 他们的实际依据其实就是当B+树的层数增加,会导致Mysq
JVM 总的来说,其实JVM包含有JVM内存模型-运行时数据区(Runtime Data Area)、类加载器(ClassLoader)、执行引擎(Execution Enginee)、本地接口(Native Interface)、本地库(Native Libararies) 介绍JVM的时候,其实可以展开为:内存模型、GC回收器、性能调优、双亲委派模型、内部机制 [ 公共表达式处理、JMM AO
