微服务杂谈

作者: 简小码 | 来源:发表于2017-07-03 17:14 被阅读611次

微服务是最近非常热门的技术,关于它的讨论很多。下面从我的实践经验说说我对它的理解。

在我看来微服务就是把很大的应用分成若干个相互独立的小的应用,通过Rest API提供服务或者获取服务。

这样做有很多好处,比如解耦系统、技术选型灵活、易于水平扩展,等等。具体可以参见「Chris Richardson 微服务系列」微服务架构的优势与不足

对于开发来讲,微服务所带来的复杂性和挑战也是很明显的,至少有以下几点。

  1. 需要实现统一的服务管控和治理平台

    比如服务发现,API网关,断路器,分布式配置等等,但好在已经有了开源的解决方案,比如Netflix OSS。

  2. 如何跨库查询?

    A服务的a表需要和B服务的b表做连接查询,如果a表和b表在同一个数据库中是非常简单的,但在微服务中,通常每个服务有自己的私有数据库,每个服务都通过API对外提供服务,那么这时候如何做连接查询呢?我们这时就做不了连接查询了,只能调用Rest API达到目的。

  3. 如何维护数据一致性?

    某个事务需要同时往A服务的a表和B服务的b表插入数据。如何维护数据一致性呢?(当a表插入成功,b表插入失败时数据产生了不一致)
    数据一致性有强一致性,也就是分布式事务,以两阶段提交为代表;也有最终一致性(Eventually Consistent),是指不保证在任意时刻数据都是一致的,但在一段时间后,数据会最终达到一致状态。
    由于分布式事务会极大的降低系统的并发量,在高并发的系统中一般使用最终一致性。而如何实现最终一致性是个很有挑战的课题,目前没有一种很简单很完美的方案能够应对所有场景。关于这个话题,可以参考分布式系统事务一致性解决方案

早在1987年,Fred Brooks就曾经说过,“没有银弹”。微服务最近火热,很多人都想去尝试它,但也要看到,实践微服务本身也是具有挑战的,也具有一定复杂性。换句话说,不是所有的公司和所有的业务场景都适合去用微服务架构,单体架构仍然具有自己的生命力。关于使用微服务的前提条件,可以参考微服务概念的提出者软件大师 Martin Fowler 的MicroservicePrerequisites

以下还有一些关于微服务的很好的资料,供大家参考。

  1. Chris Richardson 微服务系列文章 翻译
  2. 微服务(Microservice)那点事
  3. 实现云原生应用,先理解架构微服务化
  4. 微服务,够了

相关文章

  • 微服务杂谈

    微服务是最近非常热门的技术,关于它的讨论很多。下面从我的实践经验说说我对它的理解。 在我看来微服务就是把很大的应用...

  • 杂谈以“老”助老的志愿者服务

    杂谈以”老”助老的志愿者服务 正能量呃!有报道:上海普陀区一支五十多人的“助老”服务队,服务队...

  • 微信杂谈

    图片很美轮美奂,却要在封面上挂出一幅少儿不宜的春宫图,不知意欲何为?博取众人的眼球?还是遭遇了“黑客”的恶搞?...

  • 杂谈微信

    谢谢主持人邀请 微信是什么?有人说它是晒娃或晒假期的平台,有人说它是微商的舞台,有人说它是鸡汤的展台,有人说它是文...

  • 微友杂谈

    没有加陌生人好友的习惯,单纯因为不喜欢既定的生活模式被打乱。直到有一个我信赖的朋友告诉我,应该以温和而开放的心态对...

  • 创业杂谈--AR App竞品分析

    前序 创业杂谈--起由 创业杂谈--创业方向 创业杂谈--创业团队 那么这篇我们来看看AR App竞品。 在App...

  • 微信群聊杂谈

    在近一年的工作期间,我刚刚看了一下,我加了十几了微信群聊,这些群聊大部分都是关于互联网方面的。大家加群聊的目的不外...

  • 2018-10-17

    周末杂谈

  • 2017-04-20

    杂谈20170420

  • 《最美古诗词网》转载推荐的古不为诗歌(1)

    期货杂谈(组诗) —— 期货杂谈(组诗) 来源:www.juzizhai.com \ 作者: 古不为 \ 朝代:近...

网友评论

    本文标题:微服务杂谈

    本文链接:https://www.haomeiwen.com/subject/zcuucxtx.html