SpringCloud(二)初识微服务——开篇

        记得上大学那会,有次我去图书馆找算法书,无意间看到了书架上摆着一本《微服务架构与实践》。当即,拿起来开始阅读,可是奈何当时水平太低,很多东西都看不懂,只知道是一些微小的服务,这是我与微服务的第一次邂逅。

        好了,不回忆往事了。开始进入正题。

目录

1 微服务概述

1.1 单体架构

1.2 微服务架构

1.3 微服务特性与优点

1.3.1 特性

1.3.2 优点

1.4  微服务设计原则

1.5 微服务开发框架

2 Spring Cloud与微服务

2.1 Spring Cloud是什么

2.2 Spring Cloud特点

2.3 Spring Cloud开发微服务注意点

2.4 基本服务节点


1 微服务概述

1.1 单体架构

     所有的业务功能全部写在一个系统里面,这个系统要么启动了处于正在运行状态,要么没启动。这样的系统我们通常称之为单单体应用,这中应用程序的架构风格我们称之为 单体架构。

1.2 微服务架构

      微服务架构最初是由Martin Fowler这个外国人提出的。微服务用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。

Martin Fowler在他的博客https://martinfowler.com/articles/microservices.html中是这样描述微服务的:

In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.

翻译过来就是:

简而言之,微服务体系结构样式[1]是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,并且可以由全自动部署机制独立部署。

                                                                    单体架构和微服务架构图

1.3 微服务特性与优点

1.3.1 特性

     通过服务进行组件化,组件是可以独立替换和升级的软件单元。每个微服务都可以当作一个组件。

     围绕业务功能进行组织,通常是按照业务功能来拆分微服务的。

     智能端点和哑管道,从微服务构建的应用程序旨在尽可能地分离和具有凝聚力-它们拥有自己的域逻辑。

     分散治理,每个微服务都是一个独立运行的系统,选用编程语言,数据库完成开发。而不用考虑其他微服务。

      自动化部署,可以由一些工具(jenkins)进行持续集成和自动化部署。

1.3.2 优点

     易于开发和维护,每个微服务可以分配不同的开发小组,用不同的语言去开发。

     由于单个微服务只负责一个业务功能,体量小,启动快。

     技术栈不受限。

     从另外一种角度来看,符和”高内聚,低耦合“的思想。

1.4  微服务设计原则

     单一职责原则

     服务自治原则

     轻量级通信原则

     接口明确原则

1.5 微服务开发框架

后面的实战微服务,我们选择Spring Cloud来实现。

2 Spring Cloud与微服务

2.1 Spring Cloud是什么

      Spring大家应该很熟悉吧,目前最流行的java框架,绝大数公司都在使用spring框架。spring 、spring MVC、Spring Boot、Spring Cloud都属于Spring家族。Spring Cloud是由Spring Boot实现,一个由Spring Cloud实现的微服务架构,从整体来看是Spring Cloud框架,可是我们来看每个微服务其实是Spring Boot。要用Spring Cloud实现微服务一定要先会Spring Boot哦。

2.2 Spring Cloud特点

  •  约定由于配置
  • 开箱即用,快速启动

  • 轻量级组件

Spring Cloud的版本和Spring、Spring Boot可完全不同了,是以英国伦敦地铁站命名的,如下图:

   

Spring Cloud官网地址:https://spring.io/projects/spring-cloud#learn

2.3 Spring Cloud开发微服务注意点

在用Spring Boot搭建Spring Cloud微服务时一定要注意Spring Boot和Spring Cloud之间的版本关系要对应,如果版本不匹配可能会发生很多意想不到的问题。

查看Spring Boot和Spring Cloud版本对应关系,可以去官网:https://start.spring.io/actuator/info,(记得要用火狐浏览器打开啊,才会有这样结构的数据,其他浏览器也能相应成功,只不过是一堆数据不便于浏览。)如下图:

当然了,也可以看下百度下,有其他的大佬已经实战经历过按照他们的版本搭配肯定也没问题的。

2.4 基本服务节点

一个能支持正常业务经受得住生产数据考验的Spring Cloud微服务架构,一定要包含3类服务节点,如图所示:

                      

gatway:网关,所有请求的入口。实现技术Zuul(我们后面实战采用的),主要进行请求路由转发,负载均衡等。

service discover:服务发现或服务注册,由Eureka Server实现,主要实现服务注册(服务发现),其他微服务可以注册到该服务上。

other service:其他一些微服务,主要由Eureka Client实现,包含一些实现业务功能的微服务等。

这些后面都会详细说,在大家以后搭建好一个微服务时,看下缺不缺这些东西。下节我们就开始实战,这个Spring Cloud系列的文章也写的和微服务架构思想类似,每篇文章主要说一件事,要学会Spring Cloud微服务架构必须要循序渐进,一步一步的来。准备发车了,你准备好了吗!

 

                

发布了45 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41968788/article/details/103035847
今日推荐