微服务及Springcloud介绍

    

一.什么是微服务?

  分布式服务组成的系统,主要是为了项目的解耦,将功能分解到离散的各个服务当中,传统的(例如:SSM,SSH )不灵活,构建时间长,任何小修改都要重构整个项目,一个小项目可能导致整个项目挂掉,所以就有了微服务,我们可以把整个系统根据业务拆分成多个子系统,每个子系统可以部署多个应用,多个应用使用负载均衡。

二.微服务架构需要的功能或使用场景

  1.把整个项目根据业务拆分成多个子项目。

  2.每个子项目可以部署多个应用,多个应用之间可以进行负载均衡。

     3.需要一个服务注册中心(eureka) 所有的服务都在注册中心注册,负载均衡(Ribbon) 也是通过在注册中心注册的服务来使用一定的策略来实现。

  4.所有的客户端都通过同一个网关(ZUUl) 地址访问后台的服务,通过路由配置,网关来判断一个URL请求有哪个服务处理。请求转发到服务上的时候也使用负载均衡。

  5.服务之间有时候也需要相互访问,例如有一个用户模块,其他服务在处理一些业务的时候,要获取用户服务的用户数据

  6.需要一个断路器,及时处理服务调用时的超时和错误,防止由于其中一个服务的问题而导致整个系统的瘫痪。

  7.还需要一个监控功能,监控每个服务调用花费的时间

扫描二维码关注公众号,回复: 10440779 查看本文章

目前主流的微服务框架:Dubbo、 SpringCloud、thrift、Hessian等

二.微服务架构的优点

  1.易于开发和维护,一个微服务只关注一个业务,业务清晰,代码量少

    2.单个微服务代码量少,启动快

    3.局部修改容易部署

    4.技术不受限制

三.微服务面临的挑战

  1.运维要求高

  2.使用分布式系统,系统容错,网络延迟,分布式事务等巨大的挑战

  3.接口调用成本高,微服务之间通过接口通信,如果修改一个微服务的API,可能所有使用该接口的微服务都需要调整

  4.很多服务可能会使用相同的功能,导致代码重复

微服务整体架构图

 四.springcloud介绍

  1.springcloud是基于springboot 开发的微服务框架,是目前比较完整的微服务解决方案框架,它的内容包括:服务注册(eureka),服务调用(feign) ,负载均衡(Ribbon) ,断路器(Hystrix)等

  springcloud包含多个子项目:

    springcloud config:分布式配置中心

    springcloud netfix:核心组建

       ureka:服务注册中心

         Ribbon:客户端负载均衡

      Feign: 服务调用组建

      Hystrix:服务保护框架(熔断器)

      Zuul: 网关组建,提供智能路由,访问过滤等功能

 

猜你喜欢

转载自www.cnblogs.com/yangxiaoli/p/12626478.html