开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情
分布式应用架构是指将一个系统的多个功能模块拆分为多个子服务,每个子服务都使用一个独立的进程进行部署,并且一般都部署在不同的机器节点上。
优点
扩展性:
- 系统由多个子服务组成,每个子服务负责其中一个功能,可以根据子服务的特点来决定该子服务的部署方案。并发量大的服务可以部署多个节点。
- 如果有新的业务需求,可以直接在对应子服务中进行修改,不会影响其他不相关的服务。
并发性:
通过集群部署每个服务,以实现横向的拓展,通过负载均衡机制来分发请求给服务的各个部署节点,从而可以方便的通过增加部署节点的方式来应对高并发请求。
可靠性:
若某个服务出现故障不可用,对于不依赖这个服务的其他服务可以继续提供服务。
缺点
网络传输问题
分布式应用中的多个子服务之间进行协作,则需要通过网络进行消息传递,额外增加了网络传输的时间开销,具体包括响应时间延迟和数据丢失两个方面。
分布式事务问题
在分布式应用中,一个请求可能涉及多个子服务的调用与不同数据的数据更新,无法通过事务机制来保证数据的一致性。
服务调用追踪问题
如果某个子服务出现问题,则需要检查每个涉及的子服务来定位,服务调用追踪会更加复杂。
集群与分布式
-
分布式:将一个系统拆分为多个子系统,,各个子系统独立部署在进程中。
-
集群:同一个服务在不同机器节点上部署多次,节点提供相同的服务,通过负载均衡机制将对该服务的请求分散到各个节点中。