SpringCloud理解篇
本文内容纲要:
1、什么是面向对象
2、什么是面向服务
3、面向服务和面向对象的区别
4、什么是微服务
5、什么是微服务架构
6、微服务和面向服务的区别
7、关于springcloud
8、有哪些微服务架构
1、什么是面向对象?
将多个事物按照类别抽象一个个对象,再将多个对象之间的共性抽象,
形成一个个类,类中包含的有对象的属性和行为,也就是类中声明的不同数据类型
的变量和各种方法,所有的数据操作都是以对象为前提进行。
2、什么是面向服务(SOA)?
面向服务是一种思想,这种思想相对于之前的面向对象来说比较怪异。
面向对象就是将应用程序的不同功能单元(称之为服务)进行拆分,并将
这些服务通过接口等联系起来(各服务之间松耦合),想要使用哪个功能,直接进行调用,
不会将功能与整个项目紧紧绑定。
或者这样说:面向服务是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,
具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是Service)组合
起来的,它对迅速变化的业务环境具有良好的适应力,一般只有在考虑系统架构的时候才会
涉及到面向服务。
3、面向服务和面向对象的区别,面向服务的好处?
区别:
面向对象:功能与整个项目进行了绑定;
面向服务:功能是单独存在的,哪个项目需要,哪个项目就去调用。
面向服务的好处是什么:
在一个项目中各个不同的功能不再需要绑定项目,可以单独独立出来成一个服务器,
有项目需要用到某功能的时候直接去调用。
4、什么是微服务?
微服务并不是一种技术,而是一种思想,是SOA架构下的产物,只要系统的架构
符合这种思想,就可以说它是微服务。最早由马丁福勒提出。将业务拆解成一个个小
形态的服务,这些微服务之间是松耦合的,每个微服务都可被独立部署,且都仅关注
完成一件任务。
关于设计思想方面有个例子:
!!Spring的IOC是一个思想,并不是具体的实现,在spring的框架中实现了IOC思想是DI!!
IOC是控制反转,即通过spring的bean工厂去创建对象,不用人为主动的去new(创建),它是一种设计思想,就是说只要我的代码实现了这种思想,我就可以说我这是IOC。而DI(依赖注入)就是实现过了这
中思想,它是一种技术,这俩玩意不能一概而论,但DI干的就是IOC说诉说的事,是IOC的实现。
5、什么是微服务架构?
就是由多个微服务组成的大型的项目架构。
6、面向服务于微服务的区别?
微服务是将服务拆分出来并单独运行(Tomcat),而面向服务中被拆分出来的业务不是(
面向服务中被拆分出的业务是被打成jar包放入某个项目,使的那个项目能够使用某功能)。
或者换一种方式问:微服务中包含了SOA吗?
包含!SOA只是把项目进行拆分,然后以依赖的形式实现项目的部署。
微服务也是把项目拆分,每一个拆分出的项目可以直接独立运行,直接和整个项目进行解耦。
但是微服务包含了传统的SOA,但是SOA不包含微服务。
7、关于springcloud?
springcloud并不是一个框架,而是一个微服务整体架构,或者说springcloud是一个生态圈,
里面包含了很多的服务,每一个服务独立存在,相互之间互不干扰,可以直接运行。
其实springcloud就是一个完整的微服务架构,提供了所有功能,整个开发项目中
所需要的架构功能微服务都有,也就是说整个springcloud就是一个完整的项目,这个
架构已经搭建完毕了,用到了直接获取即可,只需要往架构中注入自己的业务代码就可以。
8、有哪些微服务架构
springcloud
阿里巴巴的dubbo
当当的dubbx-->基于dubbo二次开发的
京东的JSF
JSF和dubbo的区别:
其实实现的功能是一模一样,都是RPC框架,但是JSF架构比dubbo多了一个注册服务地址的功能,其他的几乎没有什么区别
springcloud和dubbo的区别:
1、dubbo是二进制,传输速度快,并且带宽占用低(对网络的要求不是特别大)
springcloud基于http协议,也就是说所有的服务之间调用使用的仍然是传统的restful,
也就是说项目和项目之间调用使用了http协议(带宽占用率比较高,对网络的要求特别高,
不符合中国国情!!!)
2、dubbo提供了很多开源的注册中心(zookeeper,dubbo自带的也有注册中心...)
springcloud在2019年才提供了zookeeper注册中心,之前使用的全部都是eureka,
并且在springcloud2.x版本以后新增加了一种注册中心是consul
3、dubbo的监控和日志系统并不是很完全,需要自己手动集成和编写springcloud有一套
非常完善的监控和日志系统
4、dubbo属于轻量级的框架(dubbo自带就是中文官网)
*springcloud使用起来比较沉重,并且学习成本还高(springcloud默认提供的是英文官网)*
!!!!但是目前为止2019年之后一线城市很多公司都使用的是springcloud!!!!
!springcloud1比springcloud2用的人多!
springcloud2.x的架构能不能使用springcloud1.x架构的组件??太能了!!
*目前中国市场市面上所有的架构都是springoot,springboot和springcloud*
是一个公司的,之间对接没有任何差异,而且没有bug.
本文内容总结:
原文链接:https://www.cnblogs.com/liuqijia/p/11587213.html