
Spring Cloud
文章平均质量分 95
AaronSimon
这个作者很懒,什么都没留下…
展开
-
声明式调用Feign之请求参数
1、Feign请求参数说明 Feign是Netflix的产品,Spring Cloud Feign是在原生Feign的基础上进行了封装。由于Spring Cloud Feign引入了许多springmvc的注解,方便springmvc的使用者使用,但同时也给使用者带来了很大的混淆,下面我们简单讲解一下springmvc和Spring Cloud Feign的参数绑定机制。1.1 Sp...原创 2018-09-15 09:17:16 · 3666 阅读 · 1 评论 -
Spring security oauth2-客户端模式,简化模式,密码模式(Finchley版本)
一、客户端模式原理解析(来自理解OAuth 2.0)客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,其实不存在授权问题。具体步骤:(A) 客户端向认证服务器进行身份认证...原创 2018-11-22 08:10:04 · 7741 阅读 · 0 评论 -
Spring Cloud Config 多服务公共配置
一、问题描述使用Spring Cloud Config作为配置中心,其它服务均从配置中心获取配置信息。有这样一个场景,如果多个服务的配置存在公共配置(例如数据库连接配置等),那么可不可以只在公共的文件中配置就可以呢?是可以的,下面提供两种解决方案。涉及到的服务如下:服务名端口号说明eureka8080服务注册中心config8090配置中心servi...原创 2018-11-16 18:34:53 · 2904 阅读 · 1 评论 -
Spring Security OAuth2实现使用JWT
在Spring Security Oauth2-授权码模式(Finchley版本)一文中介绍了OAuth2的授权码模式的实现,本文将在这篇文章的基础上使用JWT生成token。一、准备工作下载代码大家可以在github上下载Spring Security Oauth2-授权码模式(Finchley版本)的源码。添加JWT依赖授权服务和资源服务是两个分开的服务,需要在两个服务中添加JWT...原创 2018-11-14 18:46:59 · 9398 阅读 · 2 评论 -
携程 Apollo 配置中心分布式部署(Docker)
在Spring Boot 2.0 整合携程Apollo配置中心一文中,我们在本地快速部署试用了Apollo。本文将介绍如何按照分布式部署(采用Docker部署)的方式编译、打包、部署Apollo配置中心,从而可以在开发、测试、生产等环境分别部署运行。一、准备工作本文将在CentOS 7.x上部署Apollo配置中心服务端。1.1 Java和MySQ对于Java和MySQL的要求可以参考Sp...原创 2018-11-07 08:16:22 · 1789 阅读 · 0 评论 -
Spring Security Oauth2-授权码模式(Finchley版本)
一、授权码模式原理解析(来自理解OAuth 2.0)授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动。其具体的流程如下:具体步骤:A:用户访问客户端(client),客户端告知浏览器(user-Agent)重定向到授权服务器B:呈现授权界面给用户,用户选择是否给予客户端授权C...原创 2018-10-30 18:49:41 · 26119 阅读 · 7 评论 -
Spring Clould Sidecar整合异构服务(Finchley版本)
本节我们主要讨论一下异构平台(比如,nodejs、python、php等提供的Rest接口服务)的服务,怎么通过spring cloud组件对这些服务注册到eureka中心以及与在微服务中怎么和异构平台的服务进行通信。这里主要是通过spring cloud的sidecar来构建异构平台的服务注册与通信。sidecar灵感来自Netflix Prana。它可以获取注册中心的所有微服务实例的信息(例...原创 2018-10-10 21:19:00 · 1731 阅读 · 0 评论 -
Spring Cloud Sleuth服务链路追踪(mysql存储链路数据)(Finchley版本)
在Spring Cloud Sleuth服务链路追踪(Finchley版本)中,我们使用Spring Cloud Sleuth和zipkin的整合实现了服务链路的追踪,但是遗憾的是链路数据存储在内存中,无法持久化。zipkin的持久化可以结合Elasticsearch,MySQL实现。本节在Spring Cloud Sleuth服务链路追踪(Finchley版本)的基础上整合MySQL进行链路数据...原创 2018-10-02 13:33:23 · 1188 阅读 · 2 评论 -
服务熔断与熔断监控(Finchley版本)
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫...原创 2018-09-26 23:55:18 · 1423 阅读 · 0 评论 -
Spring Cloud Sleuth服务链路追踪(Finchley版本)
一、Java 8 的函数式编程1.1 函数作为一等公民JavaScript被称之为多范式语言,你既可以把它当做面向对象的语言也可以当做函数式语言。在jQuery中经常可以看到如下的代码:$("button").click(function(){ $("li").each(function(){ alert($(this).t原创 2018-09-18 21:35:16 · 1530 阅读 · 1 评论 -
Docker-compose编排微服务顺序启动解决方案
一、前言docker-compose可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序。docker-compose 中的 depends_on 配置是容器的启动顺序, 并不是容器中服务的启动顺序。本章将详细叙述如何解决 docker-compose 顺序启动微服务的问题。二、解决方案经过两天的...原创 2018-09-16 08:18:19 · 15962 阅读 · 3 评论 -
Docker Compose编排微服务
在前面的文章Docker部署Spring Boot中,使用maven构建镜像,然后使用docker命令操作容器。微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。Docker Compose可以轻松的管理容器,降低维护工作量。一、Docker Compose简介Docker Compose是一个编排多容器分布式部...原创 2018-09-16 08:18:08 · 1756 阅读 · 0 评论 -
Feign传递请求头信息
在我之前的文章服务网关Spring Cloud Zuul中,将用户的登录id放在了请求头中传递给内部服务。但是当内部服务之间存在feign调用时,那么请求头信息会在feign请求的时候传递吗?不会,请求的头信息和请求参数都不会进行传递。但是我们可以通过通过实现RequestInterceptor接口,完成对所有的Feign请求,传递请求头和请求参数。1. 实现RequestIntercep...原创 2018-09-15 09:38:20 · 12588 阅读 · 4 评论 -
Spring Boot Admin 2.0 监控Spring Cloud服务(Finchley版本)
一、简介Spring Boot Admin 在Spring Boot Actuator 的基础上提供简介的可视化WEB UI,用来管理Spring Boot应用程序的一个简单的界面,提供如下的功能:显示 name/id 和版本显示在线状态Logging 日志级别管理MX beans 管理Threads 会话和线程管理Trace 应用请求跟踪应用运行参数信息,如:Java 系...原创 2018-09-15 09:36:16 · 3181 阅读 · 0 评论 -
Feign实现微服务间文件下载
在使用Feign做服务间调用的时候,当下载大的文件会出现堆栈溢出的情况。另外,文件管理服务(服务提供者)文件下载接口无返回值,是通过HttpServletRespoonse传输的流数据来响应,那么服务消费者该如何接受下载的数据呢?一. 示例介绍 服务名 端口号 角色 feign_upload_first 8100 feign服务提供者 feig...原创 2018-09-15 09:31:14 · 11459 阅读 · 4 评论 -
Feign实现微服务间文件上传
在Spring Cloud 的Feign组件中并不支持文件的传输,会出现这样的错误提示:feign.codec.EncodeException: class [Lorg.springframework.web.multipart.MultipartFile; is not a type supported by this encoder. at feign.codec.Encode...原创 2018-09-15 09:25:15 · 1359 阅读 · 0 评论 -
服务网关Spring Cloud Zuul(Finchley版本)
一、Zuul简介Zuul作为微服务系统的网关组件,用于构建边界服务(Edge Service),致力于动态路由、过滤、监控、弹性伸缩和安全。其在微服务架构中有着重要的作用,主要体现在以下六个方面:Zull、Ribbon以及Eureka相结合可以实现智能路由和负载均衡的功能,Zull可以按照某种策略将请求分发到不同的实例上;网关作为边界服务,将内部服务的API接口进行聚合并统一对外暴露接...原创 2018-09-15 09:20:32 · 813 阅读 · 0 评论 -
Spring Cloud Zuul 中 ribbon 和 hystrix 配置说明
本篇主要讲解一下Spring Cloud 中 Zuul 组件的Ribbon和Hystrix的配置。Ribbon:负载均衡,是针对服务的多实例负载均衡的配置Hystrix:熔断器,当zuul网关调用具体的业务的时候可能受到网络,代码执行时间等影响长时间无响应,这个时候就需要配置hystrix,避免线程长时间占用内存,造成内存泄露,服务挂掉Ribbon 配置通过查阅官方文档,我找到了配置方...原创 2018-12-03 21:26:17 · 6136 阅读 · 0 评论