Spring Cloud:什么是微服务

Posted JianYang100

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud:什么是微服务相关的知识,希望对你有一定的参考价值。

 系列目录(持续更新。。。)

Spring Cloud:什么是微服务

Spring Cloud之一:注册与发现-Eureka工程的创建

Spring Cloud之二:服务提供者注册到Eureka Server

Spring Cloud之三:Eureka Server添加认证

Spring Boot 之四:使用Feign实现微服务间的交互


目录 

什么是微服务

为什么要使用微服务

Spring Cloud是什么


本文只是帮助新手朋友更好的理解微服务,仅此而已!

什么是微服务

        什么是微服务呢?我不会使用太多的专业术语来阐述这个概念,以下纯属本人拙见!

        说起微服务,得先从单体应用开始说起。比如,我们开发了一套商城系统,我们把这个商城系统打包成war或jar部署到线上服务器,我们就可以说这个商城系统是一个单体应用!多数项目初期都是从单体应用开始的。

        商城系统里面包括用户模块、订单模块等,这时候我们把商城系统拆分成用户模块和订单模块(实际会拆分成更多的模块,我只是举个栗子。。。),也就是用户模块可以单独打包成一个war或jar包,订单模块也可以单独打包成一个包。这时候我们就可以称用户模块就是一个微服务,订单模块也是一个微服务!

我们可以这样理解:微服务就是从一个大模块中分离出来的一个个小的模块,但也表示我们需要布署更多的应用,以支撑我们的系统功能。

为什么要使用微服务

        那么为什么要使用微服务呢?或者,换句话说:为什么我们宁可部署多个应用,也不愿只部署一个应用呢?

        还是得从单体应用说起,单体应用包括了系统的所有功能,复杂性高,维护难度大,去改个Bug,可能产生新bug的几率非常高。而经过功能划分后的微服务(用户模块、订单模块)功能单一、代码量小,从而大大减少系统的开发难度,提高了系统的可维护性,并且微服务可以各自独立,各自有自己的技术栈(比如用户模块我可以使用mysql数据库,订单模块可以使用Oracle数据库)。

Spring Cloud是什么

        尽管微服务方案大大优于单体应用,但是细化成更多的模块就表示我们需要维护和部署更多的应用,运维成本大大提高!并且微服务与微服务之间会有一定的通信,那如何通信?如何处理通信时产生的异常呢?微服务多了,怎么查看各个微服务的状态呢?我怎么知道哪个微服务挂了?

        Spring Cloud就是基于上述问题,应运而生的一套分布式开发框架。它是由众多的组件组成,各个组件都有各自的使命。常用的组件大概如下:

        Eureka: 注册中心, 负责服务的注册和发现

        Ribbon: 负载均衡, 实现服务调用的负载均衡

        Hystrix: 熔断器

        Feign: 远程调用

        Gateway: 网关

        Spring Cloud Config: 配置中心

Spring Cloud——什么是微服务?

一、什么是微服务架构?

1.系统拆分

2.服务各自独立运行、独立部署

3.服务之间基于HTTP的Restful API通信协作 

二、为什么选择Spring Cloud?

1.基于Spring Boot实现的微服务架构工具。

2.组成

Config:配置中心,支持git存储配置,实现应用配置外部化,客户端动态修改配置信息

Eureka:服务的注册与发现

Hystrix:容错管理组件,实现服务间降级和熔断

Ribbon:实现客户端负载均衡

Feign:基于Ribbon和Hystrix的声明式服务调用组件

Zuul:网关,提供路由,服务过滤拦截

Sleuth:服务链路跟踪,整合ZipKin

以上是关于Spring Cloud:什么是微服务的主要内容,如果未能解决你的问题,请参考以下文章

什么是微服务最佳实践?大咖带你深入了解Spring Cloud Alibaba

Spring Cloud学习之-什么是Spring Cloud?

Spring Cloud简介

Java之Spring Cloud概念介绍

聊聊几个 Spring Cloud 常见面试题及答案

19 张思维导图学习 Spring Cloud