2026/1/16小于 1 分钟
- Java213
- 数据库115
- 分布式83
- 设计80
- 框架74
- JavaCore65
- Spring63
- 笔记52
- 工具50
- 大数据32
- 分布式通信30
- 设计模式28
- Spring核心24
- 架构23
- 搜索引擎数据库22
- DevOps21
- KV数据库21
- 关系型数据库21
- 软件20
- 网络19
- Redis19
- MQ18
- 算法17
- 分布式协同16
- Elasticsearch16
- 操作系统15
- 列式数据库15
- 分布式理论15
- MySQL15
- 综合14
- 面试13
- 基础特性13
- HBase13
- 编程12
- 文档数据库12
- Linux11
- IO11
- 并发11
- MongoDB11
- Spring数据10
- Kafka10
- 中间件9
- Flink9
- Hive9
- JVM9
- 其他9
- 安全9
- 构建9
- 工作8
- 服务器8
- 编程语言8
- 解决方案8
- 分布式存储8
- SpringWeb8
- 重构7
- 分布式调度7
- 容器7
- 高级特性7
- ZooKeeper7
- Maven7
- JavaWeb6
- 网络分层6
- 网络协议6
- 分布式治理6
- Tomcat6
- 监控诊断6
- Python6
- Nginx6
- Hadoop5
- 测试5
- 缓存5
- 微服务5
- Docker5
- Elastic5
- RPC5
- UML4
- 数据库综合4
- 网络技术4
- 术4
- 模板引擎4
- ORM4
- IDE4
- SpringIO4
- Spring其他4
- Spring综合4
- Spring集成4
- RocketMQ4
- 软件工程3
- 编程范式3
- 数据库中间件3
- Kubernetes3
- Git3
- JavaBean2
- 流量控制2
- 人工智能1
- 器1
- 法1
- Spring安全1
2026/1/16小于 1 分钟
什么是网关
网关的首要职责就是:作为统一的出口,对外提供服务;将外部访问网关地址的流量,根据适当的规则路由到内部集群中正确的服务节点之上。因此,微服务中的网关,也常被称为“服务网关”或“API 网关”。
网关首先应该是个路由器,在满足此前提的基础上,网关还可以根据需要作为流量过滤器来使用,提供某些额外的可选的功能。网关常见的能力如下:
- 动态路由:根据请求路由到对应的服务上去,如果服务不可用还会有重试机制
- 负载均衡:多服务器提供同一种服务,网关会从配置中心拉取各服务注册信息,然后将请求负载均衡风阀到这些服务器进行处理
- 流量控制:限制并发请求的流量,避免内部系统受到冲击
- 安全认证:网关对相关权限验证、脱敏和流量清洗、签名和黑名单功能
- 熔断降级:当服务不可用或者访问量过大,网关可以将请求做降级,将流量打到其他服务器或者做其他处理,提示用户暂时不可用
- 灰度发布:先进行小部分服务器升级,通过网关将少量的服务路由到已升级的服务器用来测试服务是否正常,大部分请求依旧在老版本服务器上处理
- 日志服务:服务访问情况监控和统计报表,请求的吞吐量、并发数、流量监控、性能监控和日常告警等
2026/1/16大约 2 分钟
故障分类
从故障影响范围维度来看,分布式系统的故障可以分为三类:
- 集群故障:根据业务量大小而定,集群规模从几台到甚至上万台都有可能。一旦某些代码出现 bug,可能整个集群都会发生故障,不能提供对外提供服务。
- 机房故障:现在大多数互联网公司为了保证业务的高可用性,往往业务部署在不止一个机房。然而现实中,某机房的光缆因为道路施工被挖断,导致整个机房脱网的事情,也是时有发生的。并且这种事情往往容易上热搜。
- 单机故障:集群中的个别机器出现故障,这种情况往往对全局没有太大影响,但会导致调用到故障机器上的请求都失败,影响整个系统的成功率。
2022/4/20大约 8 分钟
链路追踪简介
什么是链路追踪
链路追踪系统广义的概念是:由数据采集、数据处理和数据展示三个相对独立的模块所构成的分布式追踪系统;链路追踪系统狭义的概念是:特指链路追踪的数据采集。譬如 Spring Cloud Sleuth 就属于狭义的链路追踪系统,通常会搭配 Zipkin 作为数据展示,搭配 Elasticsearch 作为数据存储来组合使用;而 Zipkin、Pinpoint、SkyWalking、CAT 都属于广义的链路追踪系统。
2022/4/20大约 14 分钟
当服务消费者与服务提供者之间建立了通信,作为管理者需要通过监控手段来观察服务是否正常,调用是否成功。服务监控是很复杂的,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。
监控的意义
- 发现问题:当系统出现问题或故障,监控系统应根据监控对象的数据异常,及时发现问题,触发告警。
- 定位问题:监控系统的告警提示,通常应该指明问题的影响范围(如某机器 IP、某机房),触发故障的内容(数据库、MQ 或某服务的某监控数据异常),触发时间等等。有了这些必要的信息,有利于工程师分析问题时缩小排查范围,更快找到问题原因。
- 解决问题:一旦分析清楚故障的原因后,就需要根据故障的重要度、紧急程度、影响范围等要素,去决定应该如何应对故障。
- 总结问题:如果发生了重大故障后,需要对故障进行复盘,总结故障的原因和应对故障时的措施,思考在事前有没有更好的防范手段;在事后的应对故障的处理有没有改进的空间。
2022/4/19大约 10 分钟