开源框架或组件


开源框架或组件

消息队列

Kafka、RabbitMQ、ActiveMQ等。

  • Kafka:高吞吐量、分布式消息队列。
  • RabbitMQ:支持多种协议、灵活的消息队列。
  • ActiveMQ:支持JMS、持久化的消息队列。

BRPC

百度开源的RPC框架。

  • 特点:高性能、易用、支持多种协议。
  • 适用场景:分布式系统、微服务架构。

Redis

内存数据库,支持多种数据结构。

  • 特点:高性能、支持持久化、丰富的数据结构。
  • 适用场景:缓存、消息队列、排行榜。

Nginx

高性能HTTP服务器和反向代理服务器。

  • 特点:高并发、低内存占用、模块化设计。
  • 适用场景:Web服务器、反向代理、负载均衡。

Zookeeper

分布式协调服务。

  • 特点:高可用、强一致性、支持临时节点。
  • 适用场景:分布式锁、配置管理、服务发现。

应用场景

如何构建一个秒杀系统

高并发处理、限流、缓存、异步处理等。

  • 高并发处理:使用负载均衡、分布式缓存、数据库分库分表。
  • 限流:使用令牌桶、漏桶算法,防止系统过载。
  • 缓存:使用Redis缓存热点数据,减轻数据库压力。
  • 异步处理:使用消息队列、异步任务,减少请求响应时间。

如何构建一个大型高并发的应用(如网站)

负载均衡、分布式缓存、数据库分库分表、异步处理等。

  • 负载均衡:使用Nginx、HAProxy分发请求,均衡服务器负载。
  • 分布式缓存:使用Redis缓存热点数据,提高访问速度。
  • 数据库分库分表:将数据分散到多个数据库、表中,提高性能。
  • 异步处理:使用消息队列、异步任务,减少请求响应时间。

内存分配器了解下,如tcmalloc, jemalloc

  • tcmalloc:Google开源的高效内存分配器。

    • 特点:高效、低延迟、减少内存碎片。
    • 适用场景:高性能应用、服务器程序。
    • 优点
      • 高效的内存分配和释放。
      • 减少内存碎片。
      • 低延迟,适用于高并发场景。
    • 缺点
      • 在某些情况下,内存使用量较大。
      • 不适用于所有应用场景。
  • jemalloc:Facebook开源的高效内存分配器。

    • 特点:高效、低延迟、减少内存碎片。
    • 适用场景:高性能应用、服务器程序。
    • 优点
      • 更好的内存使用效率。
      • 减少内存碎片。
      • 适用于多线程环境。
    • 缺点
      • 复杂性较高,配置和调优需要更多经验。
      • 在某些情况下,性能可能不如tcmalloc。
  • 区别

    • 内存使用效率:jemalloc在内存使用效率上通常优于tcmalloc,特别是在多线程环境下。
    • 延迟:tcmalloc在低延迟方面表现更好,适用于高并发场景。
    • 碎片管理:两者都能有效减少内存碎片,但实现方式不同,具体效果视应用场景而定。
    • 配置和调优:jemalloc的配置和调优更复杂,需要更多经验,而tcmalloc相对简单。

文章作者: xucanxx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xucanxx !
  目录