zoukankan      html  css  js  c++  java
  • Spring Cloud-新一代Web框架微服务

    序言

    springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。

    通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。

    下面主要用图来理解下各个组件的概念吧

    都有哪些优秀组件

    Eureka

    功能:服务注册与发现,各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里

    Ribbon

    功能:服务请求调用客户端负载均衡,服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台 

    Feign

    功能:服务请求调用,基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求

    Hystrix

    功能:熔断器,发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题

    Zuul

    功能:api路由网关,如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务

    Sleuth

    功能:服务链路追踪,主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin

    Spring Cloud核心组件:Eureka 服务注册与发现

    他有三端构成

    1.Eureka Server 服务注册与发现中心端

    2.Service Provider服务提供者端

    3.Service Consumer服务调用者端

    官方图

    Spring Cloud核心组件:Feign

    接口调用,restful风格http可以用调java接口方式去调用。

    自己组装url与参数还有请求头等信息,不用自己去写啦。简单易用。

    看下调用方式与代码

    //url=http://www.me.com@FeignClient(url = "${feign.order-promotion.url}")
    public interface PromotionClient {
        @RequestMapping(value = "/Member/Promotion/ReleasePromtionByOrderId", method = RequestMethod.POST)
        BaseWcfResponse<Integer> ReleasePromtionByOrderId(@RequestBody ReleasePromtionReq request);
    }

    Spring Cloud核心组件:Ribbon

    客户端负载均衡,一个服务部署多台机器的情况feign不知道调用那台服务,那么ribbon就可以使用默认abab的轮询算法,给确定那一台机器

    Spring Cloud核心组件:Hystrix

    熔断器,个别服务接口挂拉,可能会影响整个服务链路,导致整体服务不可用,这个时候hystrix就派上用场啦。

    Spring Cloud核心组件:Zuul

    前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务

    整体项目架构图

  • 相关阅读:
    [Swift]LeetCode241. 为运算表达式设计优先级 | Different Ways to Add Parentheses
    [Swift]LeetCode240. 搜索二维矩阵 II | Search a 2D Matrix II
    使用ADO.NET对SQL Server数据库进行訪问
    JavaScript中面向对象那点事
    总结文件操作函数(二)-C语言
    UVa
    深入研究java.lang.Object类
    TCP/IP具体解释--TCP/IP可靠的原理 滑动窗体 拥塞窗体
    W5500EVB UDP模式的測试与理解
    仿新浪首页、主题、详情页,纯html静态页面
  • 原文地址:https://www.cnblogs.com/dekevin/p/11588013.html
Copyright © 2011-2022 走看看