Springcloud简介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

详细介绍: https://baike.so.com/doc/25751000-26884657.html

配套参考资料:springcloud项目官方主页:https://projects.spring.io/spring-cloud/

中文网 :https://springcloud.cc/ springcloud有很详细的翻译文档

中文论坛 :http://springcloud.cn/ springcloud

Springcloud版本pom文件生成可借助网站:https://start.spring.io/

Springcloud入门

SpringCloud解决单体项目里的问题

SpringCloud可以解决下面我列出的在单体项目中的某些问题:

1,单体项目就是把所有开发的模块放在一个项目里,当模块多了就不便于维护(系统维护),当项目启动时,耗时也会很长。
2,单体项目里代码量会很大,而我们开发时一定会有几个模块之间的调用,一旦有任何一块出现问题,那相关的模块也会受到影响。(代码维护)
3,我们开发的项目很大时,我们要升级模块,去改变前端框架的代码,在单体项目中,这样的工作量是非常大的,效率不高(重构代码)
4,使用单体项目,有时候我们开发的网站会崩塌,一旦崩塌就不可以访问了,分布式却可以继续访问。

单体应用结构
Springcloud入门
springCloud组件架构
Springcloud入门

SpringCloud解决单体项目里的问题而引发出来的问题

下面是我列出来的SpringCloud解决单体项目里的问题而引发出来的问题以及解决方式:

1、安全性的问题:zuul网关解决了服务调用安全性的问题
2、各层服务耦合问题:服务注册与发现(注册中心)eureka解决了各层服务耦合问题,它是微服务架构的核心,有它才能将单体项目拆解成微服务架构
3、注册中心宕机:Eureka集群解决了微服务中,注册中心宕机产生的问题
4、各微服务服务器的访问压力问题:Ribbon负载均衡及Feign消费者调用服务,减小了各微服务服务器的访问压力,默认采用了经典的轮询机制
5、微服务架构中服务器雪崩问题:熔断器Hystrix解决了,微服务架构中服务器雪崩现象
6、监控问题:服务监控(单机Dashboard与集群turbine),方便运维人员查看微服务架构项目运行时,各个服务器的运行状态
7、配置文件问题:服务配置中心(springcloud config),用来通过github统一管理各个微服务的配置文件(yml文件)

入门案例

我这里还没做注册中心(其实不算个分布式项目)

最简单的微服务架构会有四个工程
父工程:microservice
通用模块(M):microservice-common
服务提供者(C):microservice-student-provider-1001(生产者)
服务消费者(C):microservice-student-consumer-80(消费者)

单体项目拆分服务者与消费者

单体项目拆分最终结果:
Springcloud入门
1、springboot、springcloud版本在父工程定义;
2、由于通用模块无需操作数据库,springboot启动默认会读取数据库,所以得添加以**解 @SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class});
3、分布式jpa需要在启动类上添加@EntityScan(“com.javaxl..”);
4、消费者需要添加配置类获取org.springframework.web.client.RestTemplate,springcloud底层是通过RestTemplate来调用提供者的服务的。

传统的构架

Springcloud入门
微服务架构拆分
Springcloud入门

相关文章: