公众号推广:
目前CSDN进行VIP可见,文章可在微信公众号进行免费的阅读。
文章内容经过认证实践,比较的清晰易懂,适合初次接触的人员。
请关注微信公众号:菜鸟编程踩坑之路
集群与分布式说明
1、传统应用开发模式
1.1 传统单机架构模式概念
# 传统的单机架构模式就是几个团队对一个项目进行开发与维护,所有的代码都在一个工
# 程里面,所有的请求都是单机请求,所有的开发人员都在一个代码库里面对同一个代码
# 进行更新与提交,所有的请求只有一个Java应用服务器来处理请求
# 单机机构模式图如下图所示:
单机机构模式图
1.2 单机应用存在的问题
-
随着业务的发展开发变得越来越复杂
-
对整个项目的一个功能进行修改操作都需要对整个工程进行打包发布、系统重新测试
-
其中一个功能模块出现问题可能会导致整个系统崩溃
-
多个开发团队对数据进行操作会对数据产生安全漏洞或者业务数据错误
-
各个模块使用同一个技术开发会导致项目的拓展性受到限制,可能导致代码量的增大
-
模块内容过于复杂,新员工难以理解这么庞大的系统
2、分布式和集群应用开发模式
2.1 分布式和集群应用开发模式概念
# 首先明确分布式和集群是两个概念
# 分布式:分布式是将一个大的较为复杂的问题拆分成几个简单的小问题,将一个大的复杂
# 的系统拆解成若干个较为小服务,比如一个商城系统就可以分解成订单服务、支付服务
# 等,一个完整的系统由多个子服务进行协同完成。相当于是设计层面来分担请求压力
# 集群:集群就是多个服务器,一台服务器扛不住的请求压力,那么就多给几台服务器一起
# 来分担压力,相当于是物理层面来分担请求压力
# 微服务架构模式图,如下图所示:
微服务架构图
2.2 微服务和集群的优点
-
各个服务的开发、测试、部署都是相互进行独立的。比如用户服务就可拆分为一个单独的服务,他的服务也不需要依赖于其他的服务,如果用户量很大则就可以多部署几台机器进行集群。
-
当出现一个新的需求时无需考虑太多的兼容性、系统运行速度等问题。
-
使用微服务后开发语言变得更加的多元化,各个服务之间就需要相互调用接口就可以。
2.3 微服务和集群的缺点
-
微服务是基于整个系统的业务进行拆分的,并非随意的进行拆分,如何对系统进行微服务的拆分就是一个比较复杂的问题。
-
各个服务之间是独立的,微服务只需要进行接口调用就可以,那么这样就会带来如何保证数据一致性的问题。
-
微服务是一个大的系统,团队之间的沟通成本提高。
3、微服务的请求流程
# PC端和移动端发出的所有的请求经过网关进行请求的
# 再次分发请求到达具体的服务进行业务处理
# 微服务的请求流程图如下图所示:
微服务流程图