首页 > 其他分享 >单体服务和微服务的区别

单体服务和微服务的区别

时间:2024-07-15 10:55:18浏览次数:7  
标签:网关 架构 区别 代码 单体 模块 服务 rbc

单体架构的不足

1 便于开发,易于测试,易于部署,无法非模块,无法扩展,无法独立升级,io模块和cpu模块,可靠性差,小的模块内存泄露,大的bug,统一框架和语言,变更成本高,无法引入新的语言,代码修改,扩展麻烦,测试麻烦,可靠性,

2 复杂性,代码混乱,维护麻烦,交互效率低,编译,调试耗时间,容易冲突,bug难找,风险大,发布的频次低,版本更新慢,

微服务架构

1 解决非功能架构,高内聚,低耦合,不同放入语言和存储,

2 优势:易于开发和维护,启动和调试速度快,提高开发效率,独立部署,晚上访问量大,微服务的修改不需要协调其他的服务,减少沟通成本,代码到服务边界的影响,便于横向扩展和扩容,独立扩容,拆分小服务,系统级别的扩展,不同的团队维护,减少沟通的成本,不同的团队各司其职,独立负责某些服务,较少技术的,不同的技术,go,ES,redis,尝试新的技术变得容易,新的模块尝试新的技术,

3 api网关:身份验证,动态路由请求,数据的聚合,

微服务的挑战

1 服务的需要自己的额数据库,部署在共享的数据服务器,修改配置,自己的业务能力,了解自己的产品和业务,才能划分边界,高内聚和低耦合,

2 服务拆分:领域模型,组织架构,单一职责,事务的一致性,是咧在不同的服务器,事务的处理,分布式事务,延时性高,消息队列,事务操作尽量防止统一服务器,服务通信:分布式架构,协议?rbc,restapi负载?

http:学习门槛低,夸语言,便于调试,缺点:协议繁琐,文档不好维护,性能差,

rpc:基于tcp协议,dubbo等,rbc:代码提示,协议维护在代码里面,缺点:很多的rbc不支持夸语言,

服务注册表:端口,服务的名字,zk;负载均衡,

3 服务网关:身份验证,代码的复用性,流程控制,内网和外网的边界,日志统计,安全防御,,业务专注业务!!!服务网关不应该有过多的业务逻辑,高可观察,监控指标聚合输出到图表输出,分布式追踪,输入和输出,一个请求长,追踪!!!服务的依赖关系,服务降级:不可用,缓存展示或者其他,接口幂等性,

最佳实践

1 代码的脚手架,统一,搭建代码,

2 独立的数据库,降低耦合,共享库不应该包含业务,

soa和微服务

1 技术站不同,soa:共享的数据库,力度比较粗,多个单体的组合,微服务:独立的数据库,力度更小的服务,

标签:网关,架构,区别,代码,单体,模块,服务,rbc
From: https://blog.csdn.net/m0_37871355/article/details/140432849

相关文章

  • 基于EF Core存储的Serilog持久化服务
    前言Serilog是.NET上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很......
  • Feign 动态设定服务器名称 与 调用接口
     1.新增编码器(由于使用了动态的Feign,所以不能像正常使用Feign一样指定configuration配置编码器)importfeign.RequestTemplate;importfeign.codec.EncodeException;importfeign.codec.Encoder;importorg.springframework.core.io.InputStreamResource;importorg.......
  • Mac 版 Excel 和 Windows 版 Excel的区别
    Excel是一款由微软公司开发的电子表格程序,广泛应用于数据处理、分析和可视化等领域。它提供了丰富的功能和工具,包括公式、函数、图表和数据透视表等,帮助用户高效地处理和管理大量数据。同时,Excel还支持与其他Office应用程序的集成,方便用户在不同软件之间进行数据交换和共享。Ma......
  • ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服
    系列目录ELKStack-Elasticsearch·搜索引擎·全文检索·部署应用·内部结构·倒排索引·服务接入ELKStack-Kibana(待续)ELKStack-Logstash(待续)ELKStack-Beats(待续)ELKStack-ApplicationPerformanceMonitoring(待续)本章基于:RHELinux......
  • 微服务是什么
    源文:微服务是什么微服务(MicroServices)最初是由MartinFowler于2014年发表的论文《MicroServices》中提出的名词,它一经提出就成为了技术圈的热门话题。 微服务,我们可以从字面上去理解,即“微小的服务”,下面我们从“服务”和“微小”两个方面进行介绍。1)所谓“服务......
  • 云计算【第一阶段(30)】部署Yum仓库及NFS共享服务
    一、Yum仓库1.1、Yum仓库概念学习YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无须管理员逐个、手工地去安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中......
  • 阿里云搭建vps服务器的过程
    最近突发奇想想要搭建一个阿里云的的vps服务器,下面是搭建的过程:首先,登录阿里云网站:搜索,esc控制台:点击创建实例:选择地区:选择实例规格:选择镜像:将存储规格改成100G(40G可能不够用)点击下一步:这里面不需要更改,点击下一步设置连接密码即可创建成功后点击启动......
  • Serverless无服务应用架构纵横谈2:边缘计算激战正酣
     Serverless无服务应用架构纵横谈2 前言6年前,我写了一篇《Serverless无服务应用架构纵横谈》。文中说到无论是公有云FaaS还是私有云FaaS,都不是云计算的未来。因为无论是Kubernetes还是PHP、Python、Node这些传统技术栈都太重了。那么,6年来,Serverless又有了哪些变化,是否有......
  • 【大型实战】企业网络实验(华为核心交换、ESXI7.0vmware虚拟机、DHCP中继、服务端网络
    需求实验vmware网络配置(企业内部一般为ESXI)这样服务器虚拟机使用192.168.200.X网段才能与用户侧互通vmware虚拟机配置(DHCP服务器网络配置)打开网络管理页面nmtui重置一下网络连接(重启网卡)检查IP地址ipaddr清空交换机所有配置信息并重启#quitres......
  • Python监控服务器状态程序
    前言最近服务器有几次被安全狗断网,没找到好的解决方法。就先写了个Python程序监控网络状态,断网5分钟强制重启服务器的脚步。代码importpsutilimportsocketimporttimeimportosimportdatetimedefcheck_internet_connection():try:socket.creat......