SpringCloud之微服务

那么!首先我们先来说一下什么是微服务?

微服务的核心就是将一个传统的一站式应用,根据业务划分为一个个有自己独立功能的服务,彻底的去耦合,一个服务做一件事情,从技术上看就是一种小而独立的处理过程,类似进程的概念,能够自己独立运行或者销毁,并且可以拥有自己独立的数据库。

微服务与微服务架构

微服务

微服务强调的是服务的大小,它关注的的是某一个点,具体解决某一个问题提供落地对应服务的一个服务应用狭义的看,可以看做Eclipes中的工程或者Module.

微服务架构

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。

每一个服务运行在独立的进程中,服务与服务间采用轻量级的通信机制相互协作 (通常是基于HTTP协议的RESTful API)。每一个服务都围绕着具体业务进行构建,并且能过被独立的构建到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式管理机制,对具体一个服务而言,应根据业务的上下文,选择合适的语言。工具对其进行构建。

微服务的优缺点

优点:每一个服务足够内聚,足够小,代码容易理解这样能聚焦到一个指定的业务功能或业务需求开发简单、开发效率高,一个服务可能就是专一的干一件事情。微服务就能被小团队单独开发,这个小团队一般指2~5个开发人员组成。微服务是松散耦合,是具有功能意义的服务,无论是在开发阶段或者部署阶段都是独立的。微服务能使用不同语言开发。微服务易于被一个开发人员理解,修改和维护,这样的团队更够关注自己的工作成果。无需通过合作才能体现价值。微服务支持新技术,微服务只是业务逻辑的代码,不会和CSS和HTML或其它页面组件混合,每一个微服务都有自己的储存能力,可以有自己独立的数据库,也可以共同使用一个数据库。

缺点:开发人员要处理分布式系统的复杂性多服务运维难度,随着服务增加,运维的压力也在增大系统部署依赖服务间通信成本数据一致性系统集成测试性能监控.....

为什么选择springcloud作为微服务架构?

  • 整体的解决方案和框架的成熟度
  • 社区热度
  • 可维护性
  • 学习曲线