读书笔记--分布式服务架构对比及优势

      本篇是在上一篇的基础上,主要对共享服务平台建设所依赖的分布式服务架构进行学习,主要记录和思考如下,供大家学习参考。随着企业各业务数字化转型工作的推进,之前在传统的单一系统(或单体应用)模式中,每个系统都要做这些公共的功能或模块,比如用户管理,权限认证,日志,邮件,财务等等,随着企业各大应用系统的不断扩展,各垂直业务板块逐步沉淀形成各自的核心业务的数字化能力,提出了基于SOA理念的分布式服务架构,SOA理念主要特性有面向服务的分布式计算、服务间松散耦合、支持服务的组装、服务注册、自动发现、以服务契约方式定义服务交互方式等,本文介绍的ESB、HSF及微服务都是基于SOA理念,只是处于不同的发展阶段和不同的应用场合,目前比较流行的是部署到Docker中的微服务架构,实现一台机器计算、存储资源充分利用的同时,实现服务的解耦,提升应用的可扩展性、高效稳定性和应对变化的快速响应性等。以下重点总结了分布式架构有哪些?分布式架构带来哪些好处或优势,以及最新的去中心化微服务架构是什么,有哪些显著特征等。

一、分布式服务架构有哪些?

1.中心化服务架构:最有代表性的是传统厂商提出的ESB模式,相对于单一系统的“点对点”对接模式来说,ESB降低了系统之间的耦合性,让服务的提供者和调用者都可以通过企业服务总线(即ESB)实现服务的提供和接口的订阅及调用,为系统提供高效、稳定的集成,同时在负载均衡、服务管控方面提供了专业化能力。但这种服务架构带来一个致命缺点就是每次服务调用至少需要4次网络会话创建和数据传输(服务调用者--ESB--服务提供者--ESB--服务调用者)。如下图。

2.去中心化服务架构:最有代表性的是阿里的HSF(High Speed Framwork,戏称好舒服),他除了具备上述ESB的所有特性之外,最重要的一点就是服务提供者和调用者之间进行服务交互时不需要任何路由中介,避免了中心点带来平台能力难扩展问题,以及潜在的雪崩影响,但对不同技术接口的支持、数据格式转换、服务动态路由等功能需要服务应用本身来考虑并编写,主要以服务契约的方式保障服务接口和稳定性,大大降低了服务发生变化给服务调用者带来的影响。这种服务架构只需要2次网络会话创建和数据传输(服务调用者和服务提供者之间),同时这种架构还具备服务的线性扩展支持和容错机制支持等。如下图。

二、分布式服务架构设计带来哪些优势?

1.降低不同模块开发团队的协同成本,业务响应更加迅速:不同功能模块间进行了清晰、稳定的服务契约定义,并由不同的转正开发团队负责完成并支持迭代。
2.大大降低系统间的耦合度及整体复杂度,各个开发团队可专注于各自的业务模块:应用或服务拆分后,由不同团队负责各自领域内的最专业的业务服务,能够提供更专业和更稳定的服务,同时对于新员工尽快理解自己负责的业务,尽快投入的生产业务中,便于接续传承。
3.避免了个别模块的错误给整体带来的影响:各个服务中心独立部署,避免了个别业务的错误导致整体业务的无法开展。
4.业务拆分后解放了对单数据库集群连接数的能力依赖:拆分形成的各个服务中心,后端都有自己独立的数据库集群,原来存储的数据库连接数限制得到了较好的解决。
5.做到针对性的业务能力扩容,减少不必要的资源浪费:从之前单一的WAR包到几十个上百个WAR包的独立部署,拆分后可以精准的根据业务需要进行能力扩容,资源得到充分利用。

三、最新的去中心化服务架构--微服务架构的典型特征

应该说微服务架构也是基于SOA理念提出的,只是微服务更加聚焦、粒度更小、更专业。微服务可以说是SOA理念落地的最佳实践。同时,微服务的服务设计要从业务维度进行划分,要考虑业务的前瞻性,并考虑服务能力的通用性和扩展能力等。另外,要向让微服务真正落地并持续生效发展,原有的组织机构,特别是企业信息中心等组织架构需要进行相应的调整优化,要围绕以服务为中心的持续运营、更新演变进行调整完善。
微服务具有以下典型特征
1.分布式服务组成的系统
2.按照业务而不是技术来划分组织
3.做有生命定的产品而不是项目
4.智能化服务端点与傻瓜式服务编排
5.自动化运维
6.系统容错
7.服务快速演化
可以说,企业的微服务建设是一个持续的过程工程,不仅仅是一个技术改变,更是一个业务不断演进的结果。微服务不是通过一个项目建设形成的,而是需要在业务发展过程中不断沉淀服务能力,而且只有沉淀到一定阶段,企业才能真正感受到微服务架构带来的长远价值,从而让企业飞得更高、飞得更远。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8355.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ADS的电感和变压器的建模过程

1. 电感二端口建模 对于固定尺寸单圈电感,从0.5G-200GHz的仿真,并提取其模型 如果想要在50GHz前把模型建准,仿真可能要建到200G,因为需要高频的数据,频率越高信息也越多。首先要调用文件由于数据是存在一个文件夹里面的…

使用Maxscript定义纹理贴图的方法

在3ds Max中,MaxScript 是一种用于插件编写和自动化任务的强大工具。通过MaxScript,你可以创建和操作对象、材质、灯光等等。要为材质分配纹理贴图,你可以按照以下方法来编写脚本。直接代码: myBmp = bitmaptexture filename:"D:\map001.tga" meditmaterials[1]…

初阶数据结构:链表(二)

目录 一、前言 二、带头双向循环链表 1.带头双向循环链表的结构 (1)什么是带头? (2)什么是双向呢? (3)那什么是循环呢? 2.带头双向循环链表的实现 (1)节点结构 (2…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…

环境搭建--vscode

vscode官网下载合适版本 安装vscode插件 安装 MinGW 配置环境变量 把安装目录D:\mingw64 配置在用户的环境变量path里即可 选择用户环境变量path 点确定保存后开启cmd输入g,如提示no input files 则说明Mingw64 安装成功,如果提示g 不是内…

爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头

仰望U8原地转向的示意图如下,不动方向盘的情况下,车可以自己转圈圈: 原理也很简单,仰望u8是四轮驱动,四个轮子都单独由四个轮边电机驱动。主要我们将左右的车轮轮速控制成左右两边轮速相同,但是方向相反&am…

1.1第1章DC/DC变换器的动态建模-1.1状态平均的概念--电力电子系统建模及控制 (徐德鸿)--读书笔记

电力电子系统一般由电力电子变换器(滤波电路和开关)、PWM 调制器、驱动电路、反馈控制单元构成,如图1-1所示。由控制理论的知识,电力电子系统的静态和动态性能的好坏与反馈控制设计密切相关。要进行反馈控制设计,首先要…

6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~

#万物OOP 注意: 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。 上一篇文章我们 做了音乐播放器后台的功能。参考地址: https://jsonll.blog.csdn.net/article/details/145214363 这个项目已经好几天也没更新了,因为临近放…

WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ

根据WGCLOUD官网的信息,目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块:进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控

豆包MarsCode:字符串字符类型排序问题

问题描述 思路分析 我们需要对字符串中的字母、数字、问号按照规则进行排序,具体要求是: 问号的位置不变。数字的位置不变,但数字之间要按照从大到小排序。字母的位置不变,但字母之间要按照字典序排序。 解决此问题的思路分为以…

[STM32 标准库]定时器输出PWM配置流程 PWM模式解析

前言: 本文内容基本来自江协,整理起来方便日后开发使用。MCU:STM32F103C8T6。 一、配置流程 1、开启GPIO,TIM的时钟 /*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //开启TIM2的时钟RCC_APB2PeriphClockC…

无人机红外热成像:应急消防的“透视眼”

无人机红外热成像:应急消防的“透视眼” 亲爱的小伙伴们,每年一到夏天,应急消防的战士们就像上紧了发条的闹钟,时刻准备应对各种灾害。炎热天气让火灾隐患“蹭蹭”往上涨,南北各地还有防洪救灾、台风、泥石流等灾害轮…

【Redis】常见面试题

什么是Redis? Redis 和 Memcached 有什么区别? 为什么用 Redis 作为 MySQL 的缓存? 主要是因为Redis具备高性能和高并发两种特性。 高性能:MySQL中数据是从磁盘读取的,而Redis是直接操作内存,速度相当快…

LLM - 大模型 ScallingLaws 的指导模型设计与实验环境(PLM) 教程(4)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145323420 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scalin…

书生大模型实战营2

L0——入门岛 Python基础 Conda虚拟环境 虚拟环境是Python开发中不可或缺的一部分,它允许你在不同的项目中使用不同版本的库,避免依赖冲突。Conda是一个强大的包管理器和环境管理器。 创建新环境 首先,确保你已经安装了Anaconda或Minico…

力扣111二叉树的最小深度(DFS)

Problem: 111. 二叉树的最小深度 文章目录 题目描述思路复杂度Code 题目描述 思路 1.欲望求出最短的路径,先可以记录一个变量minDepth,同时记录每次当前节点所在的层数currentDepth 2.在递的过程中,每次递一层,也即使当前又往下走…

Scrapy如何设置iP,并实现IP重用, IP代理池重用

前置知识 1/3乐观锁 2/3 Scrapy流程(非全部) 3/3 关于付费代理 我用的"快代理", 1000个ip, 每个ip1min的有效期, 你用的时候, 把你的链接, 用户名填上去就行 设置代理IP 🔒 & 帮助文档: ①meta ②meta#proxy$ 语法: ①proxy的设置: Request对象中…

渗透测试-WAF是什么以及原理解释 waf功能详解

目录 waf功能介绍 waf出现的地点: 什么是waf 功能: 常见的系统攻击分为两类 一是利用Web服务器的漏洞进行攻击 二是利用网页自身的安全漏洞进行攻击 WAF主要功能: waf的特点1 waf主要功能2 网马木马主动防御及查杀 流量监控 网站漏洞防御功能 危险组件…

KF-GINS源码阅读

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、KF-GINS 简介1、程序概述2、相关资料3、文件结构4、第三方库 二、编译、调试三、类型定义1、核心类:GIEngine2、文件读写类型3、配…

基础项目实战——3D赛车(c++)

目录 前言一、渲染引擎二、关闭事件三、梯形绘制四、轨道绘制五、边缘绘制六、草坪绘制七、前后移动八、左右移动​九、曲线轨道​十、课山坡轨道​十一、循环轨道​十二、背景展示​十三、引入速度​十四、物品绘制​十五、课数字路障​十六、分数展示​十七、重新生成​十八、…