spring cloud
@summer@
这个作者很懒,什么都没留下…
展开
-
Guava RateLimiter限流原理解析
限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和下游系统不被巨型流量冲垮等。限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务或进行流量整形。常用的限流方式和场景有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如nginx的limit...转载 2019-06-13 19:59:51 · 259 阅读 · 0 评论 -
SpringCloud框架搭建(八)服务链路追踪
随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂。随着业务的发展,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或者错误都有可能引起...原创 2019-06-10 18:18:18 · 431 阅读 · 0 评论 -
SpringCloud框架搭建(七)路由网关
当外部的应用如何来访问内部各种各样的微服务时,当然可以直接用ip端口加服务来进行访问,但是这样就不能实现负载均衡。当然我们可以将外部应用也加入到eureka中,这样也就可以通过eureka实现负载均衡。但是实际情况下我们不能将所有的请求端都加入eureka中(千万级访问量我们不可能将千万个客户端都加进来),在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由...原创 2019-06-10 16:47:56 · 156 阅读 · 0 评论 -
SpringCloud框架搭建(六)消息总线
书接上文,虽然可以通过刷新端点来刷新配置,但是如果有几百个服务的话,一个一个手动刷新,同样会累死人的。所以我们可以使用rabbitMq来广播配置文件的更改。以让所有的服务都刷新配置。架构图:1、提交代码触发post给客户端A-3发送bus-refresh 2、客户端A-3接收到请求从Server端更新配置并且发送给Spring Cloud Bus 3、Spring Cloud bu...原创 2019-06-10 15:53:33 · 203 阅读 · 0 评论 -
SpringCloud框架搭建(五)分布式配置中心
一个微服务系统是由多个微服务组成,这些微服务通常会有很多相同的配置(即application.yml),由于服务众多,如果对于一项公共配置发生变更,比如数据库的地址。那么就需要将所有设计到的服务全部更新,并且重启以重新读取配置文件。这如果对于几百个服务构成的系统来说,就要了人命了。所以针对微服务要实现集中管理微服务配置、不同环境不同配置、运行期间也可动态调整、配置修改后可以自动更新的需求,分布式配...原创 2019-06-10 14:56:08 · 155 阅读 · 0 评论 -
SpringCloud框架搭建(四)断路器
在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务的瘫痪。除了可能导致自身服务的...原创 2019-06-10 11:30:42 · 229 阅读 · 0 评论 -
SpringCloud框架搭建(三)服务消费ribbon和feign
RibbonRibbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器,它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载,它在联合 Eureka 使用时ribbonServerList 会被 DiscoveryEnabledNIWSServerList 重写,扩展成从 Eureka 注册中心获取服务端列表 同时它也会用 NIWSDiscov...原创 2019-06-10 08:55:10 · 262 阅读 · 0 评论 -
SpringCloud框架搭建(二)Eureka服务治理体系
服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。体系如下:Spirng Cloud Eureka使用Netflix Eureka来实现服务注册与发现。它既包含了服务端组件,也包含了客户端组件,并且服务端与客户端均采用java编写,所以Eureka主要适用于通过java实现的分布式系统,或是JVM兼容语言构建的系统。Eureka的服务端提供了较...原创 2019-06-08 23:04:51 · 608 阅读 · 0 评论 -
SpringCloud框架搭建(一)版本控制
对于SpringCloud的版本可查看https://blog.csdn.net/54powerman/article/details/79163440我们的SpringCloud框架使用的版本为Finchley.RELEASE,Finchley版本的官方文档如下:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/singl...原创 2019-06-08 21:51:57 · 1653 阅读 · 0 评论 -
SpringCloud框架搭建(九) 断路器监控
Hystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。首先在eureka-user添加maven依赖:<dependency> <groupId&...原创 2019-06-10 18:40:02 · 157 阅读 · 0 评论