01 微服务概述

 

 

01 微服务概述

 

 

微服务HOT?Why?

 

l  微服务什么?

l  微服务解决了什么问题?

l  微服务有什么特点?

 

 

 

单体架构是什么

 

l  一个归档包包含了应用所有功能的应用程序,我们通常称之为单体应用。

l  架构单体应用的架构风格,我们称之为单体架构, 这是一种比较传统的架构风格。

 

01 微服务概述

 

 

单体架构存在的缺点

 

l  复杂性逐渐变高

l  技术债务逐渐上升

l  部署速度逐渐变慢

l  阻碍技术创新

l  无法按需伸缩

 

 

架构的演进

 

l  单体架构

l  SOA

l  微服务

 

 

什么是微服务

 

l  Martin Fowler:简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。

l  来自:http://www.martinfowler.com/articles/microservices.html

 

 

微服务具备的特性

 

l  1. 每个微服务可独立运行在自己的进程里;

l  2. 一系列独立运行的微服务共同构建起了整个系统;

l  3. 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;

l  4. 微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。

 01 微服务概述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


微服务优点

 

易于开发和维护

启动较快

局部修改容易部署

技术栈不受限

按需伸缩

DevOps

 

 

 

微服务带来的挑战

 

l  运维要求较高

l  分布式的复杂性

l  接口调整成本高

l  重复劳动

 

 

微服务设计原则

 

 

l  单一职责原则

l  服务自治原则

l  轻量级通信原则

l  接口明确原则

 

 

微服务开发框架浅谈

 

l  Spring Cloud:http://projects.spring.io/spring-cloud

l  Dubbo:http://dubbo.io

l  Dropwizard:http://www.dropwizard.io

l  Consl、etcd &etc.