微服务阶段

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 微服务阶段

近几年,微服务这个概念越来越火了,火到什么程度呢?2019年有一个统计说,两千家企业里,45%在使用微服务,16%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的15%的企业没有使用微服务。因此,今天了解一下微服务。

微服务架构

微服务架构能够实现由小型自主服务组成一个整体应用,各个组成部分之间是松耦合的,复杂性低,各个部分可以独立部署,修复bug或者引入新特性更容易,能够独立扩展,不同技术栈之间可以使用不同框架、不同版本库甚至不同的操作系统平台。

微服务产生背景

软件系统架构演进历史

在这里插入图片描述

单体架构

  • 单体架构是一种所有功能打包在一个容器中运行的设计风格
  • 一个实例中集成了一个系统的所有功能
  • 通过负载均衡软件 / 设备实现多例调用

单体架构的优缺点有如下几点

  • . 优点
    • 易开发
    • 易调试
    • 易部署
  • . 缺点
    • 可靠性差, 某个bug的错误会导致整个应用的崩溃;
    • 不易协同,协同开发时版本冲突频繁;
    • 升级困难,牵一发而动全身

面向服务的架构

是一种分布式服务架构的常见方式,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义明确的接口和协议联系起来,进而实现跨服务单元 / 系统交互的能力

有如下优缺点

  • 优点
    • 松耦合:SOA定义了良好的对外接口,通过网络协议对外提供服务,服务之间表现为松耦合性
    • 独立性:某个服务的结构发生改变时,只要接口保持不变,不影响整个流程对外提供服务
    • 可重用:SOA通过定义标准的对外接口,可以让多个使用方同时使用,增加可重复使用性
  • 面临的挑战
    • 随着大型互联网公司对和组织机构对大规模弹性部署和敏捷开发的需求,面向服务的框架(SOA)逐渐难以应付
    • 同时伴随着虚拟化技术、容器技术的不断发展,持续交付方法论的深入人心,微服务应用而生

微服务

微服务是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(即服务)为基础,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通。每个服务都围绕具体业务进行构建,并且能够被独立部署。

  • 是一套架构方法和体系
  • 由很多体量小实现特定功能或业务的服务构成
  • 服务松耦合,独立开发、独立部署
  • 服务可以用不同语言开发

    微服务比SOA的优势

  • 复用率更高
  • 快速响应
  • 弹性扩展
  • 支持异构

微服务怎么实现

微服务要解决的问题

  • 服务划分
  • 服务注册与调用
  • 延迟队列
  • 服务熔断处理
  • 缓存设计
  • 分布式事务实现

    服务的划分原则

    服务的划分是微服务设计的第一步,也是成败的关键
  • 业务边界清晰
    各服务有清晰的责任及边界,一个服务对应一块业务,服务间多为单向依赖
  • 最小化的变更
    新增或变更业务上有很明确的服务对应,某一业务需求的变更影响的服务应该尽可能的少
  • 最大化的复用
    服务设定要考虑复用的场景,应该尽可能最大化的实现服务复用

微服务技术框架

Spring Cloud

Spring Cloud 是一个基于Spring Boot实现的服务治理框架,Spring boot专注于快速、方便集成的单个个体,Spring Cloud关注全局服务治理

Dubbo

Dubbo 是阿里巴巴公司开源的一款高性能、轻量级分布式RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
在这里插入图片描述

  • Netflix Eureka 服务发现:核心组件、负责服务注册、管理服务列表
  • Netflix Ribbon 负载均衡:提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起
  • Netflix Hystrix 服务容错:隔离措施的一种实现,可以设置在某种超时或者失败情形下断开依赖调用 or 返回指定逻辑,从而提高分布式系统的稳定性
  • SpringCloud Config:解决分布式系统的配置管理方案,包含了客户端和服务端两个部分,将配置信息中央化保存
  • SpringCloud Security 安全认证:SpringCloud Security 用于构建安全的应用程序和服务,在Spring Boot基础上,可以快速创建实现常见模式的系统安全,如单点登录,令牌中继和交换。
  • SpringCloud Sleuth 服务链路跟踪:能跟踪一个用户请求的过程,捕获这些跟踪数据,构建微服务整个调用链的视图,是调试和监控微服务的关键工具。

微服务的困难

  • 业务结构复杂
  • 拆分粒度难以把握
  • 部署维护困难
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
6月前
|
Kubernetes 安全 Docker
微服务中的部署方法。
# 微服务 # 部署 # 去 # 开发运营
|
3月前
|
监控 Java API
构建微服务架构的简易指南
【8月更文挑战第31天】在这篇文章中,我们将探索如何从零开始搭建一个微服务架构。通过简单易懂的语言和步骤,我们将一起学习设计、实现和部署微服务的最佳实践。无论你是后端开发的新手还是希望提升现有技能,本文都将为你提供有价值的指导。
|
运维 负载均衡 监控
微服务系列 2:微服务化框架的模型和治理能力设计
微服务系列 2:微服务化框架的模型和治理能力设计
|
负载均衡 前端开发 网络协议
微服务架构实施原理详解
基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发
微服务架构实施原理详解
|
SpringCloudAlibaba 运维 Dubbo
什么是微服务?架构的演变过程
什么是微服务?架构的演变过程
358 0
什么是微服务?架构的演变过程
|
缓存 Kubernetes 监控
【微服务】复杂系统:微服务与人类
【微服务】复杂系统:微服务与人类
|
XML 监控 测试技术
「微服务架构」七种微服务反模式
「微服务架构」七种微服务反模式
|
存储 运维 监控
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
[微服务架构 ]微服务集成中的3个常见缺陷 - 以及如何避免它们
|
人工智能 运维 监控
[微服务]3分钟决策是否要用微服务架构
[微服务]3分钟决策是否要用微服务架构
139 0
[微服务]3分钟决策是否要用微服务架构
|
运维 监控 安全
持续改进微服务
公司构建大中台之后的事情。
120 0