微服务架构演变过程(上) | 带你读《Spring Cloud Alibaba(2019)》之一

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本节主要介绍了微服务架构演变过程:传统单体架构——分布式架构——SOA面向服务架构——微服务架构模式。

下一篇:微服务架构演变过程(下) | 带你读《Spring Cloud Alibaba(2019)》之二

本文来自于《精通Spring Cloud Alibaba》课程的整理,讲师为余胜军,点击查看视频内容
本文系志愿者整理,供配合学习中心课程使用,不做商业用途。

Spring Cloud Alibaba课程说明

该课程主要讲解Spring Cloud Alibaba核心组件 Nacos(服务注册与发现和分布式配置中心)、Sentinel(服务保护框架)、Seata(分布式事务解决框架)、阿里云OSS、Alibaba Cloud SchedulerX等。

注意事项:该课程需要有一定的SpringBoot基础知识,如果对SpringBoot不了解的话、可以在蚂蚁课堂中学习SpringBoot基础内容。

微服务架构演变过程

传统单体架构——分布式架构——SOA面向服务架构——微服务架构模式

传统架构

传统的架构,也就是为单点应用,也就是大家在早期所学习的JavaEE知识SSH或者SSM架构模式,会采用分层架构模式:数据库访问层、业务逻辑层、控制层,从前端到后台所有的代码都是一个开发者去完成。
该架构模式没有对我们业务逻辑代码实现拆分,所有的代码都写入到同一个工程中里面,适合于小公司开发团队或者个人开发。
com.mayikt.controler---springmvc 视图层 jsp/ftl
com.mayikt.service---业务逻辑层
com.mayikt.dao---数据库访问层
将项目的代码都放入到同一个项目,部署在同一个Tomat中。

该架构模式存在哪些优、缺点
优点:开发简单、运维简单
缺点:该架构模式没有对我们的业务逻辑实现拆分,所有的代码都写入到同一个项目中,
只适合小团队或者个人形式开发,不适合团队模式协同工作开发

这种架构模式最大的缺点,如果该系统一个模块出现不可用、会导致整个系统无法使用。
应用场景:政府项目、管理系统、crm、oa适合于个人小团队开发。

分布式架构

分布式架构模式是基于传统的架构模式演变过来,将传统的单点项目根据业务模块实现拆分、会拆分为会员系统、订单系统、支付系统、秒杀系统等。 从而降低我们项目的耦合度,这种架构模式开始慢慢的适合于互联网公司开发团队。

如果项目团队人数较多需要进行项目拆分。需要把单体项目不同的系统。大型公司和大型开发团队多用这种团队开发的模式。
1.png

不同的系统如何连成一块呢?需要通过域名跳转。

会员系统:memner.mayikt.com
支付系统pay.mayikt.com
命名系统化:包含服务和视图层

SOA面向服务架构

不同系统间的会话是如何进行绑定的呢?需要用到SSO单点登入系统。
2.png
SOA架构模式也称作为:面向服务架构模式、俗称面向与接口开发,将共同存在的业务逻辑抽取成一个共同的服务,提供给其他的服务接口实现调用、服务与服务之间通讯采用rpc远程调用技术。

通过SSO系统能解决代码冗余的问题。
服务:只是有接口 没有控制层 没有视图层
com.mayikt.service
com.mayikt.dao
3.png
这种模式叫作SOA面向业务逻辑的开发。

SOA架构模式特点:

1、SOA架构通讯中,采用XML方式实现通讯、在高并发下通讯过程中协议存在非常大冗余性,所以在最后微服务架构模式中使用JSON格式替代了XML。

2、SOA架构模式实现方案为Web Service或者是ESB企业服务总线 底层通讯协议SOAP协议(Http+XML)实现传输。

4.png

传统政府、银行项目还是保留的在使用Web Service
互联网公司肯定采用http+json形式实现运输

ESB企业服务总线

解决多系统之间跨语言通讯,数据协议的转换,提供可靠消息传输。

基于IDEA快速构建Web Service

Web Service服务器端
public class UserService {

    @WebMethod
    public String getUser(Long id) {
        return "mayikt用户:" + id
                ;
    }

    public static void main(String[] args) {
        Endpoint.publish("http://192.168.18.218:8089/service/UserService", new UserService());
        System.out.println("服务发布成功");

    }

http://192.168.18.218:8089/service/UserService?wsdl 获取wsdl
wsdl文件描述接口的调用地址 服务的接口 方法 参数等。

Web Service客户端

5.png

public class WebServiceClient {
    public static void main(String[] args) throws ServiceException, RemoteException {
        UserServiceServiceLocator userServiceServiceLocator = new UserServiceServiceLocator();
        UserService userService = userServiceServiceLocator.getUserServicePort();
        String result = userService.getUser(10L);
        System.out.println("result:" + result);
    }
}
相关文章
|
15小时前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
16小时前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
18小时前
|
运维 Kubernetes 监控
自动化运维的新篇章:容器化与微服务架构的融合
【6月更文挑战第22天】在数字化时代的浪潮中,企业IT架构正经历着一场深刻的变革。本文将探讨自动化运维如何通过容器化技术与微服务架构的结合,提升系统的可维护性、扩展性和敏捷性。我们将深入分析这一结合背后的技术细节,以及它如何影响日常运维工作,同时提供一系列实用的操作建议和最佳实践。
|
1天前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构演进
【6月更文挑战第21天】随着云计算技术的不断成熟,云原生概念逐渐成为IT行业的新宠。本文将聚焦于云原生环境下的微服务架构,探讨其在设计哲学、技术选型和部署策略上的演进。我们将通过分析微服务架构的核心原则及其与容器化、持续集成/持续部署(CI/CD)和DevOps实践的结合,来揭示如何构建一个高效、可靠且易于维护的分布式系统。
|
1天前
|
监控 持续交付 数据安全/隐私保护
Python进行微服务架构的监控
【6月更文挑战第16天】
12 5
Python进行微服务架构的监控
|
2天前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
8 0
|
2天前
|
负载均衡 API 开发者
深入理解微服务架构中的API网关模式
在微服务架构中,API网关不仅仅是一个请求转发的节点,它承担着请求路由、负载均衡、认证授权、限流熔断等关键职责。本文将深入探讨API网关的设计原则、实现技术以及在实际部署中的最佳实践,帮助开发者构建一个高效、安全且可扩展的微服务入口。
|
2天前
|
存储 Prometheus 监控
云原生架构下的微服务治理之道
在数字化转型的大潮中,云原生技术以其弹性、可扩展和高度自动化的特点成为企业IT架构升级的首选。本文将深入探讨云原生架构下微服务治理的核心要素,包括服务发现、配置管理、流量控制等关键问题,旨在为读者提供一套系统的微服务治理策略。通过分析云原生环境下的微服务特点,结合具体的技术和工具,文章将为构建高效、稳定、易于管理的微服务系统提供实践指导。
|
2天前
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
本文旨在深入探讨在云原生环境下,如何有效实施微服务治理。通过分析微服务架构的核心价值与挑战,结合具体的云平台工具和最佳实践,文章详细阐述了服务发现、配置管理、弹性设计等关键治理策略。此外,文章还提供了关于如何在保障系统可观测性的同时,确保安全性和合规性的实用建议。读者将获得一套完整的微服务治理框架,以及在云原生旅程中应对复杂问题的能力提升。
|
19天前
|
消息中间件 Java 持续交付
Spring Cloud Alibaba 项目搭建步骤和注意事项
Spring Cloud Alibaba 项目搭建步骤和注意事项
168 0
Spring Cloud Alibaba 项目搭建步骤和注意事项