大数据(四)——【分布式、SOA消息中间件、微服务、集群相关】
分布式、SOA、微服务、集群相关
【分布式】:将不同业务的系统部署在不同服务器上(端口不同也可以)
【SOA】:将业务功能拆分为更单一功能的组件便是SOA
【微服务】:可以独立部署运行的业务服务,如:分布式中的子业务服务
【集群】:将相同业务的系统部署在不同的服务器上(端口不同也可以)
1.分布式与集群比较:
业务系统的业务是否相同,两者可以配合使用。
2.微服务和分布式比较:
微服务:分散业务能力到不同的子业务服务。
分布式(包含集群):分散业务处理压力。
拓展1:
分布式配合同步多线程可以解决并发问题。如:网购。
(但是特殊的多人并发操作,需要特殊的检验判断,如审核流程,就需要在请求时,根据状态等判断流程待办任务是否已处理。)
拓展2:
分布式使用注册中心,配合负载均衡服务器(nginx),提供服务接口的注册和消费。
(子服务间也可以通过服务接口调用处理业务,也可以通过消息中间件)
常用的注册中心:Eureka Consul zookeeper等。
拓展3:
消息中间件的使用:异步消息、服务解耦、并发削峰、服务通信
1)异步消息:使用场景用户注册。
传统:用户注册——>数据入库——>发送注册短信。
消息中间件:用户注册——>数据入库——>发布消息到消息队列——>异步发送注册短信。
2)服务解耦:使用场景用户下单。
传统:订单系统(调用库存服务接口)——>库存系统处理业务
消息中间件:订单系统(发布消息)——>消息队列——>库存系统(订阅消息)处理业务
3)并发削峰:使用场景,商品秒杀。
传统:用户大批量下单导致服务器失去响应。
消息中间件:用户下单(发送消息队列)——>消息队列(根据实际情况限制人数等)——>订阅消息根据秒杀规则处理业务
4)服务通信
传统:服务A(调用服务接口)——>服务B
消息中间件:服务A(发送消息)——>消息队列——>服务B(订阅消息)
常见的消息中间件:Kafka、ActiveMQ、RabbitMQ、RocketMQ等
拓展4:
大数据解决方案之一,分布式数据库:Elasticsearch、Redis、Mongodb、Mysql分布式集群等
拓展5:
微服务分布式集群架构
1.springboot + zookeeper + dubbo + nginx + (mysql + redis + ActiveMQ + Elasticsearch)
2.springCloud 体系
3.spring Cloud = springBoot + 微服务解决方案(配置管理、注册中心、服务发现、限流、网关、链路追踪)
参考链接: 注册中心:https://blog.csdn.net/tyw15/article/details/89789650;
参考链接: 消息中间件:https://www.cnblogs.com/wuzm/p/11105176.html;
参考链接: 分布式数据库:https://www.cnblogs.com/Yemilice/p/10024991.html;
浙公网安备 33010602011771号