美文网首页
微服务探索之架构分类

微服务探索之架构分类

作者: 枫山别院 | 来源:发表于2017-12-03 20:44 被阅读0次

    欢迎访问我的博客,同步更新: 枫山别院

    架构的发展
    • 集中式架构
    集中式.png

    集中式架构的系统,所有的模块都在一个项目中,耦合在一起,甚至是页面。一个项目包含了所有的服务,这种工程一般在项目发展初期还是可以比较实惠的,省钱,容易管理。但是随着业务的发展,会暴露出非常多的局限,例如:拓展性差,单点故障,不容易修改等等。

    • 集群
    集群式.png

    随着业务量的增加,集中式系统开始不堪重负,这时候,我们要对系统进行调整和优化,我们可以想到的是水平拓展,增加系统节点,组成一个集群对外提供服务。同时,使用Nginx进行负载均衡,DNS轮询等等。

    • SOA架构
    SOA.png

    虽然集群提高了系统处理能力,但是还是有拓展性差,不易修改,业务耦合度高等问题,牵一发而动全身。这时候我们可以实施服务化改造,对业务进行垂直化拆分,将一些模块化的业务单独部署,使各个系统的职责清晰化。拆分系统的时候,并不是粒度越细越好,太细反而增加维护的复杂度。

    • 微服务架构
    Image 1.png

    微服务架构是SOA的进一步细化的结果,它的要求是:根据业务模块划分服务种类;每个服务独立部署且相互隔离;通过轻量级API调用;具有良好的高可用性。它的特点是服务细粒化,责任单一化,服务隔离化,管理自动化。同时也为我们带来了一些挑战:运维要求提高,分布式复杂性增加,依赖关系复杂,通信成本增加。

    点击微服务架构模式可以查看更多的微服务架构。

    • Service Mesh(服务网格)
    image.png

    服务网格是微服务新秀,代表作是Istio,它是微服务加上了服务治理。

    微服务架构选型

    在上面的微服务架构图中,除了服务需要部署多点之外,服务网关和注册中心也必须部署多点才能保证没有单点故障。微服务架构的可选方案非常多,有:Netflix、Spring Cloud、WildFly Swarm、KumuluzEE、Dropwizad等等。我们也可以基于微服务的原理,自己实现微服务:使用Spring Boot开发服务,使用Zookeeper注册服务,使用Node.js开发网关。我们公司开发了自己的微服务,使用Java开发的网关,整体架构图如下: Image 2.png

    服务、网关、注册中心、Nginx都是多点,这种情况下,可以避免有单点故障问题。

    今日强心剂

    We can be heroes in our own lives,everyone of us ,if we only hava the courage to try .

    转载请注明出处,谢谢!

    相关文章

      网友评论

          本文标题:微服务探索之架构分类

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