随笔分类 - SpringCloud
摘要:部分来自微信公众号:纯洁的微笑 一:读《SpringCloud微服务实战》 1.Spring-Cloud其目标构建一套标准化的微服务解决方案,让架构师,开发者在使用微服务理念构建应用系统的时候,在面对各个环节的问题都找到对应的组件来处理。 2.Spring-Cloud可以说是Spring社区为微服务
阅读全文
摘要:服务治理可以说是微服务架构中最为核心的基础模块,它主要用来实现各个服务实例的自动化注册于发现。为什么要用服务治理模块,没有它有什么不好的地方。 在最初开始构建微服务系统的时候可能服务并不多,我们可通过做一些静态配置来实现服务的调用。但随着业务的发展,系统的功能越来越复杂,相应的微服务应用也不断增加,
阅读全文
摘要:注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。 Eureka Server的设计一开始就考虑了高可用问题,在Eureka的服务治理设计中,所有的结点即是服务的
阅读全文
摘要:注意:请使用官方建议的springboot和springcloud对应的版本 在之间的博客中已经写到如何建立高可用的注册中心,地址见高可用注册中心 现在我们来创建服务治理体系下的一个服务(即服务的提供者) 1.pom.xml <project xmlns="http://maven.apache.o
阅读全文
摘要:Spring Cloud为最常见的分布式系统模式提供了一个简单且可访问的编程模型,帮助开发人员构建有弹性、可靠和协调的应用程序。Spring Cloud是建立在Spring Boot之上的,这使得开发人员可以很容易地开始并快速地提高效率。 服务发现(Service Discovery) 一个动态
阅读全文
摘要:在微服务架构中,存在着多个服务单元,若一个单元出现故障,就很容易因依赖关系而出现故障的蔓延,最终导致整个系统的瘫痪,这样的架构相较传统的架构更加不稳定,为了解决这样的问题,产生了断路器等一系列的服务保护机制。 "断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路,"断路器"
阅读全文
摘要:在调用服务执行HsytrixCommand实现的run()方法抛出异常时,除HystrixBadRequestException之外,其他异常都会认为是Hystrix命令执行失败并触发服务降级处理逻辑. 异常处理 当Hystrix命令因为异常(除了HystrixBadRequestException
阅读全文
摘要:当系统的用户不断增长时, 每个微服务需要承受的并发压力越来越大。在分布式环境下,通常压力来自于对依赖服务的调用,因为请求依赖服务的资源需要通过通信来实现,这样的依赖方式比起进程内的调用方式引起一部分的性能损失,同时HTTP相比于其他高性能的通信协议在速度上没有任何优势,所以它有些类似于对数据库这样的
阅读全文
摘要:SpringCloud完美的整合Hystrix-dashboard,Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。可以实时反馈信息帮助我们快速
阅读全文
摘要:上篇博文中学到了Hystrix Board监控单个应用,除此之外还有一个Turbine提供的监控点/trubine.stream是对集群的监控使用。在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好
阅读全文
摘要:在微服务架构中客户端负载均衡和断路器保护,作为基础工具类框架广泛的应用在各个微服务的实现中,不仅包括我们自身的业务服务类,也包括一些基础设施类微服务,那么是否有更高层次的封装来整合这两个基础工具以简化开发。 Feign是Netflix开发的声明式、模板化的HTTP客户端,Netflix Feign整
阅读全文
摘要:feign中对ribbon的配置 主要是在ribbon-core.jar文件下,com.netflix.client.config包下,其中DefaultClientConfigImpl类为默认配置配置客户端和负载均衡器的最简单方法是符合特定格式的属性:<clientName>.<namespace
阅读全文
摘要:请求压缩配置 Spring Cloud feign支持对请求与响应进行GZIP压缩,以减少通信中的性能损耗,主要是在spring-cloud-netflix-core.jar文件中. 默认对请求和相应压缩是禁用的,从org.springframework.cloud.netflix.feign.en
阅读全文
摘要:在没有服务网关时,请求流程图大致如下: 客户端直接与各个微服务通信,会有以下问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性。 存在跨域请求,在一定场景下处理相对复杂。 认证复杂,大多数情况下,为了保证对外服务的安全性,我们在服务端实现的微服务接口,往往都会有一定的权限校验机制,比如对
阅读全文
摘要:每个客户端用户请求微服务应用提供的接口时,它们权限往往都有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而服务路由并没有限制权限这样的功能,所有请求被毫无保留的转发到具体应用并返回结果,为了实现对客户端请求的安全校验签名和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一套用于校验签
阅读全文
摘要:服务路由配置 Spring Cloud Zuul通过与Spring Cloud Eureka的整合,实现了对服务实例的自动化维护. 我们只需要zuul.routes.<route>.path与zuul.routes.<route>.serviceId参数对的方式进行配置 如下: /order-ser
阅读全文
摘要:对于通过API网关调用文件上传服务来说,文件(1M以内)无须任何处理,即看正常上传。对于大文件(10M以上)上传。需要在上传路径上添加/zuul前缀。也可使用zuul.servlet-path自定义前缀。 文件上传演示 pom.xml <project xmlns="http://maven.apa
阅读全文
摘要:Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息
阅读全文
摘要: 默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险 因为微服务本省其实是健康的,此时不应该注销这个微服务
阅读全文
摘要:前面的博客已经演示无注册中心版,那么Config Server也能以服务的方式注册到服务中心,被其他应用发现并获取配置信息。 服务端配置(Config Server) pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x
阅读全文

浙公网安备 33010602011771号