随笔分类 - Learn Java
摘要:背景 关于为什么做这个代码生成器,其实主要有两点: 参与的项目中有很多分析报表需要展示给业务部门,公司使用的商用产品,或多或少有些问题,这部分可能是历史选型导致的,这里撇开不不谈;项目里面也有很多CRUD的功能,而这些功能的实现代码基本上差不多,这些功能都去手写,也比较浪费时间而且效率很低,还可能会
阅读全文
摘要:前言 本篇文章是基于Spring Security实现前后端分离登录认证及权限控制的实战,主要包括以下四方面内容: Spring Seciruty简单介绍;通过Spring Seciruty实现的基于表单和Token认证的两种认证方式;自定义实现RBAC的权限控制;跨域问题处理; Spring Se
阅读全文
摘要:背景 在高并发的项目中,单数据库已无法承载大数据量的访问,因此需要使用多个数据库进行对数据的读写分离,此外就是在微服化的今天,我们在项目中可能采用各种不同存储,因此也需要连接不同的数据库,居于这样的背景,这里简单分享实现的思路以及实现方案。 如何实现 多数据源实现思路有两种,一种是通过配置多个Sql
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计Dubbo-时间轮设计 通信 Dubbo-聊聊通信模块设计
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计Dubbo-时间轮设计 通信 Dubbo-聊聊通信模块设计
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计Dubbo-时间轮设计 通信 Dubbo-聊聊通信模块设计
阅读全文
摘要:前言 在Dubbo中有Filter使用,对于Filter来说我们会遇到这样的问题,Filter自身有很多的实现,我们希望某种条件下使用A实现,另外情况下使用B实现,这个时候我们前面介绍@SPI和@Adaptive就不能满足我们要求了,这个时候我们就需要使用@Activate。 Activate注解表
阅读全文
摘要:前言 在Dubbo SPI中是通过Wrapper实现AOP,对于AOP相信大家都不陌生,这里不做的过多的介绍,我们主要来了解Dubbo SPI中是如何使用Wrapper类以及实现的细节。 使用场景 Dubbo 中的一个扩展接口可以有多个扩展实现类,这些扩展实现类可能会包含一些相同的逻辑,如果在每个实
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计 通信 Dubbo-聊聊通信模块设计 什么时间轮 时间是一
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计 通信模块介绍 Dubbo通信模块主要的目的就是解决客户端
阅读全文
摘要:前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制Dubbo-Adaptive实现原理Dubbo-Activate实现原理Dubbo SPI-Wrapper 注册中心作用 在整个Duubbo架构中,注册中心主要完成以下三件事情: Provider应用启动后
阅读全文
摘要:前言 前面我们已经分析Dubbo SPI相关的源码,看过的小伙伴相信已经知晓整个加载过程,我们也留下两个问题,今天我们先来处理下其中关于注解Adaptive的原理。 什么是@Adaptive 对应于Adaptive机制,Dubbo提供了一个注解@Adaptive,该注解可以用于接口的某个子类上,也可
阅读全文
摘要:前言 SPI全称为Service Provider Interface,是Java提供的一种服务发现机制。SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 正因此特性,我们可以很容易的通过SPI机制为我们的程序提供拓展
阅读全文
摘要:前言 关于CompletableFuture源码解析部分,整体上感觉还是写比较难的,不过为了推广到团队还是要好好搞一下的,我还是希望大家看到这边文章能学到点什么,废话不多说开始吧。 属性部分 首先看属性部分,我觉得可以从全貌了解他的整体的数据结构,后续我们看到一些操作的时候,也不会产生疑问,算是一种
阅读全文
摘要:前言 这篇是推动大家异步编程的思想的线程池的准备篇,要做好监控,让大家使用无后顾之忧,敬畏生产。 为什么需要对线程池进行监控 Java线程池作为最常使用到的并发工具,相信大家都不陌生,但是你真的确定使用对了吗?大名鼎鼎的阿里Java代码规范要求我们不使用 Executors来快速创建线程池,但是抛弃
阅读全文
摘要:前言 最近在忙生活的第一个OKR,这个等等后面具体聊聊,今天开始恢复每周一篇原创,感谢小伙伴的不离不弃。这篇文章也是最近在Code Review的时候,看到的大家代码,想整体推下大家异步编程的思想,由此而写的。 为什么使用CompletableFuture 一些业务场景我们需要使用多线程异步执行任务
阅读全文
摘要:前言 在使用Netty改造手写RPC框架的时候,需要给大家介绍一些相关的知识,这样很多东西大家就可以看明白了,手写RPC是一个支线任务,后续重点仍然是Kubernetes相关内容。 阻塞与非阻塞 同步与异步 阻塞与非阻塞 阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式。当数据没有
阅读全文
摘要:前言 最近不小心被隔离,放假思考一番,决定开始在手写序列。这个序列在之前看Nacous和网关源码的时候就有想法,只是一直没落实下来,趁着隔离行动起来。 必备知识介绍 序列化与反序列化 序列化是把对象的状态信息转化为可存储或传输的形式过程,也就是把对象转化为字节序列的过程称为对象的序列化; 反序列化是
阅读全文
摘要:前言 NacosAP模式源码分析目录 微服务下的注册中心如何选择 Nacos使用和注册部分源码介绍 Nacos服务心跳和健康检查源码介绍 Nacos服务发现 Nacos源码结构介绍 Nacos版本基于1.4.0版本,整体的项目结构如下: 看到目录,第一眼的感觉就是职责分明,给人的感觉就是高手,关于源
阅读全文
摘要:基础配置初始化 NacosDiscoveryClientConfiguration NacosDiscoveryProperties 初始化Nacos基础配置信息的bean,主要指yaml中配置Nacos服务相关的信息。 NacosServiceDiscovery 初始化获取Nacos服务和实例的b
阅读全文