一、需要的环境如下:
IDEA,JDK8,Maven,SpringBoot基础,linux(centos7),dubbo(2.7.0)
virtualbox(用来装虚拟机,和模拟分布式的环境)。
二、传统互联网架构到微服务分布式架构的演变的过程:
简介:单机应用和分布式应用架构演进基础知识
互联网时代演变过程
pc时代-->移动互联网时代-->物联网时代
①、传统单体架构
如果程序扛不住了,可以这时加一个缓存,就可以很好的解决相应的问题。
而且这个应用程序是部署到单台的机器上去的。随着用户量的增长。就会
变成下面的图
缺点:系统耦合度高,开发效率随着时间的增长而减低,启动应用的时间长。
依赖庞大等等。
适用场景:初创公司,业务场景简单,功能单一,研发人员较少。
②、传统单体架构的扩展
保证应用程序部署在多台的服务器上面,通过相应的负载均衡的工具来把用户的请求去负载均衡( 比如nginx)到不同到不同的应用程序上面去,然后再对相应的数据进行一个保存。这时就会能够承受更高的并发。
但是随着业务的增长,整个程序的开发变的比较麻烦。这时就有了下面的图:
③、单体架构解耦
在水平上进行一个拆分,最主要的是把原先的一个单体的应用分成了网关层(用于用户的鉴权),业务逻辑层(处理业务),数据访问层(访问数据/对数据进行持久化)。
为了提高更高的并发量,就引入了下面的图:
④、异步架构
用户的请求来到nginx,然后去到相应的网关层,然后通过MQ进行异步的解耦,然后到业务逻辑层,然后到数据访问层,最终到数据库。这就是简单的异步架构。
随着用户的急剧的增长,这时就到了soa的架构
⑤、soa架构
soa架构就是对服务进行了拆分,而且引入了服务配置和服务治理。soa是比较依赖企业服务总线的。
⑥、微服务架构
微服务和soa架构是非常相似的,很多思想是从soa架构借鉴过来的。但是在微服务架构中去掉了ESB。这就是两者的最大的区别。
优点:易开发, 理解,维护
独立部署和启动
缺点:需要管理多个服务,在架构的层面变的复杂。
服务切分之后,服务之间的调用可能需要去解决分布式事务的问题