Spring Cloud介绍与环境搭建(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MrSpirit/article/details/79970306

前言

使用Spring Cloud需要用到Spring boot的知识,如果没有相关经验,请参考Spring Boot的简单使用(二),做一个简单的入门。

Spring Cloud系列博客是基于MyEclipse开发工具的。

LAMP项目

传统的单体项目用一个LAMP结构就可以完成,L:Linux;A:Apache;M:MySQL;P:PHP。在一台服务器上,我们就能完成整个项目的搭建。

因为是放置于一个Apache服务器里,我们的项目结构一般就如下所示:


前端采用JSP等视图,后台采用servlet等MVC框架,整体项目采用Spring容器,持久层采用Hibernate或者MyBatis做数据连接。最后把我们编译好的项目打成war包(或者编译好的字节码文件),放到我们的Apache服务器里,启动服务,用户访问Tomcat服务器,就能获取到自己需要的信息。


但是,在这一个单一的服务器里,每当我们有新的代码需要发布,都会使得我们的war不断庞大,最后成为一个臃肿的怪物,启动耗时不必多说,所有的代码都放在一个war包里,万一某个class文件的一个方法出现了内存泄露,迎来的就是整个项目的宕机,如果是一个传统行业的项目,和客户说一下,调试解决可能就处理好问题了,但是,如果作为一个互联网行业的项目,可能停机一个小时,就意味着公司的破产倒闭。

单体项目的优化

把各个功能模块的代码写在一起的弊端,催生了面向服务架构(SOA)的出现,将耦合在一起的功能代码做拆分,每一个功能模块都作为单一的能力或服务,接入到平台上,如果其中某个服务宕机了,也不会影响整个项目的运行。


企业服务总线(Enterprise Service Bus,ESB)从面向服务架构(Service-Oriented Architecture,SOA)发展而来,是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务级别上动态的互连互通,是一种在松散耦合的服务和应用之间标准的集成方式。


微服务架构

微服务架构和面向服务架构在理念上是相同的,只不过微服务架构在服务的拆分上更细腻,譬如销售模块可以进一步拆分成“食品销售”和“玩具销售”。


关于NetFlix

Netflix是一个互联网影片提供商,是美国视频巨头,随着Netflix转型为一家云计算公司,Netflix公司成立了自己的开源中心,名称为Netflix Open Source Software Center,简称Netflix OSS

这个开源组织专注于大数据、云计算方面的技术,提供了多个开源框架,这些框架包括大数据工具、构建工具、基于云平台的服务工具等。

关于Spring Cloud

Spring Cloud本质上并不是一个具体的框架,它是一个工具箱,用于帮助我们构建一个微服务集群;

Spring Cloud是基于Spring Boot的,它封装了Netflix的框架;

Spring Cloud将Netflix与Spring容器进行了整合,很容易使用Spring的IOC、AOP等等功能。

Spring Cloud整合了哪些常用Netflix框架

Eureka:基于REST服务的分布式中间件,主要用于服务管理。

Hystrix:容错框架,通过添加延迟阀值以及容错的逻辑,来帮助我们控制分布式系统间组件的交互。

Feign:一个REST客户端,目的是为了简化Web Service客户端的开发

Ribbon:负载均衡框架。

Zuul:为微服务集群提供过代理、过滤、路由等功能。

Spring Cloud系列:

Spring Cloud介绍与环境搭建(一)

Spring Boot的简单使用(二)

Spring Cloud服务管理框架Eureka简单示例(三)

Spring Cloud服务管理框架Eureka项目集群(四)

Spring Cloud之Eureka客户端健康检测(五)

Netflix之第一个Ribbon程序(六)

Ribbon负载均衡器详细介绍(七)

Spring Cloud中使用Ribbon(八)

具有负载均衡功能的RestTemplate底层原理(九)

OpenFeign之第一个Feign程序(十)

OpenFeign之feign使用简介(十一)

Spring Cloud中使用Feign(十二)

Netflix之第一个Hystrix程序(十三)

Netflix之Hystrix详细分析(十四)

Spring Cloud中使用Hystrix(十五)

Netflix之第一个Zuul程序(十六)

Spring Cloud集群中使用Zuul(十七)

Netflix之Zuul的进阶应用(十八)

消息驱动之背景概述(十九)

消息中间件之RabbitMQ入门讲解(二十)

消息中间件之Kafka入门讲解(二十一)

Spring Cloud整合RabbitMQ或Kafka消息驱动(二十二)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页