微服务:Mono仓库的优缺点

微服务和Mono Repo看似矛盾,但实际上有些公司如Facebook和Google采用单存储库管理微服务代码。这种方式可以方便代码格式统一、集成测试和团队协作,但也可能导致CI/CD复杂、代码依赖管理和团队间耦合问题。关键在于平衡独立性和协作效率。
摘要由CSDN通过智能技术生成

最近,关于Quora上的微服务存在一个有趣的问题–哪些公司使用Mono Repo但将其部署为微服务?

真正的问题隐藏在这些词的后面–使用Mono repos存储微服务代码可以吗?

微服务-monorepo1080

乍看起来,微服务和Mono仓库似乎相互矛盾。 当微服务代码要彼此独立部署时,在单存储库中包含微服务代码是否有意义?

有没有公​​司采用这种运作方式?

是的,他们做到了!

  1. 根据此帖子,Facebook具有单存储库 -Facebook上的Scaling Mercurial 。
  2. 有传言称Google拥有单声道回购协议(如许多帖子所述),但是我不确定,因为我没有在那儿工作过。
  3. 他们博客上的 可运输物品提到他们有一个单声道仓库。 实际上,它们已从多个存储库转移到一个单存储库。

使用微服务体系结构的最重要结果应该是每个服务都必须是完全自治的,即它们必须不具有任何设计时间依赖性。

所有其他注意事项因公司而异。 这些注意事项包括:

  1. 应用程序的含义: Martin Fowler的声明完美地体现了微服务的本质- “简而言之,微服务架构风格是一种将单个应用程序开发为一组小型服务的方法”。 关键字来自“单一应用程序” 。 归根结底,所有微服务都在组成一个应用程序。 对于某些人来说,将所有源代码放在一个地方更有意义,因为单独的一项服务可能没有任何意义。
  2. 代码样式:一些公司发现在所有代码中强制使用一致的编码格式很有用。 当您有单独的存储库时,这当然更难实现。 对于依赖手动验证代码而不是自动代码质量检查的公司,尤其如此。
  3. 测试:将所有服务都放在一个存储库中时,创建集成测试会更容易,因为创建测试环境和部署变得更加容易。

请注意,只有一个存储库会带来许多缺点

  1. CI和CD管道:理想情况下,您希望每个微服务的CI和CD管道彼此独立。 如果其中一项服务有错误,则您不希望整个构建失败。
  2. 代码依赖性:难以避免编译时依赖性。 您将需要一个过程或一个人来确保没有人在构建彼此依赖的服务。 同时,请记住,mono repo并不意味着紧密耦合的代码。
  3. 团队依赖关系:从上述观点出发,共享单个存储库的团队没有完全自由地进行代码更改,因为它们依赖于其他服务的代码。

因此,总而言之,确实存在某些组织因素,这些因素迫使在单一存储库中使用微服务代码。 只要存在适当的指导方针来管理不同团队所拥有的代码之间的依赖关系和所有权,这就是很好的选择。

翻译自: https://www.javacodegeeks.com/2016/07/microservices-pros-cons-mono-repos.html

danpu0978
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为何微服务项目都使用单体代码仓库
dreamship
08-22 889
https://www.cnblogs.com/edisonchou/p/talk_about_single_git_repository_in_microservice_projects.html
第4章 微服务框架主体搭建
Eclipse_2019的博客
08-15 364
mini商城后端微服务框架搭建
你知道 monorepo 居然有那么多坑么?(听说干货文章都没人看)
yck199的博客
04-12 2564
前言 今天文章的话题是 monorepo。在进入正文之前,笔者先来概括下什么是 monorepo 以及本文会从哪几个点来聊聊 monorepo。monorepo 简单来说就是将多个项目整合...
精读《Monorepo 的优势》
weixin_33725807的博客
05-13 167
1. 引言 本周精读的文章是 The many Benefits of Using a Monorepo。 现在介绍 Monorepo 的文章很多,可以分为如下几类:直接介绍 Lerna API 的;介绍如何从独立仓库迁移到 Lerna 的;通过举例子说明 Monorepo 重要性的。 本文属于第三种,从 Android 与 IOS 的开发故事说明了 Monorepo 的重要性。 笔者之所以选择这...
10分钟速成:轻松搭建前端monorepo架构与CI/CD自动化!
最新发布
zz_jesse的博客
09-12 338
正文今天我们主要讨论3方面内容:如何搭建比较高效好用的monorepo工程前端如何基于搭建的monorepo工程实现自定义cli工具普通前端项目以及monorepo工程项目自动化cicd核心问题以及解决方案基于 pnpm-workspace + Turborepo + lerna 搭建 monorepo 的 cli 工程首先利用 pnpm 初始化一个工程执行命令初始化工程:pnpminit-y...
monorepo
Luckyzhoufangbing的博客
09-18 2588
monorepo 学习笔记
guid 利弊_利弊monorepos解释
weixin_26739079的博客
10-12 462
guid 利弊什么是Monorepo?(What Is Monorepo?) As the name suggests, Monorepo (mono repository) is an architectural pattern where a single repository will contain all the code for a given project. 顾名思义,Monore...
monorepo的认识和了解
irisMoon06的博客
04-10 1053
monorepo 是一种将多个项目代码存储在一个仓库里的软件开发策略(mono 意为单一,repo 意为 仓库)。与之相对的是另一种流行的代码管理方式 MultiRepo,即每个项目对应一个单独的仓库来分散管理。
最全面的微服务技术栈——基础篇
qq_53263107的博客
11-07 622
分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 优点:降低服务耦合,有利于服务升级和拓展缺点:服务调用关系错综复杂分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:微服务的架构特征: 微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。
SpringCloud微服务实战
qq_36789243的博客
08-27 1791
文章目录基础知识Spring Cloud Eureka服务注册与发现代码实例高可用注册中心Spring Cloud RibbonRestTemplate代码实例Spring Cloud Hystrix代码实例Spring Cloud Feign负载均衡功能服务降级功能Spring Cloud Zuul路由规则访问前缀header过滤重定向查看路由信息过滤器过滤器类型自定义过滤器禁用过滤器Ribbon和Hystrix的支持常用配置Spring Cloud Gateway配置路由Route Predicate.
微服务入门(Nacos,Feign,网关Zuul)
weixin_45773628的博客
08-02 2757
日志级别尽量用basic使用HttpClient或OKHttp代替URLConnection引入feign-httpClient依赖配置文件开启httpClient功能,设置连接池参数。
monorepo mode vs standard mode使用场景和各自的优缺点
qq_35374791的博客
04-25 1005
NestJS 是一个基于 TypeScript 和 Node.js 的渐进式框架,用于构建高效、可扩展的服务器端应用程序。在 NestJS 中,“monorepo”和“standard mode”分别指代两种不同的项目组织和管理方式。
Monorepo 的这些坑,我们帮你踩过了!
LuckyWinty的博客
07-05 2612
前言笔者目前所在团队是使用 Monorepo 的方式管理所有的业务项目,而随着项目的增多,稳定性以及开发体验受到挑战,诸多问题开始暴露,可以明显感受到现有的 Monorepo 架构已经不足...
Monorepo 的这些坑,我们帮你踩过了
qq_34703156的博客
06-11 1034
Monorepo 的这些坑,我们帮你踩过了 #Monorepo 1个 ELab团队 前言 笔者目前所在团队是使用 Monorepo 的方式管理所有的业务项目,而随着项目的增多,稳定性以及开发体验受到挑战,诸多问题开始暴露,可以明显感受到现有的 Monorepo 架构已经不足以支撑日渐庞大的业务项目。 现有的 Monorepo 是基于 yarn workspace 实现,通过 link 仓库中的各个 package,达到跨项目复用的目的。package manager 也理所当然的选择了.
Mono Repo第二弹
Song_dui_dui的博客
03-21 945
mono repo的依赖管理以及版本管理工具lerna和changeset的使用
Qualcomm ® SnapdragonTM Profiler Linux版安装命令
weixin_42097128的博客
07-25 441
1.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 2.sudo apt install apt-transport-https ca-certificates 3.echo “deb https://download.mo...
.NET/Mono里的跨平台类库
Infoq博客
05-18 191
为了解决.NET/Mono生态系统的平台分化问题,微软开发了一个名为 Portable Library Tools的 扩展工具。这个工具允许相同的编译好的类库运行在.NET 4.0、Silverlight、Xbox 360和Windows Phone 7上。微软正在和Mono合作为MonoTouch和Mono for Android(译注:原文此处为MonoDroid,但由于版权...
使用Mono让.NET程序跨平台运行
热门推荐
素履独行 | 元培的个人博客
05-03 2万+
众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此失彼,难以保证应用程序在不同的平台都有着相同的、出色的体验,这种情况下寻找到一种跨平台开发的方式将会为解决这个问题找到一种思路。从目前的开发环境来看,Web应该是最有可能成为跨平台开发的神兵利器,可是长
monorepo仓库的创建与使用
抓住IT的尾巴的博客
03-05 1778
使用pnpm创建一个monorepo仓库
Postgresql与C#交互:mono.security的DLL工具开发
资源摘要信息:"mono.security_Postgresqlmono_" 知识点一:Postgresql数据库 Postgresql是一种开源的对象关系数据库系统(ORDBMS),它具有丰富的功能集,包括支持复杂查询、外键、触发器、视图、事务完整性等。它...
写文章

热门文章

  • qq永久封号 代码_避免在代码中永久保留这些内容 40273
  • Visual Studio Code与IntelliJ IDEA –哪个最适合Java开发人员? 19003
  • 机械臂编程_建立自己的机械臂-编程 14353
  • 如何区分m的属性_测试属性#5 –区分 11874
  • Eclipse IDE教程 9467

大家在看

  • 什么是物联网平台
  • 【Linux】Ubuntu Advanced Bookmark Manage for Files
  • Learn-前端-笔记-day03 748
  • 情怀程序员,没有套路的坐下和大家掏心窝聊聊今年的1024 | 程序员节 640
  • Modbus相关知识点 384

最新文章

  • 面纱对象取代DTO
  • 使用ElasticLunr.js进行客户端搜索
  • [新网络研讨会]静态与动态分析:两种万无一失的方法来确保您的代码可用于生产...
2020年5096篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家长春市商场美陈东营玻璃钢雕塑制作厂家深圳常见玻璃钢雕塑摆件玻璃钢产品大象雕塑湛江玻璃钢雕塑生产厂家北京户外商场美陈制造上海商场美陈销售企业滁州玻璃钢雕塑厂商销售大兴区商场美陈价格商场美陈地面防护洛阳铜玻璃钢景观雕塑加工深圳玻璃钢花盆订购商场玻璃美陈玻璃钢花盆厂生产厂家贵州玻璃钢雕塑工厂个性化玻璃钢雕塑供应厂家广州小猪佩奇玻璃钢雕塑店仿铜玻璃钢花盆安庆玻璃钢雕塑公司玻璃钢广场雕塑厂家佛像玻璃钢雕塑怎么制作石家庄玻璃钢仿铜雕塑定制台州景观玻璃钢雕塑定做价格焦作卡通玻璃钢雕塑江苏艺术商场美陈报价忻州玻璃钢雕塑订制价格玻璃钢动物马雕塑专业定制曲靖玻璃钢雕塑商家纤维玻璃钢卡通雕塑定做河北省富瑞玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化