缓存、数据库、搜索引擎、消息队列

缓存、数据库、搜索引擎、消息队列这四者都是应用依赖的后端基础服务,他们的性能直接影响到了应用的整体性能,有时候你代码写的再好也许就是因为这些服务导致应用性能无法提升上去。

缓存: 缓存通常被用来解决热点数据的访问问题,是提高数据查询性能的强大武器。在高并发的后端应用中,将数据持久层的数据加载到缓存中,能够隔离高并发请求与后端数据库,避免数据库被大量请求击垮。目前常用的除了在内存中的本地缓存,比较普遍的集中缓存软件有 Memcached 和 Redis。其中 Redis 已经成为最主流的缓存软件。
数据库:数据库可以说是后端应用最基本的基础设施。基本上绝大多数业务数据都是持久化存储在数据库中的。主流的数据库包括传统的关系型数据库(MySQL、PostgreSQL)以及最近几年开始流行的 NoSQL(MongoDB、HBase)。其中 HBase 是用于大数据领域的列数据库,受限于其查询性能,一般并不用来做业务数据库。
搜索引擎:搜索引擎是针对全文检索以及数据各种维度查询设计的软件。目前用的比较多的开源软件是 Solr 和 Elasticsearch,都是基于 Lucence 来实现的,不同之处主要在于 termIndex 的存储、分布式架构的支持等。Elasticsearch 由于对集群的良好支持以及高性能的实现,已经逐渐成为搜索引擎的主流开源方案。
消息队列:数据传输的一种方式就是通过消息队列。目前用的比较普遍的消息队列包括为日志设计的 Kafka 以及重事务的 RabbitMQ 等。在对消息丢失不是特别敏感且并不要求消息事务的场景下,选择 Kafka 能够获得更高的性能;否则,RabbitMQ 则是更好的选择。此外,ZeroMQ 则是一种实现消息队列的网络编程 Pattern 库,位于 Socket 之上,MQ 之下。

相关推荐
RestCloud26 分钟前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
得物技术3 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
可涵不会debug7 小时前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom7 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
麦兜*8 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Slaughter信仰8 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库
麦兜*8 小时前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
-Xie-8 小时前
Mysql杂志(十六)——缓存池
数据库·mysql·缓存
七夜zippoe8 小时前
缓存与数据库一致性实战手册:从故障修复到架构演进
数据库·缓存·架构