当前位置: 首页 > 图灵资讯 > 技术篇> 微服务之-SpringCloud

微服务之-SpringCloud

来源:图灵教育
时间:2023-07-02 17:09:00

背景

软件架构的发展经历了从单体架构、垂直架构、SOA架构到微服务架构的过程

1. 演变软件架构

1.1 单体架构

微服务之-SpringCloud_服务治理

特点:

1、在一个项目中集成所有功能

2、所有功能都打包成war包,部署在服务器上

3、应用程序与数据库分开

4、通过部署应用集群和数据库集群来提高系统的性能

优点:

1、项目简单,前期开发成本低,周期短,小项目首选

缺点:

1、所有功能都集成在一个项目中,不容易开发、扩展和维护大型项目

2、系统性能的扩展只能扩展集群节点,成本高,瓶颈高

3、技术栈有限(一个项目只能开发一个技术栈)

1.2 垂直架构特点:

微服务之-SpringCloud_Cloud_02

1、以单体结构规模项目为单位的垂直划分项目,将大型项目分为单体结构

2、项目之间存在数据冗余和耦合。例如,上图中的三个项目都有客户信息

3、项目之间的接口大多是数据同步,如数据库之间的数据同步,数据库之间的数据同步通过网络接口进行

优点:

1、项目结构简单,前期开发成本低,周期短,是小型项目的首选

2、通过垂直拆分,原有的单体结构不会无限扩展

3、不同的项目可以使用不同的技术

缺点:

1、所有功能都集成在一个项目中,不容易开发大型项目

2、扩展系统性能只能通过扩展集群节点,成本高,存在瓶颈

1.3 SOA架构特点:

微服务之-SpringCloud_Cloud_03

1、基于SOA的架构理念,将重复的公共功能提取为组件,并以服务的形式为每个系统提供服务。

2、通过webservice、rpc等方式,在每个项目(系统)和服务之间进行通信

3、ESB企业服务总线是项目与服务之间通信的桥梁

优点:

1、提取重复功能,提高开发效率,提高系统的可重用性和可维护性

2、可根据不同服务的特点定制集群和优化方案

3、ESB减少了系统的耦合

缺点:

1、系统与服务之间的界限模糊,不使用开发和维护

2、虽然使用ESB,但服务界面协议不固定(http,webservice,tcp),种类繁多,不利于维护

3、提取服务粒度大,系统与服务耦合度高

1.4 微服务架构

微服务之-SpringCloud_微服务_04

4.1 Spring Cloud Eureka

Spring Cloud Eurake 是Netflix公司Eurake的二次封装,实现了服务治理的功能,Spring Cloud Eurake提供服务端和客户端,服务端是服务注册中心,客户端完成服务注册和发现。Java语言用于服务端和客户端(Eurake支持多语言)。如下图所示,Eurakee Server 与Eurake Client关系:

微服务之-SpringCloud_微服务_08

4.2 架构

微服务之-SpringCloud_微服务_09

A:提供服务的一方,需要在服务管理中心注册自己,心跳是为了保证服务的生存

B:消费者服务方首先从服务治理中心找到所需的服务,然后使用RESTful进行调用

HA:确保服务治理中心的高可用性

4.3 实战

微服务之-SpringCloud_服务治理_10

4.3.1 开发和部署Eureka Server

1、创建SpringBoot项目

2、将依赖添加到POM文件中,(SpringBoot ,Spring Cloud , Eureka Server)

3、application配置.yml

4、部署两个Eureka Server,并相互注册,实现高可用性

上一篇:

代理模式

下一篇:

什么是springboot?