专栏首页服务端技术杂谈如何从单体架构过渡到微服务

如何从单体架构过渡到微服务

架构师们最想通过微服务化取代的部分,往往是架构中的核心功能,经常用飞行中更换引擎来比喻。

为使微服务能顺利的应用,不应该幻想一蹴而就,可以分阶段采取行动。

1. 培训先行

技术人都善于把面临的问题变成技术问题,然后在自己最擅长的领域去把它解决。

这就造成一个悖论:能用技术解决的问题就不是问题,真正的问题在受限的情景下仅靠技术是解决不了的,实施微服务最大的拦路虎也不是技术本身。

最大的问题不是如何做好微服务,而是就微服务应该是什么达成一个一致的看法。

因此,可以在实施前通过多数人参与大讨论或培训,使认知达成一致。这类似编码规范中的命名规范,使用那种命名方法不重要,重要的是人人都使用同一种命名方法。

2. 绞杀者模式

绞杀者模式是指,对于无法通过修缮者模式改进的系统,在系统外重新构建新功能来逐步剥离重构,对功能服务逐个绞杀。

好处是不影响原来的环境,一旦条件成熟就能快速切换。而缺点是可能需要一段时间同时维护两套系统,付出额外的开发维护成本。

3. 监狱模式

允许一些短期无力改动的系统通过监狱窗口(MicroProxy)接入微服务平台并委托 Proxy 将其暴露成微服务,单体架构往往拥有庞大的服务接口梳理, 往往需要开多个监狱窗口。

每个监狱窗口都会被包装分割成微服务,条件成熟了能很方便的替换成原生微服务,称为刑满释放。

本文分享自微信公众号 - 春哥叨叨(chungedaodao)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-14

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 拆解交易系统--性能优化,安全加固与弹性扩缩容

    前几篇文章我们拆解了交易系统架构层次的设计方案,对于代码细节我们讨论很很少,今天基于几个方面简短的介绍一下,未来有时间可以针对性的进行扩展讲解。

    春哥大魔王
  • 想将系统服务化?看看服务化鼻祖亚马逊踩过了哪些坑

    SOA 面向服务架构 服务化 公司项目最近的主要工作是准备服务化,作为服务化的鼻祖亚马逊的架构服务化过程经历了哪些困难,踩了哪些坑?通过这篇文章你可以略知一二...

    春哥大魔王
  • 再谈微服务

    传统方式 VS 微服务 ? 传统开发方式遇到的问题: 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断。 代码部署难:代码功能耦合在一起,...

    春哥大魔王
  • kyro序列化踩坑记——提供方DTO新增字段,依赖方则报错

    A服务通过dubbo调用B服务,序列化方式选择的是kryo,A服务和B服务同时依赖C工程的一个DTO。 C工程的DTO新增了一个字段,deploy了,B服务引...

    MickyInvQ
  • 0698-6.2.0-Navigator审计日志查看对应用户的操作

    CDH集群中有数据管理的组件Cloudera Navigator,本文档主要介绍这个组件的其中一个功能:审计,Cloudera Navigator审计可以从选定...

    Fayson
  • 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)

    前一阵子我们介绍了如何启动Scrapy项目以及关于Scrapy爬虫的一些小技巧介绍,没来得及上车的小伙伴可以戳这些文章:

    Python进阶者
  • Django中web开发用md5加密图片

    1.这里封装了md5的加密字符,导入setting.py的静态文件目录(路径拼接时需要)

    py3study
  • Amazon Aurora 深度探索(三)

    本文从数据库内核技术实现的角度对 Aurora 做了一定的推测。接着对 Aurora 用技术构建起的强大云数据库服务能力进行探索。

    serena
  • 企业IT架构转型之道

    近期公司在做一些后台架构方面的改造,例如对数据中心,数据采集/传输/清洗/存储方面的优化,因此,我想有必要了解一些其他公司是如何做系统架构和转型的,于是购买了这...

    张子阳
  • Model验证系统运行机制是如何实现的?

    在前面三篇文章(《ModelValidator》、《ModelValidatorProvider》和《ModelValidatorProviders》)中我们详...

    蒋金楠

扫码关注云+社区

领取腾讯云代金券