专栏首页高级开发进阶【JavaP6大纲】Dubbo篇:为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?

【JavaP6大纲】Dubbo篇:为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?

为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?

为什么要将系统进行拆分?

要是不拆分,一个大系统几十万行代码,20 个人维护一份代码,简直是悲剧啊。代码经常改着改着就冲突了,各种代码冲突和合并要处理,非常耗费时间;经常我改动了我的代码,你调用了我的,导致你的代码也得重新测试,麻烦的要死;然后每次发布都是几十万行代码的系统一起发布,大家得一起提心吊胆准备上线,几十万行代码的上线,可能每次上线都要做很多的检查,很多异常问题的处理,简直是又麻烦又痛苦;而且如果我现在打算把技术升级到最新的 spring 版本,还不行,因为这可能导致你的代码报错,我不敢随意乱改技术。

假设一个系统是 20 万行代码,其中 小A 在里面改了 1000 行代码,但是此时发布的时候是这个 20 万行代码的大系统一块儿发布。就意味着 20 万上代码在线上就可能出现各种变化,20 个人,每个人都要紧张地等在电脑面前,上线之后,检查日志,看自己负责的那一块儿有没有什么问题。

小A 就检查了自己负责的 1 万行代码对应的功能,确保ok就闪人了;结果不巧的是,小A 上线的时候不小心修改了线上机器的某个配置,导致另外 小B 和 小C 负责的 2 万行代码对应的一些功能,出错了。

几十个人负责维护一个几十万行代码的单块应用,每次上线,准备几个礼拜,上线 -> 部署 -> 检查自己负责的功能。

拆分了以后,整个世界清爽了,几十万行代码的系统,拆分成 20 个服务&#

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【荐】成为Java高级工程师到底需要掌握什么?

    说明:由于答案篇幅较长,以下文章为索引,具体答案在GitHub上,你可以点击文末阅读原文直达,也可以复制上面的链接到浏览器打开。

    乔戈里
  • 【面试精选】关于大型网站系统架构你不得不懂的10个问题

    下面这些问题都是一线大厂的真实面试问题,不论是对你面试还是说拓宽知识面应该都很有帮助。

    Java技术江湖
  • 为什么要把系统拆分成分布式的,为啥要用Dubbo?

    从这个问题开始就进行分布式系统环节了,好多同学给我反馈说,现在出去分布式成标配了,没有哪个公司不问问你分布式的事儿。

    良月柒
  • 冰河开始对Dubbo下手了!

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • 2018年一线互联网公司Java高级面试题总结

    1、hashcode相等两个类一定相等吗?equals呢?相反呢? 2、介绍一下集合框架? 3、hashmap hastable 底层实现什么区别?hashta...

    Java高级架构
  • 2018年一线互联网公司Java高级面试题总结

    3、hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?

    java架构师
  • Dubbo全面解析

    假设我们不进行拆分系统,一个系统的代码全部在一个服务中,少则7,8万行代码,多则几十万代码,当我们去维护的时候就非常麻烦,如正常迭代开发,我修改其中一小段代码,...

    小土豆Yuki
  • 2018年一线互联网公司Java高级面试题总结JVM分布式专题架构福利

    美的让人心动
  • 2018“金三”之一线互联网公司Java高级面试题总结

    3、知道字节码吗?字节码都有哪些?Integer x =5,int y =5,比较x =y 都经过哪些步骤?

    技术zhai

扫码关注云+社区

领取腾讯云代金券