暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java架构设计之初识SpringCloud

Java脱口秀 2019-05-20
225


·  正  ·  文  ·  来  ·  啦  ·


SpringCloud是近几年非常火热的微服务架构,这篇文章给大家介绍一下何为微服务,我们为什么需要微服务。


一 、为什么需要微服务


微服务是由学者Martin Fowler 提出的一种软件架构风格。


它的定义是一个大型的系统可以由多个微服务组成,每个微服务是被独立部署,独立完成自己的任务单元,微服务之间是通过API方式进行通信调用,是耦合性较低的一种架构风格。


一个新的项目在开始的时候都是一个简单的单体应用,在项目规模小的时候这种做法开发效率高、维护方便,符合各大企业的业务需求。但当公司业务不断扩大,多个开发人员维护同一个单体项目将会造成项目开发协同性问题和上线维护困难的问题。这是就需要对单体应用根据业务需求进行服务拆分,各个服务模块之间分开开发部署,这时变用到了微服务架构。


微服务的特点:

    单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责

    :微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。

   面向服务:面向服务是说每个服务都要对外暴露Rest风格服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。

    自治:自治是说服务间互相独立,互不干扰

    • 团队独立:每个服务都是一个独立的开发团队,人数不能过多。

    • 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉。

    • 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动段开发不同接口。

    • 数据库分离:每个服务都使用自己的数据源。

    • 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护。

二、SpringCloud的架构


要弄清楚SpringCloud的运行原理,我们就必须掌握它的基础组件,SpringCloud的主要组件有Eureka注册中心、服务调用组件Feign、网关Zuul、负载均衡Ribbon、配置中心ConfigServer等。


我们将在后面的文章中对SpringCloud的各个组件进行讲解。


SpringCloud微服务看起来很完美,但是并不是所有项目都适合使用微服务架构,选择架构的时候还是要充分论证,确保开发效率。


文章转载自Java脱口秀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论