声明:图片是嫖来的!
(1)服务器之间的异步通信:使用分布式架构之后,服务之间的通信都是同步的,在一些不是核心的功能上可以用异步通信;以加快处理速度,提高响应;(原因就是某一些模块可以不用那么实时,比如日志模块,当你在使用日志模块的时候呢,可以不用等它打印完再进行下一步,完全可以异步来,让他自己先打印着;再比如商家接单的时候,用户也不会在哪里转圈,等着商家接单)
为了实现服务器之间的异步通信,可以采用RabbitMQ等消息队列中间件;
(2)服务之间通信地址的维护:
越来越多的模块,越来越多的机器,这么多的IP地址,那么如何管理与维护通信地址? 使用Eureka,实际上他就是一个注册中心;
Robbin实现服务之间的负载均衡;为什么呢?因为到了后期,Nginx只能负责到Colleroller这里的负载均衡了,后面的哪些Service + Dao 等模块Nginx无法进行负责;所以就需要Robbin来相互配合进行负载均衡;
························································································································
(3)服务降级:某一个模块宕机了,发送请求没有响应了,但是后面还有许许多多的请求都等着呢,如果持续下去会造成一个连锁反应,该怎么办呢? 就需要一个应急方案,就是服务降级,好歹给个响应;但是给的也绝对不是正常的响应;
解决方法:采用Hystrix处理,Hystrix提供了线程池隔离的方式,避免服务器线程池耗尽;在一个服务无法使用时,提供断路器的方式来处理问题服务,从而执行降级方法,返回托底数据; 断路器+隔离
说明:Eureka,Robbin,Hystrix 都是SpringCloud技术栈中的组件,都是SpringCloud
(4)海量数据:(mysql单表数据一般不超过一千万)就是在非常大的数据下很多数据库无法承受如此大的数据; 只 能把大表分成一个个的小表,把数据给分开;
解决方法:可以采用MyCat实现数据库的分库分表;
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。