加载中
数据结构整理

数组封装 接口 public interface Array { T[] getData(); int getSize(); int getCapacity(); boolean isEmpty(); void addLast(T t); void addFirst(T t); void add(i......

Spring Security详解

要使用Spring Security,首先当然是得要加上依赖 org.springframework.boot spring-boot-starter-security 这个时候我们不在......

微服务认证授权概览

从单体架构向微服务架构转型的过程中,认证方式也发生了改变。 而转变最大的方面便是有状态向无状态的转变。 在单体架构时代,我们一般使用的是会话管理(Session),架构图如下所示 即多实例采...

Reactor深度探索

技术点 反应器模式(Reactor) 同步非阻塞,每个事情可以分为几个步骤,每个步骤可以相应去做,每个步骤是不会相互影响的,但是做起来是串行的。有关Netty的具体实现,可以参考Netty整理 Proa...

响应式编程解析

响应式编程最重要的是解决生产者和消费者之间的关系。如果生产者产生的数据过大,而消费者消费不过来,就会压垮消费者。所以就需要有一个重要的概念——流控。 解决流控有几种方式 节流 若消...

第二代网关GateWay搭建流程

Spring Cloud第二代网关GateWay是由纯Netty开发,底层为Reactor,WebFlux构建,不依赖任何Servlet容器,它不同于Zuul,使用的是异步IO,性能较Zuul提升1.6倍。搭建过程如下(本次搭建的为子项目...

Sentinel搭建流程

雪崩效应 雪崩效应如上图所示,我们在微服务中的调用链中,当一个基础微服务的API接口A不可用时,当B调用A的服务会堆积阻塞,因为我们知道我们每一次调用,无论是调用方还是服务提供方,其实...

RabbitMQ消息的100%投递

生产端的可靠性投递 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点确认应答 完善的消息进行补偿机制 解决方案 消息落库,对消息状态进行打标 消息的延迟投递,做二次确认,回调...

Nacos搭建流程

要使用nacos,我们首先得下载它的服务端,下载地址https://github.com/alibaba/nacos/releases 根据你的Spring Cloud Alibaba版本来下载需要使用的版本 我这里是tar.gz的,下载完成后,解压,...

Feign HTTP连接的几点建议

Feign默认使用的JDK自带的HTTP方式(没有连接池,连接速率不够) Feign最大的优化点是更换HTTP底层实现(使用Apache的HTTPClient) 具体配置如下 pom io.github.openfeign ......

ConcurrentSkipListMap跳表原理解析

我们首先来看一下ConcurrentSkipListMap的继承结构图。 内部结构如下(图片来源于网络),这里面Node其实就是HeadIndex中的level1,level2,level3中的一个个绿点。 ConcurrentSkipListMap的整体数...

使用动态代理只代理接口(非实现类)

假设现在我们有一个已知的算法,我们需要写任意一个接口打上我们特有的标签,那么这个接口的方法都可以执行这个算法,好比Mybatis的Dao,或者Feign的接口。现在假设我们这个特有的标签如下:...

ConcurrentHashMap 1.8原理解析

JDK 1.8中,Hash家族有这么一些存在,HashMap,HashTable,LinkedHashMap,ConcurrentHashMap。这里面支持线程安全的有HashTable以及ConcurrentHashMap。对Hash有一个基本了解可以参考本人的从H...

Springboot自动装配整理

首先写一个我们自己的HelloWorld配置类 1、基于"注解驱动"实现@Enable模块 @Configuration public class HelloWorldConfiguration { @Bean public String helloWorld() { return "Hello,W.....

HTTP协议整理

URI与URL URI可以分为URL,URN或同时具备locators和names特性的一个东西 URN作用就好像一个人的名字,URL就像一个人的地址。 URN确定了东西的身份,URL提供了找到它的方式 HTTP报文头 HTTP的报...

Spring Cloud Feign源码解析

我们知道要使用feign,需要在springboot启动类放入@EnableFeignClients开关来打开feign的使用。 @EnableFeignClients @EnableZuulProxy @EnableDiscoveryClient @SpringBootApplication pub...

Spring Cloud Sleuth整合Zipkin

Sleuth是一个Spring Cloud的分布式跟踪解决方案。它由以下几个方面组成 Span(跨度):Sleuth的基本工作单元,它由一个64位的id唯一标识。除ID外,span还包含其他数据,例如描述、时间戳事件、...

Apache Dubbo 2.7孵化版整理

分析Dubbo当然要从注册开始,2.7的注册加入了非常多的方式,已经不限于Zookeeper. 基本上现在主流的注册模式都有了。 这种一看就是模版方法模式,其中Registry接口继承与两个接口Node,Regist...

Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

ReentrantLock的可重入特性

在自旋分布式锁实现 中我们已经分析了ReentrantLock的自旋特性,现在我们来分析一下它的可重入特性。 可重入特性其实说白了就是当获得锁的线程解锁后,重新来获取锁的时候会判断自己以前是否...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部