专栏首页技术专栏Springcloud(二)-拆分微服务(慕课网廖师兄SpringCloud微服务实战)

Springcloud(二)-拆分微服务(慕课网廖师兄SpringCloud微服务实战)

1.起点和终点

起点:

  • 审视既有架构的形态,到底是否适合微服务架构

终点:

  • 好的架构不是设计出来的,而是进化出来的

image.png

不适合微服务的场景:

  • 系统中包含很多很多强事物场景的
  • 业务相对稳定,迭代周期长
  • 访问压力不大,可用性要求不高

2.康威定律和微服务

  • 康威定律

Organizations which design Systems are constrained to produce design which are copies of the communication structures of these organiztions

任务组织在设计一套系统时,所交付的设计方案在架构上都与该组织的沟通结构保持一致

(可以降低团队沟通的成本)

  • 微服务的特点(康威定律的结论)
  1. 一系列微小的服务共同组成
  2. 单独部署,跑在自己的进程里
  3. 每个服务为独立的业务开发
  4. 分布式的管理

image.png

3.服务拆分

image.png

  • 水平复制:通过副本扩展,将应用程序水平复制,通过负载均衡运行程序多个完全一样的副本的方式来实现应用程序的伸缩性,提高应用程序的容量和可用度
  • 数据分区:每个服务器负责一个数据子集,每个服务器运行的代码是一样的
  • 功能解耦:将不同职责的模块分成不同的服务

1. 拆功能

  • 单一职责,松耦合(服务之间耦合度低,修改一个服务,不用导致另外一个服务跟着修改),高内聚(服务内部相关的行为都聚集在一个服务内,修改一个行为时,只需要修改一个服务即可)
  • 关注点分离
  • 按职责
  • 按通用性
  • 按粒度级别

2.服务和数据的关系

  • 先考虑业务功能,再考虑数据
  • 无状态服务(如果一个数据需要被多服务共享,才能完成一个请求,那么这个数据就是状态,进而依赖这个状态数据的服务被称为有状态服务,反之称为无状态服务)

image.png

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Scala入门与进阶(四)- Scala面向对象

    Meet相识
  • Acmen-helper一键生成springboot-api基本项目骨架!Easy Coding,Enjoy life!

    还在为繁琐的配置工作和重复的基础Coding而烦恼吗?Acmen-helper一键搞定 。Easy Coding,Enjoy life!

    Meet相识
  • Spring AOP 前置增强拦截不到

    最近在用AOP写一个在添加操作前统一配置创建人创建时间等基本信息的功能,但是发现无论如何都拦截不到该有的请求

    Meet相识
  • 微服务架构之「 服务注册 」

    微服务架构是一个庞大复杂的工程,为什么说它庞大复杂呢?因为想要做好微服务,就必须先要建设好微服务所需的一系列基础设施和组件。我在前面的文章《架构设计之「 微服务...

    奎哥
  • 2018微服务年之服务网格Service Mesh

    微服务自2014年3月由Martin Fowler首次提出以来,在Spring Cloud、Dubbo等各类微服务框架的帮助下,以燎原之势席卷了整个IT技术界,...

    哲洛不闹
  • 微服务架构之「 服务注册 」

    微服务架构是一个庞大复杂的工程,为什么说它庞大复杂呢?因为想要做好微服务,就必须先要建设好微服务所需的一系列基础设施和组件。我在前面的文章《架构设计之「 微服务...

    纯洁的微笑
  • 微服务架构之「 服务注册 」

    微服务架构是一个庞大复杂的工程,为什么说它庞大复杂呢?因为想要做好微服务,就必须先要建设好微服务所需的一系列基础设施和组件。我在前面的文章《架构设计之「 微服务...

    黄泽杰
  • 都在说微服务,那么微服务的反模式和陷阱是什么(一)

    译者:程超 译文:http://www.jianshu.com/p/3986239138fe 一、数据驱动的迁移反模式 微服务会创建大量小的、分布式的、单一用途...

    程序猿DD
  • 秘籍:微服务设计的六脉神剑

    介绍 “微服务”是一种新的软件开发模式,它来源于提高软件开发和管理效率的一系列工程实践。敏捷方法、DevOps文化、PaaS、应用容器、CI/CD文化和技术的...

    DevOps时代
  • 微服务的鉴定与思考

    微服务有且仅有一种非常专项的功能,通过远程API来提供系统其余功能。举个例子:试想一下仓库的管理系统,这样的系统中微服务可能提供的一些功能有: 接收库存 计算新...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券