请使用SpringCloud的Edgware SR2版本
深入理解SpringCloud之Gateway
摘要:虽然在服务网关有了zuul(在这里是zuul1),其本身还是基于servlet实现的,换言之还是同步阻塞方式的实现。就其本身来讲它的最根本弊端也是再此。而非阻塞带来的好处不言而喻,高效利用线程资源进而提高吞吐量,基于此Spring率先拿出针对于web的杀手锏,对,就是webflux。而Gateway
阅读全文
posted @
2019-10-14 17:33
聂晨
阅读(25417)
推荐(6)
通过Ajax的访问zuul的跨域问题解决方案
摘要:刚开始在使用jqueryajax跨域请求zuul网关时,在后台发现一直拿不到前台请求的json数据,而前台也一直拿不到后台的响应数据。打开浏览器调试程序发现,本身ajax的POST请求统一都变成了option,这是怎么回事呢? 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单请求(get和
阅读全文
posted @
2019-06-01 21:52
聂晨
阅读(2175)
推荐(1)
深入理解SpringCloud之Eureka注册过程分析
摘要:eureka是一种去中心化的服务治理应用,其显著特点是既可以作为服务端又可以作为服务向自己配置的地址进行注册。那么这篇文章就来探讨一下eureka的注册流程。 一、Eureka的服务端 eureka的服务端核心类是EurekaBootstrap,该类实现了一个ServletContextListen
阅读全文
posted @
2018-05-31 08:36
聂晨
阅读(9612)
推荐(3)
深入理解SpringCloud之分布式配置
摘要:Spring Cloud Config Server能够统一管理配置,我们绝大多数情况都是基于git或者svn作为其配置仓库,其实SpringCloud还可以把数据库作为配置仓库,今天我们就来了解一下。顺便分析一下其实现原理。 一、PropertySourceLocator接口 1.1、代码分析 这
阅读全文
posted @
2018-05-22 12:19
聂晨
阅读(7797)
推荐(0)
深入理解SpringCloud之配置刷新
摘要:我们知道在SpringCloud中,当配置变更时,我们通过访问http://xxxx/refresh,可以在不启动服务的情况下获取最新的配置,那么它是如何做到的呢,当我们更改数据库配置并刷新后,如何能获取最新的数据源对象呢?下面我们看SpringCloud如何做到的。 一、环境变化 1.1、关于Co
阅读全文
posted @
2018-05-05 19:32
聂晨
阅读(18555)
推荐(8)
深入理解SpringCloud之引导程序应用上下文
摘要:tips:我希望通过这篇文章来给对于bootstrap还不理解的朋友带来帮助。当然这篇文章不仅仅是讲解知识,我更希望给广大朋友带来学习与理解官方文档的一种思路。阅读本文前,建议大家对SpringBoot的启动机制与Environment的作用有大致的了解。关于SpringBoot的启动机制我们可以参
阅读全文
posted @
2018-04-29 10:37
聂晨
阅读(12427)
推荐(3)
深入理解SpringCloud之自动注册服务
摘要:当我们使用@DiscoveryClient注解的时候,会不会有如下疑问:它为什么会进行注册服务的操作,它不是应该用作服务发现的吗?下面我们就来深入的探究一下其源码。 一、Springframework的LifeCycle接口 要搞明白这个问题我们需要了解一下这个重要的接口: /* * Copyrig
阅读全文
posted @
2018-04-23 09:52
聂晨
阅读(14495)
推荐(5)
SpringCloud学习之Zuul统一异常处理及回退
摘要:一、Filter中统一异常处理 其实在SpringCloud的Edgware SR2版本中对于ZuulFilter中的错误有统一的处理,但是在实际开发当中对于错误的响应方式,我想每个团队都有自己的处理规范。那么如何做到自定义的异常处理呢? 我们可以先参考一下SpringCloud提供的SendErr
阅读全文
posted @
2018-04-16 21:57
聂晨
阅读(8298)
推荐(2)
SpringCloud学习之sleuth&zipkin【二】
摘要:这篇文章我们解决上篇链路跟踪的遗留问题 一、将追踪数据存放到MySQL数据库中 默认情况下zipkin将收集到的数据存放在内存中(In-Memeroy),但是不可避免带来了几个问题: 在服务重新启动后,历史数据丢失。 在数据量过大的时候容易造成OOM错误 在服务重新启动后,历史数据丢失。 在数据量过
阅读全文
posted @
2018-04-13 23:48
聂晨
阅读(488)
推荐(0)
SpringCloud学习之SpringCloudBus
摘要:一。spring-cloud-bus是什么? 回答这个问题之前,我们先回顾先前的分布式配置,当配置中心发生变化后,我们需要利用spring-boot-actuator里的refresh端点进行手动刷新: 根据上述示例情况:我们每次要获取最新配置时,要一个一个的通过refresh刷新服务节点,这种方式
阅读全文
posted @
2018-04-04 17:01
聂晨
阅读(1198)
推荐(1)
SpringCloud学习之SpringCloudStream&集成kafka
摘要:一、关于Spring-Cloud-Stream Spring Cloud Stream本质上就是整合了Spring Boot和Spring Integration,实现了一套轻量级的消息驱动的微服务框架。通过使用Spring Cloud Stream,可以有效地简化开发人员对消息中间件的使用复杂度,
阅读全文
posted @
2018-04-01 17:12
聂晨
阅读(27055)
推荐(5)
SpringCloud学习之sleuth&zipkin
摘要:一。调用链跟踪的必要性 首先我们简单来看一下下单到支付的过程,别的不多说,在业务复杂的时候往往服务会一层接一层的调用,当某一服务环节出现响应缓慢时会影响整个服务的响应速度,由于业务调用层次很“深”,那么在排查问题的时候也会更加困难,如果有一种机制帮我们监控、收集这些服务之间层层调用的时间与逻辑关系是
阅读全文
posted @
2018-03-21 14:30
聂晨
阅读(1050)
推荐(0)
SpringCloud学习之zuul
摘要:一。为什么要有网关 我们先看一个图,如果按照consumer and server(最初的调用方式),如下所示 这样我们要面临如下问题: 1. 用户面临着一对N的问题既用户必须知道每个服务。随着服务的增多难免会.... 2.消费端(在这里可能是服务,也有可能为controller等),如何进行安全控
阅读全文
posted @
2018-03-14 16:24
聂晨
阅读(795)
推荐(2)
SpringCloud学习之Ribbon
摘要:一。负载均衡与Ribbon 轮询法:所有请求被依次分发到每台应用服务器上,每台服务器需要处理的请求数目都相同,适合所有服务器硬件都相同的场景 随机法:请求被随机分配到各个应用服务器,在许多场合下,这种方案都很简单实用。 源地址哈希(Hash)法:将请求来源的IP地址进行Hash计算,得到对应的服务器
阅读全文
posted @
2018-03-11 12:32
聂晨
阅读(4568)
推荐(1)
SpringCloud学习之Hystrix
摘要:一、为什么要有断路器 在分布式系统当中,服务之间调用关系会随着业务的发展而变的复杂,一个服务可能依赖多个服务,服务之间层层依赖也是家常便饭的事情,如果一个服务的瘫痪很有可能导致整个系统的崩溃。比如说,现在每栋房子,每家每户都有电闸,电闸的作用是保证有一家用电出现异常时,电闸进行断电跳闸的操作,这样不
阅读全文
posted @
2018-03-06 21:55
聂晨
阅读(3082)
推荐(3)
SpringCloud学习之feign
摘要:一、关于feigin feigin是一种模板化,声明式的http客户端,feign可以通过注解绑定到接口上来简化Http请求访问。当然我们也可以在创建Feign对象时定制自定义解码器(xml或者json等格式解析)和错误处理。 二、添加SpringCloud对feign的支持 gradle配置: c
阅读全文
posted @
2017-12-31 22:45
聂晨
阅读(15376)
推荐(4)
SpringCloud学习之eureka集群配置
摘要:一。集群方案及部署思路: 如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的。 集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴注册) 注意: 用于本机模拟的前期准备工作:将电脑上hosts 添加如下配置 (linux下位置:/
阅读全文
posted @
2017-12-27 23:00
聂晨
阅读(9353)
推荐(3)
SpringCloud学习之快速搭建分布式配置
摘要:一. 关于spring-cloud中的分布式配置 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性 ,通常情况下我们可以把需要管理的配置文件放置在svn或者git上进行做统一的配置仓库。 二
阅读全文
posted @
2017-12-13 19:43
聂晨
阅读(752)
推荐(3)
SpringCloud学习之soa基础
摘要:一、soa简单介绍 1)面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。SOA是解决复杂业务模块,提高扩展性,维护性,可伸缩性的最基本方案。我们的业务服务可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使
阅读全文
posted @
2017-11-13 11:36
聂晨
阅读(3879)
推荐(1)