zoukankan      html  css  js  c++  java
  • 微服务及Springcloud介绍

        

    一.什么是微服务?

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

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

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

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

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

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

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

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

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

    目前主流的微服务框架: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: 网关组建,提供智能路由,访问过滤等功能

     

  • 相关阅读:
    Android的读写文件及权限设置
    surfaceView和View的区别
    git的常见问题
    APP的缓存文件放在哪里?
    AndroidStudio遇到过的问题
    订单和支付状态不同步解决方法
    支付宝支付不成功原因
    格式化输出%s和%S的区别
    Android SDK更新下载失败以及Studio首次安装取消自动下载SDK
    SPOJ 104 HIGH
  • 原文地址:https://www.cnblogs.com/yangxiaoli/p/12626478.html
Copyright © 2011-2022 走看看