微服架构的论述

搭建微服架构

1、什么是微服架构

简单的说就是将一个总体的应用按照必定的规则拆分红一个个独立的应用,这些独立的应用后面又组合成了一个总体的应用。 好比说一个博客系统,我可能包含了发表文章,用户登陆,用户评论等功能,若是是一个单一的应用这些功能都会包含在这个应用里面。 而若是是微服架构 这些功能可能会包含在 文章服务,用户服务,评论服务里面。spring

这是我简单写的一个微服例子

总体实现了发文章,浏览文章。用户登陆,用户评论的功能。docker

分别有 用户服务,文章服务,评论服务,文件服务组成。数据库

2、微服架构遇须要考虑的问题
  • 服务的编排 个人系统须要怎么要划分个人服务,一个是按照业务功能划分,每一个服务只负责单一的业务。 服务划分的太细致使服务偏多,对于维护和开发都会增长很多难度,划分的太粗,又可能达不到当初使用微服的预想。因此采用微服架构前服务的划分要详细考虑。架构

  • 分布式事物 因为系统划分红为了 一个个独立的系统,个个系统之间的采用 REST API方式,本地事物没法使用与夸多个系统的事物。因此分布式事物是微服须要解决的重中之重。通常微服的事物多采用可靠事件处理。后面出再讨论。负载均衡

  • 夸表查询 不一样的服务,数据库是不共享的,都有独立的数据库,因此 查询的时候不能 采用单体架构 的 join 等语句与跨表查询,查询方面增长了很多难度。框架

  • 持续集成与部署 微服的持续集成相对于单体应用要复杂的多,应为你有更多的服务须要部署,部署的时候你须要更多的硬件设备。因此微服经常会与docker一块儿使用,方便集成与服务扩容。分布式

  • 测试 微服的测试,因为服务的划分,不只须要对单独的服务进行测试还须要对总体的功能进行测试。对测试也提升了一个难度。测试

  • 微服架构的优势 1. 灵活,个个服务相互独立运行 2. 能够选择不一样的技术栈,不一样的数据库等 3. 服务之间的解耦,每一个服务只关心本身的事情 4. 便于维护与开发 5. 配合docker 更方便的扩容。
3、服务的开发框架 spring cloud

spring cloud 集成了微服经常使用的组件,包含了服务的注册与发现,服务调用,负载均衡,熔断,监控,配置管理,服务网关等。配合spring 庞大的技术站,spring cloud也渐渐成为了 微服的代名词。 主要的一些组件:code

  • 服务发现——Netflix Eureka
  • 客服端负载均衡——Netflix Ribbon
  • 断路器——Netflix Hystrix
  • 服务网关——Netflix Zuul
  • 分布式配置——Spring Cloud Config
相关文章
相关标签/搜索