前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springcloud(二)-拆分微服务(慕课网廖师兄SpringCloud微服务实战)

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

作者头像
Meet相识
发布2018-09-12 16:34:03
2.2K0
发布2018-09-12 16:34:03
举报
文章被收录于专栏:技术专栏技术专栏

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.起点和终点
    • 起点:
      • 终点:
        • 不适合微服务的场景:
        • 2.康威定律和微服务
        • 3.服务拆分
          • 1. 拆功能
            • 2.服务和数据的关系
            相关产品与服务
            负载均衡
            负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档