1 计算机基础
- 操作系统:操作系统是管理计算机硬件和软件资源的系统软件,包括 Windows、Linux、macOS 等。操作系统负责管理进程、文件系统、内存、网络等资源,是计算机系统的核心。
- 数据结构:数据结构是组织和存储数据的方式,包括数组、链表、栈、队列、树、图等。数据结构对于设计和实现高效的算法非常重要,是计算机科学的基础之一。
- 算法:算法是解决问题的一系列步骤和规则,包括排序、搜索、图算法等。了解和掌握算法可以帮助解决复杂的计算问题,并提高程序的效率和性能。
- 计算机网络:计算机网络是连接计算机和设备的通信系统,包括局域网、广域网、互联网等。了解计算机网络可以帮助理解网络通信原理、协议和安全性。
2 分布式注册中心
- Netflix Eureka:Netflix Eureka 是 Netflix 开源的一款服务发现组件,可以用作分布式注册中心,帮助服务实例注册和发现,支持高可用和负载均衡。
- Consul:Consul 是一款开源的服务发现和配置中心工具,也可以用作分布式注册中心,提供服务注册、健康检查、负载均衡等功能。
- Apache ZooKeeper:Apache ZooKeeper 是一个分布式协调服务,可以用作分布式注册中心,帮助服务实例注册和发现,并提供一致性保证和监控功能。
- etcd:etcd 是一个分布式键值存储系统,也可以用作分布式注册中心,提供服务注册、发现和配置管理等功能,支持强一致性和高可用。
- Spring Cloud Netflix:Spring Cloud Netflix 是 Spring Cloud 提供的一套集成 Netflix OSS 组件的工具,包括 Eureka、Ribbon、Hystrix 等,可以用于构建基于微服务架构的应用,并实现服务注册和发现。
3 分布式配置中心
- Spring Cloud Config:Spring Cloud Config 是一个基于 Spring Cloud 的分布式配置中心,可以将应用程序的配置信息存储在版本控制系统中(如 Git),并提供 REST API 接口供应用程序获取配置信息。
- Apache ZooKeeper:Apache ZooKeeper 是一个开源的分布式协调服务,可以用作分布式配置中心,存储和管理系统的配置信息,并提供监控和通知功能。
- Consul:Consul 是一个开源的服务发现和配置中心工具,可以用作分布式系统的配置中心,支持多数据中心、健康检查和动态配置更新。
- Etcd:Etcd 是一个分布式键值存储系统,可以用作分布式配置中心,提供强一致性的配置存储和更新机制,支持分布式事务和监控功能。
- Apollo:Apollo 是携程开源的一款企业级配置中心,支持多环境、多版本的配置管理,提供配置修改历史记录、权限控制等功能。
4 搜索中间件
- Elasticsearch:Elasticsearch 是一个开源的分布式搜索引擎,基于 Apache Lucene 构建,支持全文搜索、实时搜索、分布式搜索等功能,可以用于构建各种类型的搜索应用。
- Apache Solr:Apache Solr 是一个基于 Apache Lucene 的开源搜索平台,提供了丰富的搜索功能和配置选项,支持多种数据格式和查询方式。
- Algolia:Algolia 是一个托管的搜索服务提供商,提供了强大的搜索 API 和工具,可以快速集成到应用中,支持实时搜索、自定义排名等功能。
- Amazon Elasticsearch Service:Amazon Elasticsearch Service 是亚马逊提供的托管 Elasticsearch 服务,可以轻松部署和管理 Elasticsearch 集群,支持实时分析和搜索。
- Sphinx:Sphinx 是一个开源的全文搜索引擎,支持高性能的全文搜索和实时索引更新,适用于构建中小型的搜索应用。
5 消息中间件
- Apache Kafka:Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据流应用程序和数据管道。它支持高吞吐量、可持久化的消息传递,并具有良好的可伸缩性和容错性。
- RabbitMQ:RabbitMQ 是一个开源的消息代理软件,实现了高级消息队列协议(AMQP),支持消息的可靠传递、发布/订阅模式、消息确认等特性。
- Apache ActiveMQ:Apache ActiveMQ 是一个流行的开源消息中间件,实现了多种消息协议,包括 JMS(Java Message Service),支持队列和主题模式。
- Redis Pub/Sub:Redis 也可以用作消息中间件,通过其发布/订阅功能实现消息传递。Redis 的发布/订阅功能支持多个订阅者,可以用于实现简单的消息通信。
- Amazon SQS:Amazon Simple Queue Service(SQS)是亚马逊提供的一种托管消息队列服务,可以用于在分布式系统中实现消息传递和解耦。
6 服务调用
- Apache Dubbo:Apache Dubbo 是一款高性能、轻量级的开源 RPC 框架,支持多种协议和负载均衡算法,可以用于实现服务之间的远程调用。
- Spring Cloud:Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供了诸如服务注册与发现、负载均衡、断路器、网关等功能,可以用于构建分布式系统中的服务调用和通信。
- gRPC:gRPC 是一个高性能、开源的 RPC 框架,基于 Protocol Buffers 进行通信,支持多种语言和平台,可以用于实现跨语言的服务调用。
- Apache Thrift:Apache Thrift 是一个跨语言的远程服务调用框架,支持多种通信协议和序列化格式,可以用于实现高效的服务调用和数据传输。
- Netflix Feign:Feign 是 Netflix 开发的一个声明式的 HTTP 客户端框架,可以与 Netflix Eureka 等组件集成,简化服务之间的调用和通信。
- Netty: Netty 项目致力于提供一个异步事件驱动的网络应用框架和工具,用于快速开发可维护的高性能和高可伸缩性协议服务器和客户端
- Motan: Motan 是微博在2016年8月开源的用于高性能分布式服务快速开发的 RPC 框架, 但是也兼具基本的服务化框架的功能
7 缓存中间件
- Redis:Redis 是一个高性能的内存数据库,也可以用作缓存服务器。Redis 支持多种数据结构和功能,可以用于实现缓存、消息队列、会话存储等功能。
- Memcached:Memcached 是一个高性能的分布式内存对象缓存系统,可以用于在 Web 应用中实现缓存功能,支持简单的键值存储和缓存过期策略。
- Ehcache:Ehcache 是一个开源的 Java 缓存框架,可以用于在 Java 应用中实现本地缓存和分布式缓存功能,支持多种缓存策略和配置选项。
- Guava Cache:Guava Cache 是 Google Guava 提供的一个本地缓存库,可以用于在 Java 应用中实现本地缓存功能,支持缓存过期、最大缓存大小等配置。
- Couchbase:Couchbase 是一个分布式 NoSQL 数据库,也可以用作缓存服务器。Couchbase 支持内存缓存和磁盘缓存,可以用于实现高性能的缓存功能。
8 负载均衡
- Nginx:Nginx 是一个高性能的反向代理服务器,可以用于在 Web 应用中实现负载均衡、反向代理、缓存等功能,支持多种负载均衡算法和配置选项。
- HAProxy:HAProxy 是一个高性能的负载均衡器,可以用于在 TCP 和 HTTP 应用中实现负载均衡、健康检查、故障转移等功能,支持多种负载均衡算法。
- Apache HTTP Server:Apache HTTP Server 也可以用作反向代理服务器和负载均衡器,通过模块如 mod_proxy 实现负载均衡和反向代理功能。
- AWS Elastic Load Balancing:AWS 提供的 Elastic Load Balancing 服务可以用于在云环境中实现负载均衡,支持多种负载均衡算法和自动扩展功能。
- Traefik:Traefik 是一个现代化的反向代理和负载均衡器,可以用于在容器化环境中实现负载均衡、自动服务发现等功能,支持多种后端服务和配置选项。
9 服务保障
- Hystrix:Hystrix 是 Netflix 提供的容错管理库,可以用于在分布式系统中实现服务的保护和容错处理,支持断路器模式、超时控制、线程池隔离等功能。
- Sentinel:Sentinel 是阿里巴巴开源的流量控制和服务保护框架,可以用于在微服务架构中实现实时流量控制、熔断降级、系统负载保护等功能。
- Resilience4j:Resilience4j 是一个轻量级的容错库,可以用于在 Java 应用中实现断路器、限流、重试等功能,支持多种容错策略和配置。
- CircuitBreaker:CircuitBreaker 是一个开源的断路器库,可以用于在 Python 应用中实现断路器模式,保护服务免受故障影响。
- Kong:Kong 是一个开源的 API 网关和服务网格,可以用于在微服务架构中实现服务发现、负载均衡、安全认证等功能,保障服务的可用性和稳定性。
10 安全&授权
- Spring Security:Spring Security 是 Spring 提供的安全框架,可以用于在 Java 应用中实现身份验证、授权、安全配置等功能,支持基于角色的访问控制、OAuth 认证、JWT 签发等功能。
- Keycloak:Keycloak 是一个开源的身份和访问管理解决方案,可以用于在应用中实现单点登录、多因素认证、用户管理等功能,支持 OAuth、OpenID Connect 等标准协议。
- Auth0:Auth0 是一个身份认证和授权服务提供商,可以帮助开发人员实现身份验证、单点登录、社交登录等功能,支持多种身份验证方式和标准协议。
- Apache Shiro:Apache Shiro 是一个开源的安全框架,可以用于在 Java 应用中实现身份认证、授权、加密解密等功能,支持基于角色的访问控制、会话管理等功能。
- Firebase Authentication:Firebase Authentication 是 Google 提供的身份认证服务,可以用于在应用中实现用户身份验证、匿名登录、第三方登录等功能,支持多种身份验证方式。
11 微服务
Spring Cloud Alibaba
12 任务调度
- Apache Airflow:Apache Airflow 是一个开源的工作流自动化和调度系统,可以用于编排复杂的工作流程,支持定时任务调度、依赖管理、任务重试等功能。
- Quartz:Quartz 是一个开源的任务调度框架,可以用于在 Java 应用中实现定时任务调度,支持灵活的任务调度配置、任务执行监控等功能。
- Celery:Celery 是一个分布式任务队列,可以用于在 Python 应用中实现异步任务调度,支持定时任务、任务依赖、任务重试等功能。
- Elastic Job:Elastic Job 是当当开源的分布式任务调度框架,基于 ZooKeeper 和 Spring Cloud 实现,支持分布式任务调度、任务分片、动态扩缩容等功能。
- Spring Batch:Spring Batch 是 Spring 提供的批处理框架,可以用于处理大批量数据任务,支持任务分片、任务重试、事务管理等功能。
- XXL-JOB: XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用
13 分布式预警监控
- Prometheus:Prometheus 是一个开源的监控系统和时间序列数据库,可以用于记录和查询系统的指标数据,并支持报警功能。它可以与 Grafana 结合使用,实现可视化监控和报警。
- Grafana:Grafana 是一个开源的数据可视化和监控工具,可以与多种数据源集成,包括 Prometheus、InfluxDB 等,用于实时监控系统的指标数据并设置报警规则。
- Zabbix:Zabbix 是一个开源的网络监控系统,支持分布式监控和报警功能,可以监控服务器、网络设备、应用程序等各种指标,并通过邮件、短信等方式发送报警通知。
- Nagios:Nagios 是一个开源的主机和服务监控系统,支持分布式监控和报警功能,可以监控网络、服务器、应用程序等各种指标,并通过邮件、短信等方式发送报警通知。
- ELK Stack:ELK Stack 是 Elastic 公司提供的一套开源的日志管理和数据分析平台,包括 Elasticsearch、Logstash、Kibana 等组件,可以用于收集、分析和可视化日志数据,并设置报警规则。
14 分布式链路追踪
- Pinpoint: Pinpoint 是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据,用于基于 Java 的大规模分布式系统
- SkyWalking: Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等
- Zipkin:Zipkin 是一个开源的分布式链路追踪系统,由 Twitter 开发,后来捐赠给了 Apache 软件基金会。它可以帮助跟踪请求在分布式系统中的传递路径和性能数据
- Spring Cloud Sleuth:Spring Cloud Sleuth 是 Spring Cloud 提供的分布式链路追踪解决方案,可以集成到 Spring Cloud 应用中,帮助跟踪请求在微服务架构中的传递路径
15 分布式事务
- Seata:Seata 是一个开源的分布式事务解决方案,提供了分布式事务的管理和协调功能,支持多种事务模式(AT、TCC、SAGA),可以与各种数据库和 RPC 框架集成。
- TX-LCN:TX-LCN 是蚂蚁金服开源的分布式事务解决方案,基于 TCC(Try-Confirm-Cancel)模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
- Hmily:Hmily 是华为开源的分布式事务解决方案,基于 TCC 模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
- ByteTCC:ByteTCC 是当当开源的分布式事务解决方案,基于 TCC 模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
- TCC-Transaction: TCC-transaction 是开源的TCC补偿性分布式事务框架,使用Java实现,不和底层使用的rpc框架耦合,可以使用doubbo,thrift,web service,http等接口;官网:https://changmingxie.github.io/zh-cn/
16 分布式网关
- Kong:Kong 是一个开源的云原生 API 网关,基于 Nginx 构建,提供了丰富的插件和扩展性,支持灵活的路由和认证方式。
- API Gateway:AWS 提供的托管服务,用于构建、部署和管理 API。它提供了丰富的功能,如请求转发、认证、授权、监控等。
- Spring Cloud Gateway:Spring Cloud 项目中的网关组件,基于 Spring Framework 和 Spring Boot 构建,支持动态路由、断路器、限流等功能。
- Istio:Istio 是一个开源的服务网格解决方案,提供了强大的流量管理、安全性、监控等功能,其中的 Envoy 代理可以用作网关。
- Traefik:Traefik 是一个现代的反向代理和负载均衡器,支持自动发现、动态配置、HTTPS、Websockets 等特性。
- Envoy Proxy:Envoy 是一个高性能的边缘和服务代理,可以作为网关使用,支持负载均衡、流量管理、故障恢复等功能。
- NGINX:Nginx 是一个高性能的反向代理服务器,也可以用作网关,支持负载均衡、缓存、SSL 终止等功能。
- Spring Cloud Zuul:是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,支持动态路由与过滤功能