分布式及中间件

1.分布式及中间件

分布式特点:
高吞吐,强扩展,高并发,低延迟,灵活部署

分布式中间件:
处于操作系统软件与用户的应用软件中间。

分布式例如基于Redis的分布式缓存,基于RabbitMQ分布式消息中间件,基于Elasticsearch的分布式全文搜索引擎,基于ZooKeeper的分布式锁等。

分布式发展历程
1.单点集中式Web应用

分布式及中间件_第1张图片
2.应用与文件服务及数据库单独拆分
分布式及中间件_第2张图片
3.引入缓存与集群,改善系统整体性能
分布式及中间件_第3张图片
**引入缓存:**把大量用户的读请求引导至缓存,而写操作仍然直接写到数据库DB中。

**引入集群:**目的在于减少单台服务器的压力,常见手段是Nginx+Lvs,使多台应用服务器构成负载均衡,减少单机的负载压力。

4.数据库读写分离,并提供反向代理以及CDN加速访问服务
例子1:你需要一百万,然后张三认识一个人能借给你,借他的手你借到钱。你用完之后要还钱也是还给张三,然后再让张三还给有钱人,因为张三是你们中间的代理。整个过程中张三是对于“你”的一个正向代理。

例子2:你还是需要一百万,你不认识别人,于是在网上找了一个网贷公司去借钱,你换钱的时候也要连本带利的还网贷公司。这个过程中网贷公司这个平台就是代理,网贷公司可能是找李四借的一百万然后赚差价,但都与你无关,因为你只要钱就可以了。所以这种不需要知道对方的类似情况叫做反向代理。反向代理隐藏了真实的服务端(双方不需要知道对方的情况)

两者区别在于,正向代理的对象是客户端,反向代理的对象是服务端。
分布式及中间件_第4张图片

分布式系统发展历程–数据库读写分离并提供反向代理CDN加速访问服务

5.分布式文件系统与分布式数据库
分布式及中间件_第5张图片
数据库常见因素

1.网络不可靠
2.节点故障无法避免

Redis:开源(BSD许可)的,基于内存存储,采用Key-Value(键值对)格式存储的内存数据库,支持字符串,哈希表,列表,集合,有序集合,位图等。

Redission:架设在Redis基础上的一个Java柱内存数据网络,为使用者提供一系列具有分布式特性的常用工具类。

RabbitMQ:用于实现消息异步分发,模块解耦,接口限流等功能。

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

你可能感兴趣的:(分布式,分布式)