微服务开发

news/2024/9/24 18:30:11/

微服务架构使得小改动频繁上线和下线非常容易,可以直接在运行的产品上推送一个新的功能或者下线一个无用的功能:获得持续交付的能力。

SOA 的起源

  • SOA(Service-Oriented Architecture):将应用组织成一个独立的功能单元,可远程访问并进行操作和更新。SOA 的接口可以是 socket、IPC、共享内存、消息队列、RPC……,只要是在独立的进程中,通信方式并无限制。
  • 微服务是 SOA 的一种特定实现方式。

单体架构

  • 单体架构的代码组织简单,各个模块容易做到同构;部署简单,适合小型应用,通常是一个项目开始的最好方式
  • 数据通常中心化,对一个模块代码的改动容易扩散到其他模块
  • 可以合理划分模块,以软件包和软件库的方式重用代码:单体架构的运行是同一个进程,所以接口不够松散,库接口的升级可能导致“依赖地狱”。

微服务架构

  • 每个模块单独运行在独立的进程空间
  • 通过 REST 接口交互:交互格式与语言无关
  • 每个服务都独立保留数据,没有中心化的数据库
  • 定义微服务是一个轻量级应用,它通过定义良好的接口提供一组有限的功能,具有单一的责任,可以独立开发和部署。

微服务的好处

  • 开发团队的分工
  • 限制项目规模
  • 容易扩展和部署

微服务的缺点

  • 不合理的拆分:过早拆分是万恶之源
    • 如果你总是必须一起部署两个微服务 ,或者一个服务的修改会影响另外一个数据模型:可能没有正确拆分。
  • 更多的网络交互:网络问题、同步异步、相应时间、传输数据量
  • 数据的存储和分享:数据独立会不会造成重复的数据冗余
  • 兼容性问题:某个服务的升级,影响向后的兼容(重点是 API 设计)
  • 测试难度增加:越灵活 => 越难测试;越松散 => 越难测试

http://www.ppmy.cn/news/1529922.html

相关文章

【字符函数】strcpy函数(字符串复制函数)+strcat函数(字符串追加)+strcmp函数(字符串比较)【笔记】

1.复制函数--------------strcpy函数 函数使用 char*strcpy(char* destination, const char* source) strcpy函数用于拷贝字符串,即将一个字符串中的内容拷贝到另一个字符串中(会覆盖原字符串内容)。它的参数是两个指…

基于单片机的车载传感器数据处理系统

1总体方案设计 本次新能源汽车车载传感器数据处理系统,其系统总体架构如图2.1所示,采用STM32f103单片机作为控制器,通过DH11传感器实现温湿度检测;通过光敏电阻实现光照检测;同时其检测的信息通过ESP8266 WiFi模块传输…

如何选择适合的编程工具提高工作效率

---  随着科技的发展,编程已经成为各行各业不可或缺的一部分。在忙碌的工作环境中,如何选择合适的编程工具成为了每个开发者提升工作效率的关键。智能的代码编辑器、强大的版本控制工具、还是那些让你事半功倍的自动化脚本?让我们一起探讨&…

【Docker】Docker上安装MySql8和Redis

MySql安装 对于镜像中需要持久化保存的⽂件,需要通过-v挂载到宿主机上,这样这些⽂件才不会随着容器关闭⽽消失。 对于MySQL,需要将他的⽇志⽂件、数据⽂件和配置⽂件挂载到宿主机上。 # 拉取镜像 docker pull mysql:8 # 启动mysql并配置⼯作…

如何从GitHub上Clone项目

GitHub 是全球最大的开源代码托管平台之一,开发者可以在上面分享代码,协作开发,提交贡献。对于程序员来说,从 GitHub 上获取代码并在本地运行和修改是非常重要的一个技能。本文将深入介绍如何从 GitHub 上 clone 项目,…

Rustrover2024.2 正式发布:个人非商用免费,泰裤辣

如果这个世界本身 已经足够荒唐 那究竟什么才能算是疯狂 爱情就是这样 一旦错过了 就会有另一个人代替 我们知道 jetbrains 在今年的早些时候正式为 rust 语言发布了专用的 IDE ,也就是 rustrover。如今 rustrover 也正式跻身为 jetbrains IDE 系列的一员猛将。…

c基本知识

c基本知识 1.数据类型相关的关键字 用来存储数据 char字符1字节int 整型4字节short短整型2字节long长整型4/8字节float 单精度4字节double 双精度8字节struct 结构体union 共用体enum 枚举signed 有符号unsigned 无符号void 空类型 2.存储相关关键字 register 寄存器变量s…

可编辑PPT | 能源企业数字化框架、数字化运营及数字化平台建设方案

项目背景及需求理解 首先提出了全球能源互联网的概念,强调了清洁能源和电能替代的重要性,并介绍了德国工业4.0战略以及泛在电力物联网的创新。文档探讨了信息化与工业化的深度融合,以及云计算、大数据、物联网和移动应用等新技术在能源行业的…