走进分布式中间件(二)

懒驴 2021年12月22日 1,674次浏览

承接上一篇:《走进分布式中间件(一)》

作为分布式系统中必不可少的组件,分布式中间件在分布式系统的发展历程中起到了关键性的作用,特别是针对高并发、高吞吐、低延迟等普遍性的需求,在中间件层面能够得到很好的解决。

1. 白话分布式中间件

中间件是一种独立的基础系统软件或者服务程序,处于操作系统软件与用户的应用软件中间,具有很好的独立性,可作为独立的软件系统运转。

比如咱们常说的Redis、RabbitMQ、ZooKeeper、Elasticsearch、Nginx,这些都是常见的中间件,可实现缓存、消息队列、分布式锁、全文搜索、负载均衡

而随着互联网的飞速发展,高吞吐、高并发、低延迟和负载均衡已成为普遍性的需求,因此,作为枢纽的中间件也从单点的“集中式”发展为“分布式”,如常见的基于Redis的分布式缓存、基于RabbitMQ的分布式消息中间件、基于ZooKeeper的分布式锁,以及基于Elasticsearch的全文搜索引擎等、


2. 常见的中间件介绍

比较常见的中间件包括Redis、Redisson、RabbitMQ、ZooKeeper、Elasticsearch、Kafka、Etcd和Nginx等。

(1)Redis简介

《Redis实战场景---缓存穿透》
Redis 是一个开源(BSD许可)的、基于内存存储、采用Key-Value(键值对)格式存储的内存数据库,支持多种数据类型,包括字符串、哈希表、列表、集合、有序集合和位图等。


(2)Redisson简介

Redisson 是“架设在Redis基础上的一个Java驻内存数据网络(In-Memory Data Grid)”,可以简单的理解为Redisson是Redis的一个升级版,它充分利用了Redis键值对数据库提供的一系列优势,为使用者提供了一系列具有分布式特性的常用工具类。
Redisson的出现使得原本作为协调单机多线程并发程序的工具包,获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度,同时也简化了分布式环境中程序相互之间的协作。
Redis在分布式系统应用过程中出现的问题,在Redisson这里能够得到很好的解决,比如关于分布式锁的处理,Redisson的处理方式则更为安全、稳定、高效。


(3)RabbitMQ简介

《消息中间件RabbitMQ(一)RabbitMQ简介》
RabbitMQ 是一款应用相当广泛并开源的消息中间件,可用于实现消息异步分发、模块解耦、接口限流等功能。特别是在处理分布式系统高并发的业务场景时,RabbitMQ能够起到很好的作用,比如接口限流。从而降低应用服务器的压力;比如消息异步分发,从而降低系统的整体响应时间。


(4)ZooKeeper简介

ZooKeeper 是一个开源的分布式应用程序协调服务,可以为分布式应用提供一致性服务,简称ZK。其提供的功能服务包括配置维护、域名服务、分布式同步等;提供的接口则包括分布式独享锁、选举、队列等。


后续工作闲暇之余,我将会对以上所提到的中间件实战详细更新分享出来,与所有读者一起交流学习。