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

简介: 本节主要介绍了微服务架构演变过程:传统单体架构——分布式架构——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);
    }
}
相关文章
|
6月前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
4574 91
|
6月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
6882 95
|
8月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1217 3
|
7月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
762 117
|
10月前
|
JavaScript 前端开发 Java
垃圾分类管理系统基于 Spring Boot Vue 3 微服务架构实操指南
本文介绍了基于Java技术的垃圾分类管理系统开发方案与实施案例。系统采用前后端分离架构,后端使用Spring Boot框架搭配MySQL数据库,前端可选择Vue.js或Java Swing实现。核心功能模块包括垃圾分类查询、科普教育、回收预约等。文中提供了两个典型应用案例:彭湖花园小区使用的Swing桌面系统和基于Spring Boot+Vue的城市管理系统,分别满足不同场景需求。最新技术方案升级为微服务架构,整合Spring Cloud、Redis、Elasticsearch等技术,并采用Docker容器
563 1
|
6月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1093 2
Spring Boot 3.x 微服务架构实战指南
|
7月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
5922 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API