更新readme和changelog

api-gateway-netflix-zuul
DerekYRC 3 years ago
parent 8537f8097c
commit 4f80412b6f

@ -1,6 +1,6 @@
# <img src="assets/spring-cloud.png" width="80" height="80"> mini-spring-cloud
[![License](https://img.shields.io/badge/license-license-blue)](https://github.com/DerekYRC/mini-spring-cloud)
[![Build Status](https://img.shields.io/badge/build-passing-brightgreen)](https://github.com/DerekYRC/mini-spring-cloud)
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Stars](https://img.shields.io/github/stars/DerekYRC/mini-spring-cloud)](https://img.shields.io/github/stars/DerekYRC/mini-spring-cloud)
[![Forks](https://img.shields.io/github/forks/DerekYRC/mini-spring-cloud)](https://img.shields.io/github/forks/DerekYRC/mini-spring-cloud)
@ -45,8 +45,4 @@
邮箱:**15521077528@163.com**
## 参考
- [《精尽 Spring Cloud 学习指南》](http://svip.iocoder.cn/Spring-Cloud/tutorials/)
## 版权说明
本项目可用于个人学习、非商业性或非盈利性用途。将本项目用于其他用途时,须征得本人的书面许可。
- [《精尽Spring Cloud学习指南》](http://svip.iocoder.cn/Spring-Cloud/tutorials/)

@ -3,10 +3,11 @@
前置知识。阅读spring、springboot、spring cloud三者的源码必须严格按照 spring => springboot => spring cloud 的顺序进行阅读spring cloud源码的必备前置知识
- spring推荐本人写的简化版的spring框架 [**mini-spring**](https://github.com/DerekYRC/mini-spring/blob/main/README_CN.md) 。熟悉spring源码阅读springboot源码会非常轻松。
- springboot重点掌握1、启动流程 2、**自动装配的原理! 自动装配的原理!! 自动装配的原理!!!** 推荐文章:
- spring boot重点掌握1、启动流程 2、**自动装配的原理! 自动装配的原理!! 自动装配的原理!!!** 推荐文章:
- [《Spring Boot精髓启动流程源码分析》](https://www.cnblogs.com/java-chen-hao/p/11829344.html)
- [《细说SpringBoot的自动装配原理》](https://blog.csdn.net/qq_38526573/article/details/107084943)
- [《Spring Boot 自动装配原理》](https://www.cnblogs.com/javaguide/p/springboot-auto-config.html)
- spring cloud先学会使用再研究源码切勿本末倒置。推荐[《精尽Spring Cloud学习指南》](http://svip.iocoder.cn/Spring-Cloud/tutorials/)
关于spring cloud。spring cloud是构建通用模式的分布式系统的工具集通过[**spring-cloud-commons**](https://github.com/spring-cloud/spring-cloud-commons) 定义了统一的抽象API相当于定义了一套协议标准具体的实现需要符合这套协议标准。spring cloud官方整合第三方组件Eureka、Ribbon、Hystrix等实现了spring-cloud-netflix阿里巴巴结合自身的Nacos、Sentinel等实现了spring-cloud-alibaba。本项目基于spring-cloud-commons的协议标准自主开发或整合第三方组件提供具体的实现。
@ -758,14 +759,13 @@ public class TutuRibbonClientConfiguration {
}
```
每一个Provider服务对应一套ribbon核心API相互隔离SpringClientFactory为每一个Provider服务对应的ribbon核心API创建一个子spring应用上下文ApplicationContext
每一个Provider服务集群应用名称即spring.application.name相同的所有应用服务提供者对应一套ribbon核心API。SpringClientFactory继承自NamedContextFactory为每一套ribbon核心API创建一个子spring应用上下文ApplicationContext来隔离不同服务的ribbon核心API配置可以定制化不同服务的负载均衡规则扩展篇实现)。
子spring应用上下文的配置类来自于:
SpringClientFactory的构造函数参数RibbonClientConfiguration配置ribbon默认的核心API。
- SpringClientFactory的构造函数参数RibbonClientConfiguration配置类
- 修饰RibbonTutuAutoConfiguration的注解指定的属性defaultConfiguration = TutuRibbonClientConfiguration配置类处理RibbonClients注解的RibbonClientConfigurationRegistrar会将TutuRibbonClientConfiguration配置类包装为RibbonClientSpecification供SpringClientFactory使用
修饰RibbonTutuAutoConfiguration配置类的注解RibbonClients引入了自动配置类RibbonClientConfigurationRegistrar将RibbonClients注解指定的defaultConfiguration属性的值即TutuRibbonClientConfiguration配置类包装为RibbonClientSpecification。RibbonClientSpecification作为SpringClientFactory的属性用来覆盖RibbonClientConfiguration配置类指定的默认的核心API比如TutuRibbonClientConfiguration配置类使用TutuServerList替换RibbonClientConfiguration配置类中指定的ConfigurationBasedServerList。
为了充分理解子spring容器的创建逻辑可以在下面的测试环节debug如下几个方法:
可能表述得不清楚,为了充分理解子spring容器的创建逻辑可以在下面的测试环节debug如下几个方法:
- RibbonClientConfigurationRegistrar#registerBeanDefinitions
- RibbonAutoConfiguration#springClientFactory

Loading…
Cancel
Save