SpringCloud_概述与入门


一:SpringCloud 是什么?

官网:http://spring.io/

1、简化的分布式系统

2、构建分布式系统不需要复杂且容易出错。Spring Cloud为最常见的分布式系统模式提供了简单易用的编程模型,帮助开发人员构建弹性,可靠和协调的应用程序。

3、Spring Cloud构建于Spring Boot之上,使开发人员可以轻松入门并快速提高工作效率(包括:服务注册/发现,配置中心,全链监控,服务网关,负载均衡,熔断器等等...)

4、Spring Cloud提供一套分布式的微服务架构一站式的解决方案,说白了,就是各个微服务架构技术的集合体

SpringCloud_概述与入门

5、Spring Cloud利用SpringBoot的开发巧妙的简化了分布式系统的基本设施开发,并且提供了快速的构建分布式系统的一些工具,其中包括(配置管理、服务发现、熔断器、路由、微代理、事件总线、全局锁、分布式会话等....)

都可以使用SpringBoot的开发风格一键启动和部署

6、SpringBoot只是将各个公司比较成熟服务框架结合起来,并通过Spring的风格进行封装屏蔽了复杂的配置和实现原理,提供一套简单易懂,容易部署与维护的分布式系统开发工具包

二:Spring Cloud与Spring Boot的区别

1、如上描述pring Cloud构建于Spring Boot之上,那么他们的区别是什么?

2、SpringBoot 还专主于快捷的方便开发单个个体微服务

3、SpringCloud是关注全局的微服务协调整框架

4、SpringCloud 将Spring Boot开发的一个一个的单体的微服务整合起来

从而给各个微服务之间提供(配置管理、服务发现、熔断器、路由、微代理、事件总线、全局锁、分布式会话等....集成服务)

5、SpringBoot可以离开SpringCloud独立的进行开发项目,反之SpringCloud是离不开SpringBoot,是依赖的关系(通俗的说水中可以没有鱼,但是有鱼必须要有水)

三:Dubbo 与SpringCloud的区别

1、通过社区的活跃度

dubbo:https://github.com/dubbo

spring-cloud:https://github.com/spring-cloud

2、Dubbo SpringCloud 的对比

SpringCloud_概述与入门

1、Spring遗弃了Dubbo的RPC通信,采用了基于HTTP的REST方式

2、REST比RPCG更加灵活,服务提供方和调用方的依赖只是需要一纸的协议,不存在代码的级别依赖,在快速的演化的微服务环境下,显得的更加灵活了

3、Spring Cloud的功能比Dubbo更加强大,覆盖更加广泛,能够完美的融合Spring Data,Spring Boot ,Spring Bacth等等其他的Spring的项目,就如同名牌的电脑做了大量的兼容的测试

4、Dubbo就如同组装的电脑什么样的技术都有没有做过兼容测试,总会出现乱七八糟的问题。

5、Dubbo在2017.7才重新启动更新对于技术的新需求,都需要开发这自行拓展了如(当当网的DubboX),对于采用微服务架构的中小组织就不合适了没有那么强大的技术进行维护与修改Dubbo的源码以及周边的问题的解决方案

6、Dubbo定位于一款RPC的框架,而SpringCloud的目标是微服务架构下的一站式解决的方案,在面临微服务的技术架构下,Dubbo与SpringBoot只能二选一

四:Spring Cloud的参考文档与官网以及简绍

1、官网:http://projects.spring.io/spring-cloud/

2、中文参考文档:https://springcloud.cc/spring-cloud-netflix.html

3、英文开发文档:http://cloud.spring.io/spring-cloud-static/Dalston.SR1/

4、中文开发文档:https://springcloud.cc/spring-cloud-dalston.html

5、中国社区:http://springcloud.cn/

6、中文社区:https://springcloud.cc/

五:微服务架构模块

1、本次课程通过SpringCloud微服架构案例来进行讲解

1、总体简绍

1、使用SpringMBoot+SpringMVC+Mybatis+Mysql技术,以部门(dept)做一个微服务的案例。Consumer消费者(Client)通过Rest调用Provider提供者(Seriver)提供的服务

2、Maven的分包分模块的架构

一个父工程(Project)带着多个Module子模块

|__xxx-perent(一个父项目聚合多个子项目xxx-util,xxx-dao,xxx-serivce,xxx-web)

|____pom.xml(pom)

|

||__________xxx-util

||__________pom.xml(jar)

|

||__________xxx-dao

||__________pom.xml(jar)

|

||__________xxx-serivce

||__________pom.xml(jar)

|

||__________xxx-web

||__________pom.xml(war)

2、工程的构建

|_serivcecloud 父工程(project)

|(封装整体entity/接口/公共的配置等等、到达一处定义多出使用)

|_______serivcecloud-api

|微服务的服务提供者

|_______serivcecloud-provider-dept-8001

|微服务的客户端

|80表示客户端的访问者的端口,因网页默认的是服务端口是80,因此在输入网址的时候就不用输入':80'端口号了

|_______serivcecloud-consumer-dept-80

六:Cloud与boot的版本

1、Cloud版本

SpringCloud_概述与入门

2、boot版本

SpringCloud_概述与入门

SpringCloud_概述与入门

猜你喜欢

转载自blog.csdn.net/weixin_34004750/article/details/86716211