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

微服务的一些理解

2017-02-06 16:18 218 查看
项目采用的是spring boot,一直说这个架构是微服务,一直没搞明白微服务是干什么的。今天查了些资料来说下理解

微服务的目的是有效的拆分应用,实现敏捷开发和部署 

微服务是一种分布式架构设计理念,为了推动细粒度服务的使用,这些服务要能协同工作,每个服务都有自己的生命周期。一个微服务就是一个独立的实体,可以独立的部署在PAAS平台上,也可以作为一个独立的进程在主机中运行。服务之间通过api访问,修改一个服务不会影响其他服务

首先对于应用本身暴露出来的服务,是和应用一起部署的,即服务本身并不单独部署,服务本身就是业务组件已有的接口能力发布和暴露出来的。了解到这点我们就看到一个关键,即我们在进行单个应用组件设计的时候,本身在组件内部就会有很大接口的设计和定义,那么这些接口我们可以根据和外部其它组件协同的需要将其发布为微服务,而如果不需要对外协同我们完全可以走内部API接口访问模式提高效率。服务跟服务之间我采用的dubbo框架

微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些就应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台使部署、管理和服务功能交付变得更加简单。(

一个微服务一般完成某个特定的功能,比如订单管理、客户管理等。每个微服务都是一个微型应用,有着自己六边形架构,包括商业逻辑和各种接口。有的微服务通过暴露API 被别的微服务或者应用客户端所用;有的微服务则通过网页 UI 实现。在运行时,每个实例通常是一个云虚拟机或者 Docker容器。



由于微服务架构里面强调了单个组件本身是可以在独立的进程里面运行,各个组件之间在部署的时候就能够做到进程级别的隔离。那么一台服务器我们可能需要初始化几十个甚至更多的进程来进行应用组件的部署。为了保持进程的隔离性,我们可以用虚拟机,但是当几十个进程都完全用独立的虚拟机就不现实的,而这个问题的解决刚好就是利用PaaS平台里面的轻量Docker容器来做这个事情,每个Docker是独立的容器刚好又完全做到进程级别的隔离,资源占用率又最小,这些特点刚好满足微服务架构的开发测试和自动化部署。

微服务优点:1易于维护:拆分成小的服务后,功能清晰,利于新项目的开发,问题的定位
    2,缩短交付周期,不会因为其他服务影响到本服务的交付
    3,新人容易上手
  拆分成服务是他的优点同时也带来一些缺点
    1运维麻烦   2基础共用要求比较高,因为多个项目共同使用,设计好坏影响很大   3拆分依据是一个难点,不合理的拆分会导致优点变缺点                以前是通过查看资料对微服务的一些理解  

(云计算就是一种配置资源的方式,根据资源配置方式的不同我们可以把云计算从宏观上分为以下三种类型 IAAS,PaaS、SaaS)

云原生的特性:敏捷,可靠,高弹性,易扩展,故障隔离保护,不中断业务持续更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring 敏捷开发