1. 2.19 Netty3.x源码分析historical

    1. 总览 创建两个线程池,一个用于boss数组初始化,一个用于worker数组初始化 2. boss数组初始化的过程 所有的boss共享同一个线程池 1. 使用Selector.open打开选择器 2. 通过线程池执行一个run方法(这个方法是个死循环) 2.1 设置wakeup为false 2.

  2. 2.20 Apollohistorical

    1. Apollo是什么 配置中心 2. 如何使用Apollo 3. Apollo原理 3.1. 架构 3.2. 推拉结合 - 修改配置后会存储到DB中 - AdminService会定时扫描DB中的配置,有变化则推送给客户端 - - 4. 参考 - ctripcorp/apollo: Apollo

  3. 2.21 Eurekahistorical

    1. 是什么 如何设计注册中心.md - 采用了C-S架构的服务注册中心,提供服务注册与发现的功能 2. 使用 Getting Started \ Service Registration and Discovery 3. 原理 3.1. 服务注册与发现 3.1.1. 多级缓存机制 - 新的服务注册

  4. 2.22 Feignhistorical

    1. Feign是什么 - 远程接口调用组件 - Feign=注解+Ribbon+RestTemplate 2. 为什么有Feign - Ribbon 使用HttpClient 或 RestTemplate 模拟http请求,步骤相当繁琐。 - 而Feign采用接口+注解的方式 。将需要调用的其他服

  5. 2.23 Gatewayhistorical

    1. 是什么 Zuul 1.x版本的替代 2. 使用 2.1. 三大概念 - Route: 由ID、目标URI、一系列的断言和过滤器组成,如果断言为true则匹配 - Predicate: 路由的匹配条件 - Filter: 请求被路由前或者路由后进行处理 3. 原理 3.1. 异步非阻塞线程模型

  6. 2.24 Hystrixhistorical

    1. Hystrix是什么 微服务的服务容错组件 2. 为什么需要Hystrix 本质上就是为什么需要熔断组件 如何设计容错组件.md 3. Hystrix使用 4. Hystrix功能 4.1. 服务熔断 1. 调用出现错误,开启一个时间窗(10s) 2. 在这个时间窗内,统计调用次数是否达到最小

  7. 2.25 Ribbonhistorical

    1. Ribbon是什么 客户端+独立的负载均衡组件 2. 为什么需要Ribbon 换句话说就是为什么需要负载均衡。 所谓负载均衡就是把压力平均得分散到每个节点上,这样子一方面可以提高吞吐量,另一方面可以避免单节点压力过大宕机。 3. 使用 3.1. 关闭Ribbon懒加载 每个服务第一次请求的时候

  8. 2.26 Sleuthhistorical

    1. 是什么 SpringCloud的链路监控,兼容Zipkin 2. 原理 2.1. 基于Zipkin - 库存服务调用商品服务,会把trace data丢给zipkin记录,dashboard上就能看到这条链路了 -

  9. 2.27 Zuulhistorical

    1. 是什么 SpringCloud的网关组件 如何设计API网关.md 2. 使用 2.1. 灰度发布 开发了新功能,部署在少量机器上,在网关配置少量请求走这个新功能 2.2. 动态路由 所谓动态路由就是后端服务URI不是写死的,而是动态获取的 将后端服务URI存在配置中心或者数据库,定时加载,这

  10. 2.28 ApplicationListenerhistorical

    1. ApplicationListener是什么 就是观察者模式。生产者发布事件,多个消费者监听这个事件处理各自的逻辑,如此解耦了生产者消费者。后续如果还有消费者需要处理这个事件再增加一个Listener即可 2. 如何使用事件监听机制 比如我们有个需要上报工单后需要写邮件、写日志,取消工单后也需