写好的代码越来越满足不了需求,因为需求总是在不断的变化。在技术选型时,实在是心有余而力不足。思来想去,就考虑了使用微服务架构来实现,功能模块化。今天主要讲讲为什么需要微服务架构。还是以故事的形式呈现。

一、认识微服务

阶段一:单体服务

话说小张闲着没事,就想着挣点钱,于是开了一家餐馆。店铺刚刚开张,顾客还不多。这时候就小张一个人,所以收银、做饭、洗碗、打扫卫生的任务全在小张一个人身上。

图片

阶段二:微服务

小张做的饭真的是越来越好吃了,客人也越来越多,这可把小张累坏了,于是考虑着顾上几个人,跟他一块干,每个人负责一个模块。这就是微服务。

图片

阶段三:分布式+集群服务

随着手艺的不断进步,人数那是超级多了,小李、小王和小红都忙不过来了,于是呢一个活分给几个人干,这样不就轻松了嘛。

图片

是不是好了很多了,随着小张事业的不断上升,于是把功能不断地细分,一个部分的人数也不断的飙升来满足客户的需求。这就是微服务的整体进化。

总结:

单体结构:一个人把事全做了

分布式:几个人分别干不同的事

微服务:每个人负责不同的事

当然分布式和微服务的先后顺序可能和你理解的不一样,不过大体的流程是这样的。我们举了这个例子是想让你从宏观上认识一下微服务的功能。现在注意了,我们把目光转移,转移到微服务上来。

二、为什么选用Springcloud

我们先理清楚pringcloud和springMVC,springBoot,spring的关系:

spring的主要作用就是IOC和AOP的实现,springmvc是一个底层基于servlet的mvc框架。前两个开发起来配置啥了一大堆,因此有了springboot,大大地简化了我们的开发工作,但是系统的不断复杂化,又想结合springboot的优点,因此出现了springcoud。既然springcloud能解决复杂系统出现的一些问题。那我们看看是如何解决的。

图片

这张图从上往下看,你会发现,一个复杂系统出现的各个方面都有着相应的模块组件来实现。具体的使用细节在今后会退出我自己的微服务体系。结合我自己正在做的项目来实现。

微服务的框架那么多比如:dubbo、Kubernetes,为什么就要使用Spring Cloud的呢?

(1)spring家族的,他的威力就不强调了。学java的一定都会学习spring家族的框架。

(2)基于Spring Boot 可以减少我们的开发工作量。

(3)功能太齐全了。

(4)资料多,遇到问题很容易找到解决方案

而dubbo虽然用户量很大,但是由于停止维护了一段时间,给了springcloud的可乘之机。内部还有很多问题需要处理,从时间经济等等各个条件筛选,觉得还是springcloud比较好。


更多相关文章

  1. 分布式系统的事务处理
  2. 分布式锁不是控制并发幂等的方式
  3. 2020 年 Node.js 将会有哪些新功能[每日前端夜话0xFA]
  4. 你即将使用的ES2020新功能[每日前端夜话0xF3]
  5. 服务端指南 数据存储篇 | MySQL(09) 分库与分表带来的分布式困境与
  6. 非功能性需求,不要成为项目的坑
  7. Vue 3 中令人兴奋的新功能[每日前端夜话0xE2]
  8. SpringBoot项目通用功能及框架知识点介绍
  9. Javascript 的新功能-Part 1[每日前端夜话0xC6]

随机推荐

  1. spring android 编译环境搭建
  2. Android HttpURLConnection网络通信
  3. Android 开发时遇到的两个模拟器问题
  4. 解析Android如何利用Handler
  5. Android官方入门文档[3]构建一个简单的用
  6. TextVview的属性
  7. Android Studio中Gradle使用详解
  8. Android OnTouchListener实时监听触点坐
  9. android 下载文件注意事项
  10. android 如何判断软件是否第一次运行?