怎么做网站文章,网站建设 doc,外贸哪些免费网站开发客户,做窗帘的厂家网站目录 一、Redis应用
二、实现方式
三、Redis应用
四、分布式系统
五、分布式系统实现
1、应用服务和数据库服务分离
2、引入负载均衡#xff0c;应用服务器集群#xff08;解决高并发#xff09;
3、引入读写分离#xff0c;数据库主从结构#xff08;解决高并发应用服务器集群解决高并发
3、引入读写分离数据库主从结构解决高并发
4、引入缓存冷热数据分离解决高并发
5、分库分表解决高数据量
6、引入微服务架构从业务上进一步拆分应用服务器
六、总结 一、Redis应用
Redis是在内存中存储数据主要应用于分布式系统如果只是单机程序直接通过变量存储数据的方式是比Redis更优的选择 二、实现方式
由于进程间隔离性进程间的通信基于网络。Redis就是基于网络可以把自己内存中的变量给别的进程甚至别的主机的进程进行使用。 三、Redis应用
1、数据库database
MySQL最大的问题在于访问速度比较慢因为数据存储在硬盘上。Redis数据存储在内存上速度快了很多。但是Redis和MySQL的业务场景不一样没办法定量的衡量到底快多少。Redis最大的劣势是存储空间是有限的。
2、缓存cache
将Redis和MySQL结合起来又打又快。Redis充当缓存的角色劣势是系统的复杂度大大提升了而且如果数据发生修改。还涉及到Redis与MySQL之间的数据同步问题。
3、streaming engine
Redis的初心最初就是用来作为一个“消息中间件”消息队列的分布式系统下的生产者消费者模型应用的很少。业界有更多更专业的消息中间件。 四、分布式系统
1、单机架构
只有一台服务器这个服务器负责所有的工作。 2、分布式
如果业务进一步增长用户量和数据都水涨船高一台主机难以应付的时候就需要引入更多的主机引入更多的硬件资源。
一台主机的硬件资源是有上限的这里的硬件资源包括但不限于以下几种CPU内存硬盘网络等等。服务器每收到一个请求都是需要消耗上述的一些资源的如果同一时刻处理的请求多了此时可能会导致某个硬件资源不够用了无论是哪个方面不够用了都可能会导致服务器请求处理的时间变长甚至与处理出错。
解决以上问题有下面两种方法
1节流
软件上优化通过性能测试。找到是哪个环节出现了瓶颈再去对症下药。
2开源简单粗暴
增加更多的硬件资源但是一个主机上面能增加的硬件资源也是有限的取决于主板的扩展能力也是有上限的。当一台主机扩展到上限了就只能引入多台主机了并且要在软件上做出相应的调整和适配。一旦引入多个主机了咱们的系统就可以被称为“分布式系统” 五、分布式系统实现
1、应用服务和数据库服务分离 2、引入负载均衡应用服务器集群解决高并发
引入更多的服务器节点请求量和数据量进一步增加 对于负载均衡器来说有很多的负载均衡具体的算法需要结合具体的业务场景。
3、引入读写分离数据库主从结构解决高并发
一个数据库节点作为主节点其他N个数据库节点作为从节点。主节点负责写数据从节点负责读数据。主节点需要把修改过的数据同步给从节点。 实际的应用场景中读的频率是要比写的概率要高的。因此主服务器一般是一个从服务器可以有多个。同时从数据库通过负载均衡的方式让应用服务器进行访问。 4、引入缓存冷热数据分离解决高并发
数据库天然有个问题相应速度很慢。把数据区分“冷热”热点数据放到缓存中。 5、分库分表解决高数据量
引入分布式系统不光要能够去应对更高的请求量并发量同时也要能应对更大的数据量。当数据量很大时就需要多台主机来存储。 6、引入微服务架构从业务上进一步拆分应用服务器 引入微服务解决了管理人的问题但是系统性能会下降。因为是网络间通信比进程间通信速度大大降低。要想保证性能不下降的太多只能引入更多的机器更多的硬件资源。并且系统复杂度更高可用性收到影响出现问题的概率就更大了。
微服务的优势 解决了人的问题 使用微服务可以更方便的完成功能的复用 可以给不同的服务进行不同的部署 六、总结
一些概念
1、应用Application/ 系统System
一个应用就是一个/组 服务器程序 2、模块Module/ 组件Component
一个应用里面有很多功能每个独立的功能就可以称为是一个模块/组件 3、分布式Distributed
引入多个主机/服务器协同完成一系列的工作物理上的多个主机 4、集群Cluster
引入多个主机/服务器协同完成一系列的工作逻辑上的多个主机 5、主Master/ 从Slave
多个服务器节点其中一个是主另外的是从。从节点的数据要从主节点这里同步过来。 6、中间件Middleware
和业务无关的服务功能更通用的服务
例如 数据库 缓存 消息队列 ....... 7、可用性Availability
系统整体可用时间 / 总的时间 是一个系统的第一要务
8、 响应时长衡量服务器的性能
9、吞吐衡量系统处理请求的能力 总结所谓的分布式系统就是想办法引入更多的硬件资源