从0开始介绍与学习分布式与分布式框架
一、背景:
由于项目的功能越来越多,项目体积越来越大,传统的单体服务已经无法满足大型项目的开发,所以分布式开发变得越来越重要。而微服务又是分布式最好的一种实现方式,所以学习微服务与相关框架就成了势在必行的一步。
二、传统单体结构项目与分布式架构的区别
传统单体结构:
优点:
项目设计简单,所使用的技术没有这么复杂
各个功能之间的调用简单,不需要跨服务,不需要跨数据库
缺点:
一个项目中只有一个服务
项目中的各个功能都是相互耦合在一起的,没有体现高内聚低耦合。故项目的扩展性不强,且容易牵一发动全身。
由于只有一个服务,无法实现负载均衡
所有功能都可以访问所有的数据库,数据安全性无法得到保证
分布式架构:
优点:
一个项目有多个服务
将每一个功能都分解为一个一个独立的服务,可以实现高内聚低耦合。项目的扩展性与延伸性有了很大的提高,且各个服务都是一个单独的项目,不会由于一个服务的宕机导致整个服务瘫痪。
可以使用网关来实现用户调用服务时的负载均衡
每一个单独的功能只能访问到相对应的数据库,大大提高了数据的安全性与独立性
缺点:
技术更加复杂,对于程序员的要求更加高
在部署项目后需要多台服务器,项目的经费需求更高
三、将一个项目由单体结构转变为分布式结构所需要思考的问题
将项目拆分为多少个服务合适?
多个服务之间的相互调用如何实现?
当存在服务集群时如何实现负载均衡?
等等的许多问题就暴露出来了