微服务的概念
微服务架构是一种架构模式,它提倡将单一应用程序划分成一级小的服务,服务之间互相协调、相互配合,为用户提供最终的价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的 RESTful API)。每个服务都围绕着具体的业务进行构建,并且能够被独立地部署到生产环境、预发布环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根所业务上下文,选择合适的语言、工具对其进行构建。
<!-- more -->
微服务的的拆分
业务独立性
团队自主性
单一职责
轻量级通信
独立性
进程隔离
容器虚拟化技术
Docker是一个开源的应用容器,允许开发者将他们的应用以及依赖,打包到一个可移植的容器中,然后发布到任何装有Docker的Linux机器上。
微服务的本质
- 服务作为组件
- 提倡使用组件的方式,组应用模块化并为期构建相对独立的单元,传统实现组件的方式是隔离独立 的部分或抽取公的部分,构建共享库,从而达到解耦和复用。和语言相关和平台相关
- 团绕业务组织团队
- 提倡以业务为核心,按业务能力来组织团队,团队中的成员具有多样性的技能
- 关注产品而非项目
- 技术多样性
- 倾向于采用统一的技术平台或方案来解决所有的问题,并不是每个问题都是钉子,也不是每个解决方案都有锤子。解决方案也应该具有针对性,针对不同的业务场景产出不同的技术方案。
- 业务数据独立
- 自主管理期相关的业务数据,提代业务数据接口集成,能够随着业务的发展,选择更合适的工具管理或者迁移业务数据
- 基础设施自动化
- 演进式架构
- 随着业务的发展而不断发展,随着业务的需求变化而变化,单块架构系统时,会面临非常多的技术选型。
- 单块架构设计构建一个大而全,无所不能的平台,但在技术发展如此之快的今天,单一的技术平台已经无法适应市场的快速变化,不断尝试新的架构设计。真正做到业务驱动架构,架构服务于业务。