摘要:
SpringBoot打包、shell部署、assembly插件打包 一 引言 springboot默认以jar包形式,通过java -jar指令运行。而springboot的程序打包,可以分为jar和war两种。 但这样的启动方式实际上不是很友好,我们常常看到各类组建通过bin目录下的start.s 阅读全文
摘要:
# 六SpringSecurity异常处理 在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常。且异常分为下面两大类: ### 1 认证异常(authenticationException)和授权异常(AccessDenie 阅读全文
摘要:
# 五SpringSecurity重要配置类--3HttpSecurity/WebSecurity #### HttpSecurity(build方法构造过滤器链)和WebSecurity(build->performBuild构造 FilterChainProxy) 然后传至server,决定认证是否成功。认证成功后才可以访问后端资源; 鉴权:是认证成功后,访问后 阅读全文
摘要:
# 五 事务型MQ的最终一致性事务方案--3 如何保证事务成功及正确开发 ### 3.2.4 RocketMQ的事务消息机制,如何保证事务成功 #### 1 理解RocketMQ如何保证整个事务流程一致性  无论是 2PC & 3PC 还是 TCC、事务状态表,基本都遵守 XA 协议的思想,即这些方案本质上都是事务协调者协调各个事务参与者的本地事务的进度,使所有本地事务共同提交或回滚,最终达成一种全局的 ACID 特性。在协调的过程中,协调者需要收集各个本地事务 阅读全文
摘要:
# 六 TCC-transaction的事务恢复 # 五 TCC-transaction的事务恢复 由于2.X提供了embedded和server的部署模式,在embedded模式下,事务恢复仍旧由tcc-client实现;在server模式时,事务恢复交给tcc-server模块实现。这里,我仅以 阅读全文
摘要:
# 五 TCC-transaction的事务执行流程 # 四 TCC-transaction的事务执行流程 、commit(confi 阅读全文
摘要:
# 二 TCC-transaction分布式事务关键组件--1Participant参与者、TransactionManager事务管理器 # 二 TCC-transaction关键组件类及原理 ## 2.1 框架原理 ### 2.1.1 基本使用 在一个模块配置Tcc-transaction并使用 阅读全文
摘要:
# 一TCC-transaction分布式事务(TCC事务原理) # 一 TCC事务原理 ## 1.1 TCC事务原理 tcc分布式事务是一个两阶段的事务解决方案,但是是业务层级的事务定义(2PC/3PC依赖于XA规范的数据库db来实现)。解决了事务运行过程中,对资源锁定(独占数据库)的大颗粒度的问 阅读全文
摘要:
# Spring的@Transactional失效场景和事务注解方法之间调用(二) # 三 @Transactional注解的方法之间调用(同类和不同类之间) 针对methodA方法调用methodB,且methodB中抛出异常的情况: | 同类调用 | 不同类调用 | | : : | : : | 阅读全文
摘要:
# Spring的@Transactional失效场景和事务注解方法之间调用(一) # 一 spring声明式事务的原理 ## 1.1 原理概述  服务代理层:实现服务接口的透明代理,生成服务的客户端stub和服务器端skeleton。 | 模块 | Dubbo层 | 各层核心接口 | | : : | : : | : : | | | Ser 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--5Registry 7.5 Registry(Registry模块) registry层,封装服务地址URL的注册与发现,以服务URL为中心,扩展接口为RegistryFactory,Registry,RegistryService。 | 模块 | Dub 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--4Cluster层-4.2LoadBalance(待完善) 7.4.4 LoadBalance 7.4.4.1 RandomLoadBalance 基于权重随机算法的 RandomLoadBalance 7.4.4.2 RoundRobinLoadBala 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--4Cluster层--Cluster-Directory-Router 7.4 Cluster(Cluster模块) 路由层:封装多个提供者的路由及负载均衡,并桥接注册中心,以invoker为中心。 | 模块 | Dubbo层 | 各层核心接口 | | : 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--3Protocol-RPC模块 7.3 Protocol(RPC模块) 远程调用层:封装rpc调用,以invocation和result为中心,扩展接口为protocol、invoker和exporter。 | 模块 | Dubbo层 | 各层核心接口 | 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--2Exchange--Remoting模块 7.2 Exchange(remoting模块) 信息交换层:封装请求/响应模式,同步转异步,以request、response为中心,Exchanger 、ExchangeChannel ExchangeCli 阅读全文
摘要:
七Dubbo各模块的层次核心接口及组件类--1Transport--Remoting模块 | 模块 | Dubbo层 | 各层核心接口 | | : : | : : | : : | | | Service | ServiceBean ReferanceBean | | dubbo-config | C 阅读全文
摘要:
六Dubbo核心技术归纳--3Dubbo中Invoker的作用及转换 6.3 dubbo的核心模型Invoker Dubbo中invoker是provider和consumer实现RPC调用的关键,invoker的构建过程,是Dubbo服务的init初始化过程;invoker.invoke的调用是D 阅读全文
摘要:
五Dubbo服务引用源码分析--4网络处理-4.3consumer端接收响应 5.3.4 consumer端接收响应 然后,consumer端返回到DubboInvoker.doInvoke过程中 DubboInvoker @Override protected Result doInvoke(fi 阅读全文
摘要:
五Dubbo服务引用源码分析--4网络处理-4.2provider端处理请求 5.3.3 provider端处理请求(请求消息处理) 在前述章节中,知道在NettyServer初始化过程中,向dubbo的底层netty通信框架的pipeline上添加了编解码handler、NettyHandler的 阅读全文
摘要:
五Dubbo服务引用源码分析--4网络处理-4.1consumer端发送请求 5.3 服务请求网络处理(connect、received) 本章节中,主要分析的consumer< >provider两端底层通信过程中,关于provider端对于connect连接消息处理、consumer端发送请求、 阅读全文
摘要:
五Dubbo服务引用源码分析--3服务引用-下 紧接上文,对服务引用源码分析: TAG 1.1.2 FailOverClusterInvoker.doInvoke()--cluster中调用服务 返回AbstractClusterInvoker.invoke() 上面挑选出了可以正常执行的invok 阅读全文
摘要:
五Dubbo服务引用源码分析--3服务引用-上 5.2 服务引用 在服务引用的部分,同样首先把握整体架构,有个大致流程和方向的把握。在Dubbo官方使用者手册中,对集群容错的架构设计,可以通过其对服务引用的框架结构进行参考: https://dubbo.gitbooks.io/dubbo-user- 阅读全文
摘要:
五Dubbo服务引用源码分析--2创建远程调用的代理-2.5开启consumer端NettyClient /**…………NettyClient--开启consumer端………… */ 此时url=dubbo://192.168.0.100:20880/com.alibaba.dubbo.demo.D 阅读全文
摘要:
五Dubbo服务引用源码分析--2创建远程调用的代理-2.4DubboProtocol.refer 继续上篇文章内容,向下分析DubboProtocol.refer的源码: /**…………DubboProtocol.refer………………*/ INV InvokerDelegate(protocol 阅读全文
摘要:
五Dubbo服务引用源码分析--2创建远程调用的代理-2.3zookeeperRegistry.subscribe订阅 /**…………………订阅-通知…………………… */ //REFER2.2.3.1 zookeeperRegistry.subscribe-订阅SUB listener参数是reg 阅读全文
摘要:
五Dubbo服务引用源码分析--2创建远程调用的代理-2.2RegistryProtocol.refer /**…………RegistryProtocol.refer………………*/ REFER1 qos/filter/listener.refer QosProtocolWrapper @Overri 阅读全文