Spring Cloud 新一代Web框架微服务翘楚(一)
序言
springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。
通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。
下面主要用图来理解下各个组件的概念吧
都有哪些优秀组件
被我搞绿的,是比较常用的组件!!
那么本篇也简单介绍下被我搞绿的,我没搞的,你们找度娘搞吧。
Eureka:全球(美国)/jʊ'rikə/
n. 尤里卡(美国地名);优铜
n. (美)欧雷卡(人名)
int. (eureka) 我发现了,我找到了;有了
功能:服务注册与发现,各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里
Ribbon: 全球(美国)/'rɪbən/
n. [动力] 涡轮;[动力] 涡轮机
功能:服务请求调用客户端负载均衡,服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台
Feign: 全球(英语)/feɪn/
vt. 假装;装作;捏造;想象
vi. 假装;装作;作假;佯作
功能:服务请求调用,基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求
Hystrix:hy /,etʃ 'waɪ/ strix /s坠x/ 嗨s坠x
短语:.豪猪属 猬草属 豪猪 断路器
功能:熔断器,发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题
Zuul:/zuːl/
短语:zuul 网关 路由网关 祖鲁乐团 静态文件
功能:api路由网关,如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务
看别人博客的一句话,贴出来:当我对zuul有点映像的时候,它已经过时了,SpringCloud Gateway就诞生,这让我们这些33岁的老程序员怎么活呢。
Sleuth: /sluθ/
n. 侦探;警犬
vi. 做侦探;侦查
功能:服务链路追踪,主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 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网关转发请求给对应的服务
整体项目架构图
总结
感觉好累,接下来会写这个总架构图中的代码与运维实现。
就这吧,88
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 ...
随机推荐
- [IDA]批量载入结构体
我们之前介绍了如果单独定义一个C结构体并转换为IDA中的结构体. 但是,在内核中有很多庞大的结构体,一环接着一环,手动导入不现实. 还存在一个问题,可能大小格式不匹配. 之前有一位老哥推荐我一个工具: ...
- C# WinForm实现禁止最大化、最小化、双击标题栏、双击图标等操作
protected override void WndProc(ref Message m) { if (m.Msg==0x112) { switch ((int) m.WParam) { //禁止双 ...
- JS基础语法---数组基础知识总结
数组: 存储一组有序的数据 数组的作用: 一次性存储多个数据 数组的定义方式: 1.构造函数定义数组: var 数组名=new Array(); 2.字面量方式定义数组: var 数组名=[]; ...
- vue学习笔记(二): 添加 element ui 插件
一.加载 ui element vue add element 加载过程及成功结果如下 > vue add element>
- 通过重复运行的Microsoft Flow由OAuth认证后获取Access Token并将其更新到实体记录
我是微软Dynamcis 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Tomcat启动分析(一)-从脚本到main函数分析
当我们在Linux下启动tomcat的时候,通过ps查看其进程信息为,接下来的内容我们就以此进行分析: [tomcat@fdd ~]$ ps -ef |grep java tomcat : tty1 ...
- [20190522]DISABLE TABLE LOCK.txt
[20190522]DISABLE TABLE LOCK.txt --//如果禁止table lock时,一些ddl操作会被禁止.但是我有点吃惊的是增加字段不受限制.--//通过测试说明问题. 1.环 ...
- apicloud如何实现优雅的下拉刷新与加载更多
apicloud中提供下拉刷新监听事件api,也提供滚动到底部事件的监听,能够实现下拉刷新和滚动到底部加载更多功能,但是我们真的就满足实现功能了吗?将两个代码拼凑起来运行看看发现了什么?是的,在滚动到 ...
- Windows下使用ssh-add报错 Error connecting to agent: No such file or directory
Windows下使用ssh-add报错 Error connecting to agent: No such file or directory 环境信息 操作系统:windows 10 终端:Win ...
- 初学JavaScript正则表达式(四)
字符类 [] 一般情况下正则表达式中一个字符对应字符串一个字符 可以使用元字符 [ ] 来构建一个简单的类 类泛指符合某些特征的对象 例: 'a1b1c1d1'.replace(/[ab ...