RXjava名词
Observable
1 |
|
Subscriber
消费者
1 | public abstract class Subscriber<T> implements Observer<T>, Subscription { |
Observer
1 | /* |
Subscription
1 | Subscription从Observable#subscribe(Subscriber)返回以允许取消订阅。 |
1 |
|
消费者
1 | public abstract class Subscriber<T> implements Observer<T>, Subscription { |
1 | /* |
1 | Subscription从Observable#subscribe(Subscriber)返回以允许取消订阅。 |
1 | /* |
1 | 实现延迟服务提供程序查找,其中通过服务配置文件配置服务提供程序。命名模块中的服务提供者被此查找迭代器忽略。 |
1 |
|
1 |
|
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
停止级联故障。后备和正常降级。无法快速快速恢复。
使用断路器隔离线程和信号量。
实时监控和配置更改。监视服务和财产变更在整个机队中扩散后立即生效。
在几秒钟内收到警报,做出决定,影响更改并查看结果。
并行执行。并发请求缓存。通过请求折叠自动进行批处理。
1 |
|
1 |
|
断路器作用
1 |
|
1 |
|
隔离
1 | private Observable<R> executeCommandWithSpecifiedIsolation(final AbstractCommand<R> _cmd) { |
1 |
|
1 | @Override |
1 |
|
1 |
|
1 | RibbonClientHttpRequestFactory 实现ClientHttpRequestFactory |
1 |
|
1 |
|
1 |
|
1 | 接口,定义了我们如何“ping”一个服务器来检查它是否还活着 |
1 | /* |
1 |
|
1 |
|
1 | ribbon: |
1 |
|
可以看出,最后有一个拦截器进行处理并返回
1 |
|
1 | 注意:这个类是InterceptingClientHttpRequest的内部类,所以interceptors是InterceptingClientHttpRequest对象的 |
这是ribbon使用的拦截器
1 | public LoadBalancerInterceptor(LoadBalancerClient loadBalancer, |
1 |
|
1 | 没配置,默认就是这个 |
1 |
|
1 | IRule 含有七种规则算法,分别是 |
1 |
|
这个是作为 每一个 springclient的一个配置类
1 |
|
1 | @Configuration(proxyBeanMethods = false) |
1 | LoadBalancerInterceptor继承ClientHttpRequestInterceptor |
1 |
|
1 |
|
1 |
|
1 |
|
这个是Spring默认自带的一个外部公共注解的处理器
它主要是用来处理jdk自带的一些
1 |
|
1 | init |
1 |
|
1 | //注入 |
1 |
|
1 | /* |
1 |
|
1 |
|
在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。
1 |
|
1 | //如果是eureka服务节点实例,并且eureka服务节点是集群的 |
1 | /* |
1 |
|
1 | 继承 EurekaHttpClientDecorator |
1 |
|
1 | 继承EurekaHttpClientDecorator |
1 |
|
1 |
|
1 |
|
1 | 准确点是创建 真正传输EurekaHttpClient |
1 |
|
1 |
|
1 |
|
1 |
|
1 | 继承InstanceRegistry |
1 | 继承 InstanceRegistry |
1 |
|
1 |
|
1 |
|
1 | /* |
1 |
|
1 |
|
1 |
|
1 | com.netflix.servo.monitor |
1 | 一个用于管理所有PeerEurekaNode的生命周期的工具类 |
eureka服务器的节点也是分布式的,这个类就代表 eureka服务器集群的某一台
1 |
|
1 |
|
1 | /* |
1 | eureka服务端的上下文 |
1 | /* |
1 | /*资源方法调度程序。*/ |
1 | /* |
1 |
|
1 | InstanceRegistry |
1 | public boolean renew(final String appName, final String serverId, |
1 | @Override |
1 |
|
1 | public boolean deleteStatusOverride(String appName, String id, |
1 | public void evict() { |
1 | 主要的注册逻辑与 单机版的一样, |
1 |
|
1 | public Applications getApplications() { |
1 |
|
1 |
|
1 |
|
它只做了一些事,就是把一个配置类加载进来,这个配置类 有一个 主动注册 ,注册管理的属性配置,先记着,以后用的到
1 |
|
查看spring-cloud-netflix-eureka-client包下 meta-inf/ spring.factory文件
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
注册一个客户端的 可选参数,主要用于 去setTransportClientFactories(new RestTemplateTransportClientFactories());
就是设置一个 用于 创建客户端通信对象的工厂
1 | //第一个bean是 用于使用RestTemplate去传输集群间通信请求的 |
1 | //一个刷新作用域对象 |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 | private final com.netflix.servo.monitor.Timer FETCH_REGISTRY_TIMER = Monitors |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 | public synchronized void shutdown() { |
1 | EurekaClientConfig它不集成到cloud的话,使用的是 eureka core 包下的 DefalutEurekaClientConfig |
1 |
|
没有集成cloud默认实现DefaultEurekaServerConfig
1 |
|
1 | @ConfigurationProperties("eureka.dashboard") |
1 |
|
1 |
|
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
1 | @Configuration(proxyBeanMethods = false) |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
这个是一个初始化 eureka服务配置的类
1 |
|
1 | public void contextInitialized(ServletContext context) { |
1 | public class ServletContainer extends HttpServlet implements Filter { |
1 |
|
1 |
|
1 |
|
1 | private void scheduleRenewalThresholdUpdateTask() { |
1 |
|
1 | @Path("/{version}/apps") |
1 |
|
1 |
|
1 |
|
1 | 所以缓存之缓存了Apps和detalApps |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true