
spring cloud
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
使用Zuul构建API Gateway
一 微服务网关背景及简介不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服务等。如果客户端直接和微服务进行通信,会存在一下问题:# 客户端会多次请求不同微服务,增加客户端的复杂性# 存在跨域请求,在一定场景下处理相对复杂# 认证复杂,每一个服务都需要独立认证# 难以重构,随着...转载 2018-07-07 17:23:56 · 435 阅读 · 0 评论 -
微服务:spring-cloud-archaius 起步
Archaius是什么? 一句话:可以动态的管理属性配置文件。使用相关的API使用属性就可以实现动态的数性加载。 参考自Getting-Started* 引入项目中*dependency> groupId>com.netflix.archaiusgroupId> artifactId>archaius-coreartifactId> version>0.6.0v转载 2017-10-21 12:07:30 · 807 阅读 · 0 评论 -
Feign:web service client(译)
Declarative REST Client:FeignFeign是一种声明式的web service client。它让web service变得更容易。使用Feign你只需要创建一个接口并且写上注解。它提供插拔式的Feign注解和JAX-RS注解支持。Feign同样提供插拔式的编码解码器。Spring Cloud添加了Spring MVC的注解支持,在Spring web中默认使用相转载 2017-10-20 22:09:00 · 355 阅读 · 0 评论 -
Kubernetes和Spring Cloud哪个部署微服务更好?
Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的。在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA),它们擅长哪个领域,并且如何两全其美的使用从而在微服务之旅上获得成功。背景最近我读了 A. Lukyanchikov的一篇非常棒的文章(https://dzone.com/artic转载 2017-11-09 20:40:09 · 359 阅读 · 0 评论 -
spring-cloud-hystrix之Unable to connect to Command Metric Stream.异常
解决方法:1,检查是否添加以下依赖[java] view plain copy org.springframework.boot spring-boot-starter-actuator转载 2017-10-20 19:12:39 · 1523 阅读 · 1 评论 -
spring cloud-添加Hystrix Dashboard监控到系统中
前言该示例是在spring cloud-使用Hystrix实现单个方法的fallback示例的基础上改进一、添加依赖[html] view plain copydependency> groupId>org.springframework.cloudgroupId>转载 2017-10-20 18:40:06 · 263 阅读 · 0 评论 -
SPRINGCLOUD-熔断监控HYSTRIX DASHBOARD和TURBINE
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够. 我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上,转载 2017-10-20 17:24:05 · 263 阅读 · 0 评论 -
微服务框架Spring Cloud介绍 Part5: 在微服务系统中使用Hystrix, Hystrix Dashboard与Turbine
原文地址:http://skaka.me/blog/2016/09/04/springcloud5/通过前面几篇文章的介绍, 我们已经能够使用Spring Cloud开发出一个简单的系统了. 这篇文章里, 我们将关注点转移到如何提高微服务系统的容错性(Fault Tolerance), 并了解如何借助Hystrix开发健壮的微服务.以往我们在开发单体应用, 或者调用RPC服转载 2017-10-20 17:13:44 · 218 阅读 · 0 评论 -
yaml语法三大规则
规则一:缩进 yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。一定不能使用tab键规则二:冒号 yaml: mykey: my_value 每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)规则三:短横线 想要表示列表项,使用一个短横杠加一个空格。多个项使用同转载 2017-10-28 17:47:33 · 1494 阅读 · 0 评论 -
Spring Cloud Hystrix: 控制stream推送频率
问题表现在引入spring-boot-starter-actuator依赖后,Spring Boot应用会暴露出/hystrix.stream端点以供监控工具读取该应用的Hystrix Metrics数据。但是默认情况下,该Endpoint每间500ms就会向建立连接的客户端发送metrics数据,频率太高了,浪费CPU和带宽资源。在Hystrix Dashboard主页中虽然有让你输转载 2017-10-25 19:52:31 · 474 阅读 · 1 评论 -
解决加了@EnableHystrixDashboard后项目中freemarker配置失效导致404问题
去掉注解,手动配置如下package com.mark.demo.security.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.properties.EnableConfigurationProperties;im原创 2017-10-20 21:37:04 · 2317 阅读 · 2 评论 -
hystrix 请求合并
hystrix支持N个请求自动合并为一个请求,这个功能在有网络交互的场景下尤其有用,比如每个请求都要网络访问远程资源,如果把请求合并为一个,将使多次网络交互变成一次,极大节省开销。重要一点,两个请求能自动合并的前提是两者足够“近”,即两者启动执行的间隔时长要足够小,默认为10ms,即超过10ms将不自动合并。请求合并使多个请求可以批量化成单个HystrixCommand实例执行。合并器转载 2017-10-25 18:27:13 · 435 阅读 · 1 评论 -
Netflix开源类库archaius(一)概述
[+]archaius是什么,能做什么?archaius是Netflix公司开源项目之一,基于java的配置管理类库,主要用于多配置存储的动态获取。主要功能是对apache common configuration类库的扩展。在云平台开发中可以将其用作分布式配置管理依赖构件。同时,它有如下一些特性:动态类型化属性高效和线程安全的配置操作配置改变时的回调机制j转载 2017-10-21 12:20:53 · 491 阅读 · 0 评论 -
使用Spring Cloud Consul实现服务的注册和发现
首先安装consul环境,参照之前的文章:http://blog.youkuaiyun.com/mn960mn/article/details/51753893项目规划,2个服务端,1个客户端首先来看服务端,一:服务端1:项目依赖[java] view plain copy转载 2017-10-21 12:28:35 · 993 阅读 · 0 评论 -
spring-cloud-sleuth+zipkin追踪服务实现(三)
1.前言在上一篇spring-cloud-sleuth+zipkin追踪服务实现(二)中我们讲述了利用mq的方式发送数据,存储在mysql,实际生产过程中调用数据量非常的大,mysql存储并不是很好的选择,这时我们可以采用elasticsearch进行存储。我们还是使用之前上一节中的三个程序做修改,方便大家看到对比不同点。这里每个项目名都加了一个es,用来表示区别。2.使用前提这里选用elasti...转载 2018-07-07 17:13:14 · 227 阅读 · 0 评论 -
spring-cloud-sleuth+zipkin追踪服务实现(二)
1. 简述在上一节《spring-cloud-sleuth+zipkin追踪服务实现(一)》中,我们使用microservice-zipkin-server、microservice-zipkin-client、microservice-zipkin-client-backend 三个程序实现了使用http方式进行通信,数据持久化到内存中的服务调用链路追踪实现。在这里我们做两点改动,首先是数据从保...转载 2018-07-07 17:12:04 · 260 阅读 · 0 评论 -
spring-cloud-sleuth+zipkin追踪服务实现(一)
1.简述最近在学习spring cloud构建微服务,研究追踪微服务rest服务调用链路的问题,接触到zipkin,而spring cloud也提供了spring-cloud-sleuth来方便集成zipkin实现。我们准备了三个必要的程序来做测试,分别是1、microservice-zipkin-server负责数据收集以及信息展示功能。2、microservice-zipkin-client-...转载 2018-07-07 17:10:23 · 396 阅读 · 0 评论 -
微服务之间的调用(Ribbon与Feign)
概述在前面的文章中,我们讲了使用Eureka作为服务注册中心,在服务启动后,各个微服务会将自己注册到Eureka server。那么服务之间是如何调用?又是如何进行负载均衡的呢?本文讲讲服务之间调用及负载均衡Ribbon。目前,在Spring cloud 中服务之间通过restful方式调用有两种方式 - restTemplate+Ribbon - feign从实践上看,采用feign的方式更优雅...转载 2018-07-07 14:46:37 · 2079 阅读 · 1 评论 -
分布式配置中心(spring cloud config)
在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置...转载 2018-07-07 14:25:32 · 329 阅读 · 0 评论 -
springcloud(第二篇)springcloud config 修改配置
springcloud(第二篇)springcloud config 修改配置在git端修改配置后如何让客户端生效?访问接口修改refresh post方式执行http://localhost/refresh 会刷新env中的配置restart 如果配置信息已经注入到bean中,由于bean是单例的,不会去加载修改后的配置 需要通过post方式去执行http:/转载 2017-10-21 21:02:53 · 423 阅读 · 0 评论 -
zuul动态配置路由规则,从DB读取
前面已经讲过zuul在application.yml里配置路由规则,将用户请求分发至不同微服务的例子。zuul作为一个网关,是用户请求的入口,担当鉴权、转发的重任,理应保持高可用性和具备动态配置的能力。我画了一个实际中可能使用的配置框架,如图。当用户发起请求后,首先通过并发能力强、能承担更多用户请求的负载均衡器进行第一步的负载均衡,将大量的请求分发至多个网关服务转载 2017-10-21 15:39:08 · 7009 阅读 · 2 评论 -
zuul No route found for uri:
一个web项目连接zuul网关连接后台多个服务。示例:web端使用feignClientpackage com.mark.demo.security.service;import java.util.List;import org.springframework.beans.factory.annotation.Value;import org.springframework.c原创 2017-10-21 15:22:07 · 3701 阅读 · 0 评论 -
SpringCloud服务注册中心比较:Consul vs Zookeeper vs Etcd vs Eureka
原文链接地址:http://luyiisme.github.io/2017/04/22/spring-cloud-service-discovery-products/这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论:FeatureConsulzookeeperetcdeuerka服务健康检查转载 2017-10-21 12:34:10 · 540 阅读 · 0 评论 -
consul的安装和配置
Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。consul提供的一些关键特性:service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。health checking:健康检测使consul可以快转载 2017-10-21 12:31:29 · 1258 阅读 · 0 评论 -
Hystrix请求合并
继承HystrixCollapser实现请求合并1 HystrixCollapser的实现类2 UserService批量查询接口3 UserBatchCommand批量查询命令使用注解方式来实现请求合并1 继承HystrixCollapser实现请求合并1.1 HystrixCollapser的实现类 import com.netfli转载 2017-10-25 18:22:57 · 262 阅读 · 0 评论 -
@EnableZuulServer、@EnableZuulProxy两个注解
@EnableZuulServer、@EnableZuulProxy两个注解@EnableZuulProxy简单理解为@EnableZuulServer的增强版,当Zuul与Eureka、Ribbon等组件配合使用时,我们使用@EnableZuulProxy。 RequestContext:用于在过滤器之间传递上下文,如:请求路由到哪里、错误、HttpServletRequest、转载 2017-10-24 20:41:59 · 20678 阅读 · 1 评论 -
Spring Cloud Security系列教程一:入门
本篇有一定的学习曲线,建议先花一点时间了解一下前置知识:Spring Security:http://docs.spring.io/spring-security/site/docs/4.2.2.RELEASE/reference/htmlsingle/OAuth2(重点),参考文档:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html转载 2017-09-19 16:15:07 · 3782 阅读 · 0 评论 -
spring cloud config 用svn做配置文件仓库
刚接触spring cloud 的 ;做了一个svn做配置文件仓库demo;创建一个spring boot工程作为 spring cloud config server ;下面是pom.xml文件;[html] view plain copyxml version="1.0" encoding="UTF-8"?> project转载 2017-09-26 18:25:58 · 475 阅读 · 0 评论 -
Spring Cloud实战(五)-Spring Cloud Netflix Hystrix
Spring Cloud实战(五)-Spring Cloud Netflix Hystrix概要什么是Spring Cloud Netflix Hystrix?怎么用 Spring Cloud Netflix Hystrix?Hystrix常见配置介绍什么是Spring Cloud Netflix Hystrix?Spring Clo转载 2017-06-30 21:27:14 · 495 阅读 · 0 评论 -
springcloud(第四篇)springcloud hystrix
spring cloud hystrix简介hystrix通过服务隔离、熔断(也可以称为断路)、降级等手段控制依赖服务的延迟与失败。netflix hystrix本篇中主要讲解对spring cloud 对hystrix的集成,至于如何单独使用hystrix可以参考我分享的pdf.spring cloud hystrix引入依赖转载 2017-06-30 21:24:54 · 356 阅读 · 0 评论 -
spring cloud: Hystrix断路器(熔断器)
1.Hystrix客户端Netflix已经创建了一个名为Hystrix的库,实现了断路器的模式。在microservice架构通常有多个层的服务调用。 低水平的服务的服务失败会导致级联故障一直给到用户。当调用一个特定的服务达到一定阈值(默认5秒失败20次),打开断路器。在错误的情况下和一个开启的断路回滚应可以由开发人员提供。 有一个断路器阻止级联失败并且允许关闭服务转载 2017-06-30 21:21:36 · 823 阅读 · 0 评论 -
Spring Cloud探路(三)REST 客户端Feign
Declarative REST Client: FeignFeign is a declarative web service client. It makes writing web service clients easier.如上是Spring Cloud文档中对于Feign的定义,结合之前的两篇博文,在这里我们就可以吧Feign简单的理解为用户(前端)可以直接接触转载 2017-06-30 19:55:26 · 524 阅读 · 0 评论 -
springcloud(第八篇)springcloud feign
# spring cloud feignintroductionnetflix feign是一个类似retrofit进行http调用框架,Feign makes writing Java http clients easier 使得编写http client代码更加简单netflix feign直接给出一段简单的案例package com.lkl.net转载 2017-06-30 19:52:57 · 422 阅读 · 0 评论 -
Spring Cloud中,Feign常见问题总结
Spring Cloud中,Feign常见问题的总结。FeignClient接口,不能使用 @GettingMapping 之类的组合注解代码示例:@FeignClient("microservice-provider-user")publicinterfaceUserFeignClient{@RequestMapping(value ="/simple/{id}", me转载 2017-06-30 19:48:22 · 6853 阅读 · 0 评论 -
SpringCloud(四)Ribbon自定义负载均衡
上篇文章我们已经完成了Ribbon负载均衡的功能。做法很简单,只需要在RestTemplate添加@LoanBalanced 的注解。默认情况下,Ribbon的负载均衡策略是RoundRobbin(轮训)的方式,可很多时候在特定场景下需要不同的策略,这个时候就需要自定义Ribbon策略了。看下面代码:[java] view plain copy转载 2017-06-30 16:53:51 · 935 阅读 · 0 评论 -
Spring Cloud实战(六)-Spring Cloud Netflix Bus
概要什么是Spring Cloud Netflix Bus?怎么用 Spring Cloud Netflix Bus?什么是Spring Cloud Netflix Hystrix?Spring Cloud Netflix Bus是Spring Cloud的消息机制,当Git Repository 改变时,通过POST请求Config Server的转载 2017-06-29 22:32:45 · 370 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线
先回顾一下,在之前的spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新。虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。但是,若所有触发操作均需要我们手工去维护Web Hook中的应用位置的话,这随着系统的不断扩张,会变的越来越难以维护,而消息代理中间件是解决该问题最为合适转载 2017-06-29 22:27:49 · 361 阅读 · 0 评论 -
Spring Cloud 学习笔记——入门、特征、配置
Spring Cloud 学习笔记(一)——入门、特征、配置[TOC]0 放在前面0.1 参考文档http://cloud.spring.io/spring-cloud-static/Brixton.SR7/https://springcloud.cc/http://projects.spring.io/spring-cloud/0.2 mave转载 2017-09-19 16:08:44 · 989 阅读 · 0 评论 -
SpringCloud踩坑实战笔记(入门篇)
前言本周投入了不少的精力着重研究了springCloud相关的基础知识,把网上的相关博文,资料翻了一遍,搭建出了第一个SpringCould的Demo集群,把SrpingCould的入门坑踩了一遍,在这记录一下,希望大家能少走一些弯路。SpringCould介绍Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智转载 2017-09-19 15:20:06 · 1905 阅读 · 0 评论 -
jHipster - 微服务搭建
jHipster 整合了springcloud 框架 也包含了EurekaServer ConfigServer等服务,我们通过一些简单的命令就能部署一套基于微服务的系统Paste_Image.png[TOC]jHipster微服务的几个模块jHipster Registryjhipster registry是一个基于spring cloud的配置中心。所有的微服务APP都需要注册转载 2017-10-24 16:59:02 · 4908 阅读 · 2 评论