微服务系统架构

机器人中的数值优化(十五)——PHR增广拉格朗日乘子法 本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例 阅读详情
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。

微服务系统架构

背景

回忆一下微服务架构是如何进化产生的,最早出现的是单体应用架构,后来为了具备一定的扩展和可靠性,就有了垂直拆分架构,也就是加了个负载均衡,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。

什么是微服务架构

微服务架构的核心思想是:分而治之,就是开发多个围绕业务领域的组件来构建应用,让组件可以独立的开发、测试、部署和加速。

其优点在于:

  • 支持独立迭代按需扩展,适合业务快速变化和扩展

  • 支持分布式或多团队开发,不同的团队负责各自不同的领域,相对独立、专注,也就更高效

  • 支持多语言混合开发、多版本组件独立部署、测试和共存

微服务架构的前置条件

从技术角度看:服务注册、统一配置、安全认证、统一日志/告警、分布式事务、持续集成等基础服务要前置于业务模块之前完成,该部分工作如果在业务实现后,重构增加该部分功能会增加不必要的成本。

从团队角度看:架构和团队的影响是双向的,微服务在组织的落地需要实践或者点,需要组织内部成员在:服务划分、持续交付、问题分析等领域形成一些经验后,再分步骤推广。

微服务架构的原则

无状态原则

首先,需要定义一下状态,如果数据需要被多个服务或特定服务的多个阶段共享,可以将其成为状态。

无状态原则并不是说在微服务架构中不允许状态的存在,而是要把有状态的服务改变成无状态的独立业务服务,比如:将状态数据在请求间传递或放到分布式存储中,都可以解决状态服务的问题,这样服务就可以按需动态伸缩。

Restful通信风格

  • JSON请求和响应,轻量简单,人机可读

  • 实现编程语言无关

  • 基于无状态HTTP协议,易测试易扩展

前后端分离

简单的说,就是前后端代码物理分离,而不是将:JS, HTML, CSS, JSP都堆到一起,后期难以维护。

微服务架构与SOA架构的异同

相同点:

  • 业务被拆分成多个不同的服务

  • 单个服务支持部署多个

  • 单一服务支持同时多版本部署

不同点:

  • 微服务的指导方针中包括:每个服务使用独立的数据库存储

  • SOA服务之间通常通过ESB消息总线进行通信,微服务之间通常直接通信

微服务架构适用的场景

  • 研发团队:研发团队分布式、多开发语言场景下相对适合,人员在20人以上的规模

  • 有独立的运维部署团队

  • 业务复杂:10+以上核心业务模块,且业务持续升级改进

  • 项目需要长期迭代维护

  • 业务处于高速发展期或成熟期

微服务架构不适用的场景

  • 初创公司或10人以下的小团队

  • 概念验证性质的项目

微服务与单体应用在生产率上的比较

根据马丁·福勒介绍, 在系统复杂度较小时,单体应用的生产率更高,微服务架构反而降低了生产率。但是,当复杂度到了一定规模,无论采用单体应用还是微服务架构,都会降低系统的生产率。区别是:单体应用生产率开始急剧下降,而微服务架构则能缓解生产率下降的程度。如下图:

file

结束语

在软件开发的世界,没有银弹,架构的选择是基于研发团队、业务需求和市场机会等因素综合考虑的结果,不要人云亦云,也不要因循守旧,

Enjoy GreatSQL :)

文章推荐:

面向金融级应用的GreatSQL正式开源 https://mp.weixin.qq.com/s/cI_wPKQJuXItVWpOx_yNTg

Changes in GreatSQL 8.0.25 (2021-8-18) https://mp.weixin.qq.com/s/qcn0lmsMoLtaGO9hbpnhVg

MGR及GreatSQL资源汇总 https://mp.weixin.qq.com/s/qXMct_pOVN5FGoLsXSD0MA

GreatSQL MGR FAQ https://mp.weixin.qq.com/s/J6wkUpGXw3YkyEUJXiZ9xA

在Linux下源码编译安装GreatSQL/MySQL https://mp.weixin.qq.com/s/WZZOWKqSaGSy-mpD2GdNcA

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee:

https://gitee.com/GreatSQL/GreatSQL

GitHub:

https://github.com/GreatSQL/GreatSQL

Bilibili:

https://space.bilibili.com/1363850082/video

微信&QQ群:

可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

QQ群:533341697

微信小助手:wanlidbc

本文由博客一文多发平台 OpenWrite 发布!

链接文件及功能安全:S32K3如何将FLASH驱动放到RAM里面、RAM如何实现软件复位数据不丢失操作。 在通过RTD的SDK也好MCAL也好,始终存在一个问题,生成的代码除了看门狗模块,默认都是放在flash里面,按照正常逻辑来看没啥大的问题,思考一个问题:Flash放在0x100的位置,但是此时我们要操作0x100怎么办?那肯定不允许啊,但是将flash的驱动放在RAM里面就可以避免这个问题的产生。Flash的特性:PF0能操作PF1,当然PF1也能操作PF0的,以此类推,只要不操作自身,想怎么玩都可以。这也是一个物理特性吧。 阅读详情

相关推荐

ESP32+LED12864液晶屏实战:手把手教你显示中文与自定义图标(附完整代码)

本文详细介绍了如何使用ESP32单片机驱动带字库的LED12864液晶屏,实现中文显示与自定义图标。从硬件选型、接线方案到驱动编写、字库解析,提供了完整的实战代码与优化技巧,并最终构建了一个智能家居控制面板的完整示例项目。

weixin_29212867的博客 146

关于微服务的理解

微服务创始人James Lewis&Martin Fowler:不同的业务团队之间有明显的边界、对应的服务之间也有明显的边界。

qq_41151774的博客 656

【3】Ubuntu18.04下载与安装,以及中文输入法的安装

Ubuntu18.04下载与安装一、下载二、安装(在VMware 16 pro中安装Ubuntu18.04)三、Ubuntu中安装中文输入法1.检查 fcitx 框架2.安装输入法 一、下载 下载地址:Ubuntu Releases 往下拉,找到自己需要的安装版本(建议不要安装最新版,因为你在使用时候遇到的错误大多都是以前版本的,最新版本的,解决方案特别少) 我这里安装的是Ubuntu18.04 一般都是使用desktop版本的(desktop版和server版本的区别:请看这篇文章) 之后点击下载即

斯基的朦胧 1万+

微服务架构设计核心理论:掌握微服务设计精髓

单体应用时代,全都耦合在一起,牵一发而动全身。所有功能一起上线一起回滚。代码复杂度混乱。微服务时代,业务模式糙快猛,敏捷编程。小步快跑,独立演进,独立部署,快速迭代。团队赋能(每个微服务有各自团队)。边界清晰,以大化小-服务拆分,三高应用-分治。

秃了也弱了 1802

使用python对创芯科技CANalyst-II分析仪进行二次开发(详细教程)

使用python对创芯科技CANalyst-II分析仪进行二次开发

ningqingzy的博客 1万+

ArduSub程序学习(1)——ardupilot框架整理

AP_HAL层(硬件抽象层)是我们制作 ArduPilot 的方式可移植到许多不同的平台。有一个顶级AP_HAL libraries/AP_HAL,用于定义代码其余部分的接口 有针对具体的板子特性,然后就有了AP_HAL_XXX 子目录,例如,AP_HAL_AVR 用于基于 AVR 的 开发板,AP_HAL_PX4用于 Pixhawk 开发板和 AP_HAL_Linux 基于 Linux 开发板。工具目录tools directories工具目录是杂项支持目录。

weixin_49839886的博客 2816

SpringCloud微服务电商系统在Kubernetes集群中上线详细教程

程序架构一共经历了3个阶段:单体架构、SOA架构、微服务架构。微服务系统应用由原来的单体变成几十到几百个不同的工程,会产生例如包括服务间的依赖,服务如何拆封,内部接口规范,数据传递等等问题,尤其是服务拆分,需要团队熟悉业务流程,懂得取舍,要保证拆分的粒度服务既符合“高内聚,低耦合”的基本原则,还要兼顾业务的发展以及公司的愿景,要还要说服团队成员为之努力,并且积极投入,在多方中间取得平衡。

web18484626332的博客 3076

QT应用编程: Win10系统下QT5.12搭建Android开发环境(配件齐全)

在win10系统下,搭建QT5.12.6 的Android开发环境。

7688

微服务架构的核心思想是什么?

微服务架构的核心思想是将一个大型、复杂的单体应用拆分成多个小型、独立且自治的服务,每个服务专注于单一的业务功能,通过轻量级通信机制(如HTTP/REST、gRPC等)进行交互。这种架构方式旨在提高系统的灵活性、可扩展性和可维护性,同时降低复杂性,适应快速变化的业务需求。微服务架构强调将业务功能进行解耦,每个服务独立开发、部署和扩展,服务之间通过API或消息总线进行通信。这种解耦使得每个服务可以独立迭代,而不会影响其他服务,从而提高了系统的灵活性和可维护性。

破损的天堂鸟博客 997

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

国科大学习资料--机器人智能控制_袁如意老师PPT后习题答案(学长精心整理)

人工神经元激活函数的作用是什么? 答:激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。 人工神经网络的学习规则有哪些?各有何特征? 答:大类可以分为无监督学习算法、有监督学习算法和强化学习。其中无监督学习算法指只有输入信息,没有期望的输出信息,如Hebb学习规则,神经元连接强度的变化与两个相互连接的神经元的激活水平成正比。竞争学习法则:网络各输出单元相互竞争,最后达到只有一个最强者激活。有监督学习算法指同时提供输入信息和对应的期望输出信息,如误差学习(Delta学

无名何许人的博客 1486

认识微服务-系统架构演变

认识微服务-系统架构演变1.系统架构演变1.1. 集中式架构1.2.垂直拆分1.3.分布式服务1.4.服务治理(SOA)1.5.微服务 1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mes...

shenzhen_zsw的专栏 753

AMBA-CHI协议详解(七)

本节描述该协议包含的支持系统保序需求的机制。

Crazzy_M的博客 1158

微服务系统架构演变

1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。我们到底是该乘坐微服务的船只驶向远方,还是偏安一隅得过且过? 其实生活不止眼前的苟且,还有诗和远方。所以我们今天就回顾历史,看一看系...

xiaoshuang的博客 4828

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

微服务系统架构设计参考

微服务系统架构设计参考

1179

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

项目系统架构-微服务框架

系统架构演变1. 系统架构1.1 集中式架构1.2 垂直拆分1.3 分布式服务1.4 微服务2. 服务间远程调用方式2.1 RPC2.2 Http2.3 两者比较 1. 系统架构 1.1 集中式架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。 存在的问题: 代码耦合,开发维护困难 无...

xiazhiyou 3062

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

系统架构演变:SOA、微服务架构的区别和联系

1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。我们到底是该乘坐微服务的船只驶向远方,还是偏安一隅得过且过? 其实生活不止眼前的苟且,还有诗和远方。所以我们今天就回顾历史,看一...

琦彦 8889

SpringCloud微服务架构实战之认识微服务系统架构的发展历史

微服务架构是近两年在软件架构领域出现的一个新名词。虽然诞生时间不长,但其在各种演讲、文章、图书中出现的频率已经让很多人意识到它给软件领域所带来的影响。到底什么是微服务架构呢?当我们谈论微服务时,它代表一种什么样的含义?它与传统的面向服务的体系结构(或称架构)(ServiceOriented Architecture,SOA)有什么异同点?本章,我们将揭开微服务的神秘面纱。本章的主要内容如下。1.系统架构的发展历史。2.常见的微服务架构。3.Spring Boot和Spring Cloud的关系。

程序员高级码农的博客 854

进入微服务世界,系统架构的发展阶段及主流微服务框架

本文首先介绍系统架构演变的几个阶段;然后介绍微服务框架 Dubbo 和 Spring Cloud,以及服务网格 Istio ;最后介绍 Dubbo 、Spring Cloud、Istio 三者之间的区别。

chen 1442

系统架构的演变:从单体到微服务的旅程

随着信息技术的快速发展,系统架构也在不断演变。从早期的单体架构到现代的微服务架构,每一次的变革都带来了更高的灵活性和可扩展性。本文将通过图解和代码示例,详细介绍系统架构的演变过程,并探讨微服务架构的优势和适用性。从单体架构到微服务架构,系统架构的演变经历了多个阶段。每种架构都有其适用的场景和优缺点。随着业务规模的不断扩大和复杂度的增加,微服务架构已经成为了一种主流的选择。它通过将系统划分为一系列微小的服务,实现了独立开发、部署和扩展,提高了系统的可维护性和可扩展性。

小阳同学的博客 1010

微服务介绍—— 系统架构演变过程

所有功能代码都部署在一起。

weixin_44800598的博客 2776

微服务:系统架构的演变

通过这篇文章我们来学习我们项目系统架构的演变过程。没部署过项目的或者没做过项目的小伙伴也可以康康,hhhh.. 当我们系统的用户逐渐增多,我们系统就必须具备了高可用、高并发这样的特性。如何解决? 1、单体应用架构 这种应用架构就是我们在校园中做项目(例如一个网站、一个小程序等)经常用的架构,说白了,学校也不可能给你几台服务器让你玩分布式,第一是有这种需求也不会交给学生做,第二是学校的系统一般的并发量还没达到这个级别。我个人现在大三,在学校做过大大小小很多系统,到最后说白了就是反复做同一个事,也没啥

Zystem 974

微服务---1系统架构的演变

0. 学习目标 了解系统架构的演变 了解RPC与Http的区别 掌握HttpClient的简单使用 知道什么是SpringCloud 独立搭建Eureka注册中心 独立配置Robbin负载均衡 会配置Hystix熔断 会使用Feign进行远程调用 能独立搭建Zuul网关 能编写Zuul的拦截器 1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架...

lucasmaluping的专栏 339

【系统架构师】-论文-微服务设计

2017年10月,我被任命为系统架构师参与了XXX 运营商AOP 系统架构升级项目,负责架构设计工作,该系统是运营商面向互联网销售产品的系统,自从年中上线流量包订购业务以来,系统订单量飞速上涨,月末订单量达 10 余万笔,客户希望通过营销活动进一步提升订单量,并承载更多业务,但我们评估当前架构无法支撑客户需求,因此提出本项目。本文以此项目为例,论述了微服务架构的在项目中的实际应用;

宣晨光 1632
上一篇: Prometheus+Grafana+钉钉部署一个单机的MySQL监控告警系统
下一篇: MySQL内存管理机制浅析
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值