前言
本篇文章简单介绍一下什么是微服务, 微服务的优点, SpringCloud 的微服务架构核心组件选型等;
一, 什么是微服务?
In short, the microservice architectural style [1] 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://blog.cuicc.com/blog/2015/07/22/microservices/ ):
简单来说, 微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法, 每个服务运行在自己的进程中, 服务间通信采用轻量级通信机制 (通常用 HTTP 资源 API). 这些服务围绕业务能力构建并且可通过全自动部署机制独立部署. 这些服务共用一个最小型的集中式的管理,
服务可用不同的语言开发, 使用不同的数据存储技术.
故微服务架构应具有以下特性:
1, 每个微服务可独立运行在自己的进程里, 即独立部署;
2, 一系列独立运行的微服务共同构建起整个系统, 即分布式系统架构;
3, 每个服务为独立的业务开发, 一个微服务只关注某个特定的功能, 即业务服务层的高内聚低耦合, 业务的模块化;
4, 微服务之间通过轻量级的通信机制通信, 即使用 RestFul 调用;
5, 可使用不同的语言和数据存储技术;
6, 自动化部署;
总结:
装逼版: 微服务, 即基于独立的业务模块化单元的单机应用进行的完整, 成熟的分布式架构;(个人理解)
白话版: 微服务, 即多个微小的独立部署的应用单元组成的, 各个服务之间互不影响的一套完整的系统;(个人理解)
二, 微服务的优点
1, 易于开发和维护: 一个微服务只会关注特定的业务功能, 所以业务清晰, 代码量少, 易维护;
2, 局部部署: 微服务是独立部署的, 所以它部署时不会影响其他服务;
3, 可扩展性强: 由于微服务是独立部署的, 当产品有新的需求时, 就可以重新建立一套微服务, 完全解耦;
4, 支持多语言: 技术选型不在受限, 完全可以一个系统中有多个语言存在;
最大的优点就是规避了单体应用缺点, 复杂性高, 部署频率低, 扩展受限, 可靠性差等.
来源: https://www.cnblogs.com/lfalex0831/p/9139275.html