SpringCloud微服务架构解决方案

本文详细介绍了微服务架构的演进,从单体、垂直架构到SOA再到微服务,强调了微服务架构的优势。重点讲解了Spring Cloud作为微服务解决方案的核心组件,包括Eureka服务治理、Ribbon负载均衡、Hystrix容错保护和Zuul服务网关。通过实战案例,演示了如何搭建和配置Eureka Server、开发用户信息服务并进行服务注册,以及如何实现负载均衡和容错保护。
摘要由CSDN通过智能技术生成

目录

1 理解微服务

1.1 软件架构演进

1.1.1 单体架构

1.1.2 垂直架构

1.1.3 SOA架构

1.1.4 微服务架构

1.2 什么是微服务

1.3 Spring Cloud技术栈

1.3.1 微服务的技术栈

1.3.3 Spring Cloud技术栈

1.3.4 为什么使用Spring Cloud

2 开发环境

2.1 Java8

2.2 Maven

2.3 Spring Boot

2.4 Spring Cloud

2.5 MySQL

2.6 IDEA

3 服务治理

3.1 什么是服务治理

3.2 Spring Cloud Eureka

3.3 架构

3.4 实战

3.4.1流程图

3.4.2 开发并部署Eureka Server

3.4.3 开发用户信息服务

3.4.4 服务注册

4 负载均衡

4.1 什么是负载均衡

4.2 Spring Cloud Ribbon

4.3 实战

4.3.1开发单点登录服务

4.3.2 服务发现

4.3.3 Ribbon编程

5 容错保护

5.1 什么是容错保护

5.2 Spring Cloud Hystrix

5.3 实战

6 服务网关

6.1 什么是服务网关

6.2 Spring Cloud Zuul

6.3 实战

6.4 总结


1 理解微服务

1.1 软件架构演进

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

1.1.1 单体架构

       

特点:

1、所有的功能集成在一个项目工程中。

2、所有的功能打一个war包部署到服务器。

3、应用与数据库分开部署。

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

优点:

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

缺点:

1、全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。

2、系统性能扩展只能通过扩展集群结点,成本高、有瓶颈。

3、技术栈受限。

1.1.2 垂直架构

特点:

1、以单体结构规模的项目为单位进行垂直划分项目即将一个大项目拆分成一个一个单体结构项目。

2、项目与项目之间的存在数据冗余,耦合性较大,比如上图中三个项目都存在客户信息。

3、项目之间的接口多为数据同步功能,如:数据库之间的数据库,通过网络接口进行数据库同步。

优点:

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

2、通过垂直拆分,原来的单体项目不至于无限扩大。

3、不同的项目可采用不同的技术。

缺点:

1、全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。

2、系统性能扩展只能通过扩展集群结点,成本高、有瓶颈。

1.1.3 SOA架构

特点:

1、基于SOA的架构思想将重复公用的功能抽取为组件,以服务的方式给各各系统提供服务。

2、各各项目(系统)与服务之间采用webservice、rpc等方式进行通信。

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

优点:

1、将重复的功能抽取为服务,提高开发效率,提高系统的可重用性、可维护性。

2、可以针对不同服务的特点制定集群及优化方案。

3、采用ESB减少系统中的接口耦合。

缺点:

1、系统与服务的界限模糊,不利于开发及维护。

2、虽然使用了ESB,但是服务的接口协议不固定,种类繁多,不利于系统维护。

3、抽取的服务的粒度过大,系统与服务之间耦合性高。

1.1.4 微服务架构

特点:

1、将系统服务层完全独立出来,并将服务层抽取为一个一个的微服务。

2、微服务遵循单一原则。

3、微服务之间采用RESTful等轻量协议传输。

优点:

1、服务拆分粒度更细,有利于资源重复利用,提高开发效率。

2、可以更加精准的制定每个服务的优化方案,提高系统可维护性。

3、微服务架构采用去中心化思想,服务之间采用RESTful等轻量协议通信,相比ESB更轻量。

4、适用于互联网时代,产品迭代周期更短。

缺点:

1、微服务过多,服务治理成本高,不利于系统维护。

2、分布式系统开发的技术成本高(容错、分布式事务等),对团队挑战大。

1.2 什么是微服务

        为适应企业的业务发展,提高软件研发的生产力,降低软件研发的成本,软件架构也作了升级和优化,将一个独立的系统拆分成若干小的服务,每个小服务运行在不同的进程中,服务与服务之间采用http 轻量协议(比如流行的RESTful)传输数据,每个服务所拥有的功能具有独立性强、高内聚的特点,这样的设计就实现了单个服务的高内聚,服务与服务之间的低耦合效果,这一个一个的小服务就是微服务,基于这种方法设计的系统架构即微服务架构。

1.3 Spring Cloud技术栈

1.3.1 微服务的技术栈

负载均衡,网关路由:高可用、集群部署,校验、请求转发、服务集成。

服务治理:服务注册、发现。

容错:避免雪崩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棉花糖老丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值