Spring Cloud / Alibaba 微服务架构 | 2021年11月更文挑战(1)

181 阅读3分钟

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

第一次参加这个活动,正好借此机会学习一下Spring Cloud / Alibaba 微服务架构。

认识Spring Cloud

Spring Cloud是基于Spring构建分布式系统的工具集

它的发展是从Spring -> Spring Boot -> Spring Cloud。

1)Spring是以Bean为中心,提供IOC、AOP等功能。

2)Spring Boot是以Application为中心,提供自动配置、监控等功能。

3)Spring Cloud是以Service为中心,提供服务的注册与发现、微服务的调用与负载均衡等功能。

Spring Cloud虽然提供了非常强大的功能,但并不提供所有的实现,而是通过SpringCloud Common子项目定义了抽象API,然后不同厂商结合其自身的中间件提供自己的SpringCloud套件。

eg:

Netflix结合自己的Eureka、Ribbon、Hystrix等开源中间件实现了Spring Cloud Netflix。

kubernetes结合自己的apiserver、configmap等功能实现了Spring cloud kubernetes。

Alibaba结合自己的Nacos、Sentinel等开源中间件实现了Spring cloud Alibaba。

微服务架构的演变过程

1、单体架构

将整个业务功能实现写到一个工程中去。

优点:开发、部署、上线非常简单

缺点:代码耦合严重、牵一发而动全身

2、垂直应用架构

单体架构的升级改进。

1)从单体应用按不同的功能业务拆分成不同的应用

2)每个应用独立部署

3)每个应用都有独立的数据库

4)每个应用有独立的运营

优点:服务、部署独立,水平扩展容易

缺点:搭建复杂,服务之间关系错综复杂,维护困难。

3、SOA架构(面向服务架构)

垂直应用架构的升级改进,是一个系统架构的设计思想。

4、业界最流行的软件开发架构:微服务架构

入口是服务网关,可以接受任何类型客户端的访问请求。

image.png

搭建前准备工作

安装IDEA和插件

File->Settings->Plugins

image.png

image.png

推荐几个安装的插件:

1)Lombok

使用了lombok的注解后,不需要写也不需要生成get/set方法,减少了代码量,也降低了代码维护的负担。虽然可以使用IDEA的快捷键生成get、set等方法,但是如果Bean的属性有增删改时,这些方法就需要对应地进行增删改操作,不利于代码维护。

2)GsonFormatPlus

这个插件可以根据JSON 字符串自动的生成实体类。

3)Json Parser

用来在IDEA内验证和格式化JSON字符串,不用再去网页中验证。

4)REST Client plugin

可以不用在Postman中测试API,只需要编写简单的HTTP脚本就可以完成测试,并且这些脚本还具有存档的功能。

如果感兴趣可以接下来一起搭这个项目,后续会将搭好的项目上传。如果文中有写错的也请大家指出,谢谢。