程序员知识图谱

本文概述了计算机基础、操作系统、数据结构、算法、计算机网络等基础知识,以及分布式服务架构中的关键组件,如服务注册与发现、配置中心、搜索、消息传递、负载均衡、服务调用、缓存、流量管理和安全性解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 计算机基础

  1. 操作系统:操作系统是管理计算机硬件和软件资源的系统软件,包括 Windows、Linux、macOS 等。操作系统负责管理进程、文件系统、内存、网络等资源,是计算机系统的核心。
  2. 数据结构:数据结构是组织和存储数据的方式,包括数组、链表、栈、队列、树、图等。数据结构对于设计和实现高效的算法非常重要,是计算机科学的基础之一。
  3. 算法:算法是解决问题的一系列步骤和规则,包括排序、搜索、图算法等。了解和掌握算法可以帮助解决复杂的计算问题,并提高程序的效率和性能。
  4. 计算机网络:计算机网络是连接计算机和设备的通信系统,包括局域网、广域网、互联网等。了解计算机网络可以帮助理解网络通信原理、协议和安全性。

2 分布式注册中心

  1. Netflix Eureka:Netflix Eureka 是 Netflix 开源的一款服务发现组件,可以用作分布式注册中心,帮助服务实例注册和发现,支持高可用和负载均衡。
  2. Consul:Consul 是一款开源的服务发现和配置中心工具,也可以用作分布式注册中心,提供服务注册、健康检查、负载均衡等功能。
  3. Apache ZooKeeper:Apache ZooKeeper 是一个分布式协调服务,可以用作分布式注册中心,帮助服务实例注册和发现,并提供一致性保证和监控功能。
  4. etcd:etcd 是一个分布式键值存储系统,也可以用作分布式注册中心,提供服务注册、发现和配置管理等功能,支持强一致性和高可用。
  5. Spring Cloud Netflix:Spring Cloud Netflix 是 Spring Cloud 提供的一套集成 Netflix OSS 组件的工具,包括 Eureka、Ribbon、Hystrix 等,可以用于构建基于微服务架构的应用,并实现服务注册和发现。

3 分布式配置中心

  1. Spring Cloud Config:Spring Cloud Config 是一个基于 Spring Cloud 的分布式配置中心,可以将应用程序的配置信息存储在版本控制系统中(如 Git),并提供 REST API 接口供应用程序获取配置信息。
  2. Apache ZooKeeper:Apache ZooKeeper 是一个开源的分布式协调服务,可以用作分布式配置中心,存储和管理系统的配置信息,并提供监控和通知功能。
  3. Consul:Consul 是一个开源的服务发现和配置中心工具,可以用作分布式系统的配置中心,支持多数据中心、健康检查和动态配置更新。
  4. Etcd:Etcd 是一个分布式键值存储系统,可以用作分布式配置中心,提供强一致性的配置存储和更新机制,支持分布式事务和监控功能。
  5. Apollo:Apollo 是携程开源的一款企业级配置中心,支持多环境、多版本的配置管理,提供配置修改历史记录、权限控制等功能。

4 搜索中间件

  1. Elasticsearch:Elasticsearch 是一个开源的分布式搜索引擎,基于 Apache Lucene 构建,支持全文搜索、实时搜索、分布式搜索等功能,可以用于构建各种类型的搜索应用。
  2. Apache Solr:Apache Solr 是一个基于 Apache Lucene 的开源搜索平台,提供了丰富的搜索功能和配置选项,支持多种数据格式和查询方式。
  3. Algolia:Algolia 是一个托管的搜索服务提供商,提供了强大的搜索 API 和工具,可以快速集成到应用中,支持实时搜索、自定义排名等功能。
  4. Amazon Elasticsearch Service:Amazon Elasticsearch Service 是亚马逊提供的托管 Elasticsearch 服务,可以轻松部署和管理 Elasticsearch 集群,支持实时分析和搜索。
  5. Sphinx:Sphinx 是一个开源的全文搜索引擎,支持高性能的全文搜索和实时索引更新,适用于构建中小型的搜索应用。

5 消息中间件

  1. Apache Kafka:Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据流应用程序和数据管道。它支持高吞吐量、可持久化的消息传递,并具有良好的可伸缩性和容错性。
  2. RabbitMQ:RabbitMQ 是一个开源的消息代理软件,实现了高级消息队列协议(AMQP),支持消息的可靠传递、发布/订阅模式、消息确认等特性。
  3. Apache ActiveMQ:Apache ActiveMQ 是一个流行的开源消息中间件,实现了多种消息协议,包括 JMS(Java Message Service),支持队列和主题模式。
  4. Redis Pub/Sub:Redis 也可以用作消息中间件,通过其发布/订阅功能实现消息传递。Redis 的发布/订阅功能支持多个订阅者,可以用于实现简单的消息通信。
  5. Amazon SQS:Amazon Simple Queue Service(SQS)是亚马逊提供的一种托管消息队列服务,可以用于在分布式系统中实现消息传递和解耦。

6 服务调用

  1. Apache Dubbo:Apache Dubbo 是一款高性能、轻量级的开源 RPC 框架,支持多种协议和负载均衡算法,可以用于实现服务之间的远程调用。
  2. Spring Cloud:Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供了诸如服务注册与发现、负载均衡、断路器、网关等功能,可以用于构建分布式系统中的服务调用和通信。
  3. gRPC:gRPC 是一个高性能、开源的 RPC 框架,基于 Protocol Buffers 进行通信,支持多种语言和平台,可以用于实现跨语言的服务调用。
  4. Apache Thrift:Apache Thrift 是一个跨语言的远程服务调用框架,支持多种通信协议和序列化格式,可以用于实现高效的服务调用和数据传输。
  5. Netflix Feign:Feign 是 Netflix 开发的一个声明式的 HTTP 客户端框架,可以与 Netflix Eureka 等组件集成,简化服务之间的调用和通信。
  6. Netty: Netty 项目致力于提供一个异步事件驱动的网络应用框架和工具,用于快速开发可维护的高性能和高可伸缩性协议服务器和客户端
  7. Motan: Motan 是微博在2016年8月开源的用于高性能分布式服务快速开发的 RPC 框架, 但是也兼具基本的服务化框架的功能

7 缓存中间件

  1. Redis:Redis 是一个高性能的内存数据库,也可以用作缓存服务器。Redis 支持多种数据结构和功能,可以用于实现缓存、消息队列、会话存储等功能。
  2. Memcached:Memcached 是一个高性能的分布式内存对象缓存系统,可以用于在 Web 应用中实现缓存功能,支持简单的键值存储和缓存过期策略。
  3. Ehcache:Ehcache 是一个开源的 Java 缓存框架,可以用于在 Java 应用中实现本地缓存和分布式缓存功能,支持多种缓存策略和配置选项。
  4. Guava Cache:Guava Cache 是 Google Guava 提供的一个本地缓存库,可以用于在 Java 应用中实现本地缓存功能,支持缓存过期、最大缓存大小等配置。
  5. Couchbase:Couchbase 是一个分布式 NoSQL 数据库,也可以用作缓存服务器。Couchbase 支持内存缓存和磁盘缓存,可以用于实现高性能的缓存功能。

8 负载均衡

  1. Nginx:Nginx 是一个高性能的反向代理服务器,可以用于在 Web 应用中实现负载均衡、反向代理、缓存等功能,支持多种负载均衡算法和配置选项。
  2. HAProxy:HAProxy 是一个高性能的负载均衡器,可以用于在 TCP 和 HTTP 应用中实现负载均衡、健康检查、故障转移等功能,支持多种负载均衡算法。
  3. Apache HTTP Server:Apache HTTP Server 也可以用作反向代理服务器和负载均衡器,通过模块如 mod_proxy 实现负载均衡和反向代理功能。
  4. AWS Elastic Load Balancing:AWS 提供的 Elastic Load Balancing 服务可以用于在云环境中实现负载均衡,支持多种负载均衡算法和自动扩展功能。
  5. Traefik:Traefik 是一个现代化的反向代理和负载均衡器,可以用于在容器化环境中实现负载均衡、自动服务发现等功能,支持多种后端服务和配置选项。

9 服务保障

  1. Hystrix:Hystrix 是 Netflix 提供的容错管理库,可以用于在分布式系统中实现服务的保护和容错处理,支持断路器模式、超时控制、线程池隔离等功能。
  2. Sentinel:Sentinel 是阿里巴巴开源的流量控制和服务保护框架,可以用于在微服务架构中实现实时流量控制、熔断降级、系统负载保护等功能。
  3. Resilience4j:Resilience4j 是一个轻量级的容错库,可以用于在 Java 应用中实现断路器、限流、重试等功能,支持多种容错策略和配置。
  4. CircuitBreaker:CircuitBreaker 是一个开源的断路器库,可以用于在 Python 应用中实现断路器模式,保护服务免受故障影响。
  5. Kong:Kong 是一个开源的 API 网关和服务网格,可以用于在微服务架构中实现服务发现、负载均衡、安全认证等功能,保障服务的可用性和稳定性。

10 安全&授权

  1. Spring Security:Spring Security 是 Spring 提供的安全框架,可以用于在 Java 应用中实现身份验证、授权、安全配置等功能,支持基于角色的访问控制、OAuth 认证、JWT 签发等功能。
  2. Keycloak:Keycloak 是一个开源的身份和访问管理解决方案,可以用于在应用中实现单点登录、多因素认证、用户管理等功能,支持 OAuth、OpenID Connect 等标准协议。
  3. Auth0:Auth0 是一个身份认证和授权服务提供商,可以帮助开发人员实现身份验证、单点登录、社交登录等功能,支持多种身份验证方式和标准协议。
  4. Apache Shiro:Apache Shiro 是一个开源的安全框架,可以用于在 Java 应用中实现身份认证、授权、加密解密等功能,支持基于角色的访问控制、会话管理等功能。
  5. Firebase Authentication:Firebase Authentication 是 Google 提供的身份认证服务,可以用于在应用中实现用户身份验证、匿名登录、第三方登录等功能,支持多种身份验证方式。

11 微服务

Spring Cloud Alibaba

12 任务调度

  1. Apache Airflow:Apache Airflow 是一个开源的工作流自动化和调度系统,可以用于编排复杂的工作流程,支持定时任务调度、依赖管理、任务重试等功能。
  2. Quartz:Quartz 是一个开源的任务调度框架,可以用于在 Java 应用中实现定时任务调度,支持灵活的任务调度配置、任务执行监控等功能。
  3. Celery:Celery 是一个分布式任务队列,可以用于在 Python 应用中实现异步任务调度,支持定时任务、任务依赖、任务重试等功能。
  4. Elastic Job:Elastic Job 是当当开源的分布式任务调度框架,基于 ZooKeeper 和 Spring Cloud 实现,支持分布式任务调度、任务分片、动态扩缩容等功能。
  5. Spring Batch:Spring Batch 是 Spring 提供的批处理框架,可以用于处理大批量数据任务,支持任务分片、任务重试、事务管理等功能。
  6. XXL-JOB: XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用

13 分布式预警监控

  1. Prometheus:Prometheus 是一个开源的监控系统和时间序列数据库,可以用于记录和查询系统的指标数据,并支持报警功能。它可以与 Grafana 结合使用,实现可视化监控和报警。
  2. Grafana:Grafana 是一个开源的数据可视化和监控工具,可以与多种数据源集成,包括 Prometheus、InfluxDB 等,用于实时监控系统的指标数据并设置报警规则。
  3. Zabbix:Zabbix 是一个开源的网络监控系统,支持分布式监控和报警功能,可以监控服务器、网络设备、应用程序等各种指标,并通过邮件、短信等方式发送报警通知。
  4. Nagios:Nagios 是一个开源的主机和服务监控系统,支持分布式监控和报警功能,可以监控网络、服务器、应用程序等各种指标,并通过邮件、短信等方式发送报警通知。
  5. ELK Stack:ELK Stack 是 Elastic 公司提供的一套开源的日志管理和数据分析平台,包括 Elasticsearch、Logstash、Kibana 等组件,可以用于收集、分析和可视化日志数据,并设置报警规则。

14 分布式链路追踪

  1. Pinpoint: Pinpoint 是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据,用于基于 Java 的大规模分布式系统
  2. SkyWalking: Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等
  3. Zipkin:Zipkin 是一个开源的分布式链路追踪系统,由 Twitter 开发,后来捐赠给了 Apache 软件基金会。它可以帮助跟踪请求在分布式系统中的传递路径和性能数据
  4. Spring Cloud Sleuth:Spring Cloud Sleuth 是 Spring Cloud 提供的分布式链路追踪解决方案,可以集成到 Spring Cloud 应用中,帮助跟踪请求在微服务架构中的传递路径

15 分布式事务

  1. Seata:Seata 是一个开源的分布式事务解决方案,提供了分布式事务的管理和协调功能,支持多种事务模式(AT、TCC、SAGA),可以与各种数据库和 RPC 框架集成。
  2. TX-LCN:TX-LCN 是蚂蚁金服开源的分布式事务解决方案,基于 TCC(Try-Confirm-Cancel)模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
  3. Hmily:Hmily 是华为开源的分布式事务解决方案,基于 TCC 模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
  4. ByteTCC:ByteTCC 是当当开源的分布式事务解决方案,基于 TCC 模式,提供了分布式事务的管理和协调功能,支持多种数据库和 RPC 框架。
  5. TCC-Transaction: TCC-transaction 是开源的TCC补偿性分布式事务框架,使用Java实现,不和底层使用的rpc框架耦合,可以使用doubbo,thrift,web service,http等接口;官网:https://changmingxie.github.io/zh-cn/

16 分布式网关

  1. Kong:Kong 是一个开源的云原生 API 网关,基于 Nginx 构建,提供了丰富的插件和扩展性,支持灵活的路由和认证方式。
  2. API Gateway:AWS 提供的托管服务,用于构建、部署和管理 API。它提供了丰富的功能,如请求转发、认证、授权、监控等。
  3. Spring Cloud Gateway:Spring Cloud 项目中的网关组件,基于 Spring Framework 和 Spring Boot 构建,支持动态路由、断路器、限流等功能。
  4. Istio:Istio 是一个开源的服务网格解决方案,提供了强大的流量管理、安全性、监控等功能,其中的 Envoy 代理可以用作网关。
  5. Traefik:Traefik 是一个现代的反向代理和负载均衡器,支持自动发现、动态配置、HTTPS、Websockets 等特性。
  6. Envoy Proxy:Envoy 是一个高性能的边缘和服务代理,可以作为网关使用,支持负载均衡、流量管理、故障恢复等功能。
  7. NGINX:Nginx 是一个高性能的反向代理服务器,也可以用作网关,支持负载均衡、缓存、SSL 终止等功能。
  8. Spring Cloud Zuul:是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,支持动态路由与过滤功能
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值