您的位置:首页 > 编程语言 > Java开发

SpringCloud入门:01-认识微服务

2019-03-30 10:49 429 查看

SpringCloud 01-认识微服务

一、单体应用的缺陷

在微服务的概念提出来之前,企业的应用一般都是单体应用,这种应用范式具有方便部署,测试的优点,但是随着项目的复杂程度不断的提升,单体应用也暴露出许多的缺陷:随着复杂程度的提升,应用各个模块部分越来越复杂,依赖关系不清晰,而且应用变得越来越难以维护和创新。

主要的缺陷体现如下:

  • 复杂性高:系统的各个模块边界模糊,依赖关系不清晰,项目变得复杂混乱
  • 部署效率低:当我们需要维护修改代码的时候,造成的风险大,维护成本高,并且需要反复多次部署,出错概率高
  • 可靠性差
    -技术创新受限:单体应用往往需要的是统一的技术平台和框架,所以当需要换新的技术和框架时需要很多的时间和人力成本。

二、什么是微服务

微服务最早于2014年提出,虽然没有一个严格的定义,但是其创始人还是为我们给出了一个详细的描述:

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

简而言之,微服务架构风格是一种将单个应用程序开发为一套小型服务的方法,每个小型服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务围绕业务功能构建,可通过全自动部署机制独立部署。 这些服务至少集中管理,可以用不同的编程语言编写,并使用不同的数据存储技术。

微服务架构具有如下的特性:

  • 每个微服务都是运行在自己的进程里。
  • 独立运行的微服务共同构建整个系统。
  • 每个服务都是有自己的独立的业务开发,只关注特定的功能。
  • 微服务之间通过轻量级的通信机制来进行通信。
  • 可以使用不同的语言和数据存储技术。
  • 全自动的部署方式。

微服务的架构具有的优点:

  1. 易于开发和维护:微服务只会关注一个特定的业务功能,所以它的业务逻辑清晰,代码量较少开发维护简单
  2. 单个微服务启动速度快
  3. 局部修改容易部署:单体应用修改需要重新部署应用,但是微服务只需要修改微服务不需要重新部署应用
  4. 技术栈多样:在微服务架构中,可以使用不同的技术栈,不需要受到同一个框架的限制。

三、微服务的设计原则

微服务的设计原则:

  • 单一职责原则:单一职责原则指的是一个单元只应该关注整个系统功能中单独的把一部分
  • 服务自治原则:每个微服务都是开发,测试,构建,部署都是独立运行,不应该依赖其他的服务,与其他的服务高度解耦。
  • 轻量级的通信机制:微服务通过轻量级的通信机制进行通信,一般都具有如下特点:1、轻量级 2、跨语言,跨平台
  • 微服务粒度:微服务并不是意味着将服务一致做小,而是需要合理的实现自己的独立的业务功能,而最为一个独立的服务部署。

四、微服务框架

微服务有许多框架可以进行支持

其开发框架就有SpringCloud,Dubbo,Dropwiz-ard,Armada等等,但是一般现在推荐学习SpringCloud,原因是其文档比较丰富,而且仍然在维护。

今日分享:
人们并非生来平等,人的善恶感也生来各异。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: