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网关转发请求给对应的服务

整体项目架构图

Spring Cloud-新一代Web框架微服务的更多相关文章
- Spring Cloud 新一代Web框架微服务翘楚(一)
序言 springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合.基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易. 通过一些简单的注解,我们就可以快速的 ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
- spring cloud+dotnet core搭建微服务架构:Api授权认证(六)
前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...
- spring cloud+.net core搭建微服务架构:服务注册(一)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
- spring cloud+.net core搭建微服务架构:Api授权认证(六)
前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...
- 使用 Spring Cloud 和 Docker 构建微服务架构
如何使用Spring Boot.Spring Cloud.Docker和Netflix的一些开源工具来构建一个微服务架构. 本文通过使用Spring Boot.Spring Cloud和Docker构 ...
- 从 Spring Cloud 开始,聊聊微服务架构实践之路
[编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. ...
- Spring Cloud和Docker搭建微服务平台
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...
随机推荐
- 从 Vue 的视角学 React(二)—— 基本语法
基于 Vue.js 开发的时候,每个 vue 文件都是一个单独的组件,可以包含 HTML,JS,CSS 而 React 是以函数为基础,每个 function 就是一个组件.虽然 JSX 让 HTML ...
- APS应用案例|纽威阀门实现高效排产
企业背景: 苏州纽威阀门股份有限公司(下文简称:纽威阀门)成立于1997年,总部设在江苏苏州.自成立以来一直致力于工业阀门的研发与制造,以为客户提供全套工业阀门解决方案为目标.纽威阀门通过企业的努力发 ...
- android启动时间慢的问题
[转]对于Android的性能这方面评估,大部分都是有超级兔子去比跑分的,还是不能反映全面的问题.就我知道的而言,应用启动时间是很影响用户体验的一个性能方面问题. 最近的一个项目,别人都说应用启动慢 ...
- Java开发环境配置大全
Java开发环境配置 零章:JDK安装教程 壹章:Tomcat安装教程 贰章:IntelliJ IDEA安装教程 叁章:MySql安装教程 肆章:Maven安装教程 伍章:MongoDB安装教程 陆章 ...
- windows 下安装 composer
友情链接 1. PHP 5.6 以上 2. php.ini 开启 : extension=php_openssl.dll extension=php_mbstring.dll extension=ph ...
- PHP实现Redis单据锁,防止并发重复写入
一.写在前面 在整个供应链系统中,会有很多种单据(采购单.入库单.到货单.运单等等),在涉及写单据数据的接口时(增删改操作),即使前端做了相关限制,还是有可能因为网络或异常操作产生并发重复调用的情况, ...
- 基于TCP协议的大文件传输(粘包问题处理)
基于TCP的大文件上传服务端实现 # 服务端 # -*- coding: utf-8 -*- from socket import * import json, struct server = soc ...
- Centos6.5基于GPT格式磁盘分区
1.查看分区 fdisk -l 2.设置分区类型未gpt格式. parted -s /dev/sdb mklabel gpt 3.基于ext3文件系统类型格式化. mkfs.ext3 /dev/sdb ...
- Linux不管上一条命令成功还是失败都执行下一个命令的方法
转载请注明来源https://www.cnblogs.com/sogeisetsu/p/11407830.html Linux不管上一条命令成功还是失败都执行下一个命令的方法 Linux不管上一条命令 ...
- php7中的随机数,序列化及unicode增强
<?php //random_bytes //random_int //unserialize可自定义过滤 //unicode增强\u{code-point} header("Cont ...