Java
232 篇笔记
- 2.19 Netty3.x源码分析historical
1. 总览 创建两个线程池,一个用于boss数组初始化,一个用于worker数组初始化 2. boss数组初始化的过程 所有的boss共享同一个线程池 1. 使用Selector.open打开选择器 2. 通过线程池执行一个run方法(这个方法是个死循环) 2.1 设置wakeup为false 2.
- 2.20 Apollohistorical
1. Apollo是什么 配置中心 2. 如何使用Apollo 3. Apollo原理 3.1. 架构 3.2. 推拉结合 - 修改配置后会存储到DB中 - AdminService会定时扫描DB中的配置,有变化则推送给客户端 - - 4. 参考 - ctripcorp/apollo: Apollo
- 2.21 Eurekahistorical
1. 是什么 如何设计注册中心.md - 采用了C-S架构的服务注册中心,提供服务注册与发现的功能 2. 使用 Getting Started \ Service Registration and Discovery 3. 原理 3.1. 服务注册与发现 3.1.1. 多级缓存机制 - 新的服务注册
- 2.22 Feignhistorical
1. Feign是什么 - 远程接口调用组件 - Feign=注解+Ribbon+RestTemplate 2. 为什么有Feign - Ribbon 使用HttpClient 或 RestTemplate 模拟http请求,步骤相当繁琐。 - 而Feign采用接口+注解的方式 。将需要调用的其他服
- 2.23 Gatewayhistorical
1. 是什么 Zuul 1.x版本的替代 2. 使用 2.1. 三大概念 - Route: 由ID、目标URI、一系列的断言和过滤器组成,如果断言为true则匹配 - Predicate: 路由的匹配条件 - Filter: 请求被路由前或者路由后进行处理 3. 原理 3.1. 异步非阻塞线程模型
- 2.24 Hystrixhistorical
1. Hystrix是什么 微服务的服务容错组件 2. 为什么需要Hystrix 本质上就是为什么需要熔断组件 如何设计容错组件.md 3. Hystrix使用 4. Hystrix功能 4.1. 服务熔断 1. 调用出现错误,开启一个时间窗(10s) 2. 在这个时间窗内,统计调用次数是否达到最小
- 2.25 Ribbonhistorical
1. Ribbon是什么 客户端+独立的负载均衡组件 2. 为什么需要Ribbon 换句话说就是为什么需要负载均衡。 所谓负载均衡就是把压力平均得分散到每个节点上,这样子一方面可以提高吞吐量,另一方面可以避免单节点压力过大宕机。 3. 使用 3.1. 关闭Ribbon懒加载 每个服务第一次请求的时候
- 2.26 Sleuthhistorical
1. 是什么 SpringCloud的链路监控,兼容Zipkin 2. 原理 2.1. 基于Zipkin - 库存服务调用商品服务,会把trace data丢给zipkin记录,dashboard上就能看到这条链路了 -
- 2.27 Zuulhistorical
1. 是什么 SpringCloud的网关组件 如何设计API网关.md 2. 使用 2.1. 灰度发布 开发了新功能,部署在少量机器上,在网关配置少量请求走这个新功能 2.2. 动态路由 所谓动态路由就是后端服务URI不是写死的,而是动态获取的 将后端服务URI存在配置中心或者数据库,定时加载,这
- 2.28 ApplicationListenerhistorical
1. ApplicationListener是什么 就是观察者模式。生产者发布事件,多个消费者监听这个事件处理各自的逻辑,如此解耦了生产者消费者。后续如果还有消费者需要处理这个事件再增加一个Listener即可 2. 如何使用事件监听机制 比如我们有个需要上报工单后需要写邮件、写日志,取消工单后也需