什么是微服务,微服务简介

@数据库


什么是微服务

今天简单了解一下微服务,在看微服务前,先了解一下传统的单机系统。编程

单体系统

全部的业务子模块都集中在一个系统中,优势是便于管理,可是规模变大的时候,缺点就很明显了。
在这里插入图片描述api

缺点:服务器

一、项目过于臃肿

当产品规模愈来愈大,各类的大大小小模块都塞在一个项目中,必然会使整个项目变的臃肿,让开发者难以维护。架构

二、资源难以隔离

系统的各个功能模块都依赖于一样的数据库、内存等资源、一旦某个功能模块对资源处理不当,便可能影响整个系统。异步

三、扩展瓶颈模块受限

当系统的访问量愈来愈大的时候,单体系统能够进行水平扩展,部署多台机器。
在这里插入图片描述
可是这种扩展并不灵活,假如咱们的性能瓶颈在支付上,只但愿对支付模块进行水平扩展,单体系统是没法作到的。编程语言

微服务

微服务,是近年来流行起来的一种架构思想,将单个的应用拆分红一套小型服务,每种应用都是一个独立的进程,经过轻量级机制(一般为http资源api)进行通讯。
这些服务围绕业务功能构建,因为进程的独立性,这些小型服务可使用不一样的编程语言、数据存储技术。分布式

微服务的优势微服务

一、独立部署、灵活扩展

单体架构是以整个系统做为单位部署,而微服务则能够做为一个独立的组件单独部署。
举个例子,咱们都知道每一年双11的爆发访问量,并且基本会集中在凌晨。
那么假如系统瓶颈在于支付模块,须要300台机器,其次是订单只须要200台,用户只须要100台机器,那么咱们采用微服务的话就能够进行以下部署。同时docker的流行,也为微服务器提供了有效的容器。
在这里插入图片描述

二、资源隔离

微服务的一个重要设计原则就是每个微服务拥有独立的数据源,假如订单服务想读取用户服务的数据库,那么只能经过操做用户服务的接口完成。
同时,docker容器也作好了资源的有效隔离。
在这里插入图片描述
相比于传统架构,微服务架构更强调的是系统按业务边界作细粒度的拆分和部署。

那么微服务架构有哪些缺点呢:

一、架构设计复杂

微服务须要把原有的系统拆分红多个独立工程,同时须要保证不一样服务之间的数据一致性,引入了分布式事务和异步补偿机制,大大增长了设计和开发的难度。

二、 管理复杂

微服务拆分过细可能会出现添加一个小功能须要改动好几个工程的状况,随着服务数量的增长,管理的复杂性也会随之增长。

因此说架构设计没有什么绝对的,主要仍是看场景,若是不在大厂的话,通常很难遇到复杂的微服务架构吧。

相关文章
相关标签/搜索