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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 本节主要介绍了微服务架构演变过程:传统单体架构——分布式架构——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);
    }
}
相关文章
|
1月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
120 6
|
1月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
44 1
|
1月前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
12天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
116 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
11天前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
112 36
微服务架构解析:跨越传统架构的技术革命
|
9天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
118 13
Spring Cloud Alibaba:一站式微服务解决方案
|
16天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
59 5
|
1月前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
51 7
|
29天前
|
JavaScript Java API
深入解析微服务的架构设计与实践
深入解析微服务的架构设计与实践
37 0
|
2月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。