
spring cloud
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
使用Zuul构建API Gateway
一 微服务网关背景及简介不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服务等。如果客户端直接和微服务进行通信,会存在一下问题:# 客户端会多次请求不同微服务,增加客户端的复杂性# 存在跨域请求,在一定场景下处理相对复杂# 认证复杂,每一个服务都需要独立认证# 难以重构,随着...转载 2018-07-07 17:23:56 · 438 阅读 · 0 评论 -
spring-cloud-sleuth+zipkin追踪服务实现(三)
1.前言在上一篇spring-cloud-sleuth+zipkin追踪服务实现(二)中我们讲述了利用mq的方式发送数据,存储在mysql,实际生产过程中调用数据量非常的大,mysql存储并不是很好的选择,这时我们可以采用elasticsearch进行存储。我们还是使用之前上一节中的三个程序做修改,方便大家看到对比不同点。这里每个项目名都加了一个es,用来表示区别。2.使用前提这里选用elasti...转载 2018-07-07 17:13:14 · 230 阅读 · 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 · 263 阅读 · 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 · 402 阅读 · 0 评论 -
微服务之间的调用(Ribbon与Feign)
概述在前面的文章中,我们讲了使用Eureka作为服务注册中心,在服务启动后,各个微服务会将自己注册到Eureka server。那么服务之间是如何调用?又是如何进行负载均衡的呢?本文讲讲服务之间调用及负载均衡Ribbon。目前,在Spring cloud 中服务之间通过restful方式调用有两种方式 - restTemplate+Ribbon - feign从实践上看,采用feign的方式更优雅...转载 2018-07-07 14:46:37 · 2081 阅读 · 1 评论 -
分布式配置中心(spring cloud config)
在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置...转载 2018-07-07 14:25:32 · 332 阅读 · 0 评论 -
Kubernetes和Spring Cloud哪个部署微服务更好?
Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的。在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA),它们擅长哪个领域,并且如何两全其美的使用从而在微服务之旅上获得成功。背景最近我读了 A. Lukyanchikov的一篇非常棒的文章(https://dzone.com/artic转载 2017-11-09 20:40:09 · 362 阅读 · 0 评论 -
yaml语法三大规则
规则一:缩进 yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。一定不能使用tab键规则二:冒号 yaml: mykey: my_value 每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)规则三:短横线 想要表示列表项,使用一个短横杠加一个空格。多个项使用同转载 2017-10-28 17:47:33 · 1505 阅读 · 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 · 479 阅读 · 1 评论 -
hystrix 请求合并
hystrix支持N个请求自动合并为一个请求,这个功能在有网络交互的场景下尤其有用,比如每个请求都要网络访问远程资源,如果把请求合并为一个,将使多次网络交互变成一次,极大节省开销。重要一点,两个请求能自动合并的前提是两者足够“近”,即两者启动执行的间隔时长要足够小,默认为10ms,即超过10ms将不自动合并。请求合并使多个请求可以批量化成单个HystrixCommand实例执行。合并器转载 2017-10-25 18:27:13 · 442 阅读 · 1 评论 -
Hystrix请求合并
继承HystrixCollapser实现请求合并1 HystrixCollapser的实现类2 UserService批量查询接口3 UserBatchCommand批量查询命令使用注解方式来实现请求合并1 继承HystrixCollapser实现请求合并1.1 HystrixCollapser的实现类 import com.netfli转载 2017-10-25 18:22:57 · 266 阅读 · 0 评论 -
@EnableZuulServer、@EnableZuulProxy两个注解
@EnableZuulServer、@EnableZuulProxy两个注解@EnableZuulProxy简单理解为@EnableZuulServer的增强版,当Zuul与Eureka、Ribbon等组件配合使用时,我们使用@EnableZuulProxy。 RequestContext:用于在过滤器之间传递上下文,如:请求路由到哪里、错误、HttpServletRequest、转载 2017-10-24 20:41:59 · 20686 阅读 · 1 评论 -
jHipster - 微服务搭建
jHipster 整合了springcloud 框架 也包含了EurekaServer ConfigServer等服务,我们通过一些简单的命令就能部署一套基于微服务的系统Paste_Image.png[TOC]jHipster微服务的几个模块jHipster Registryjhipster registry是一个基于spring cloud的配置中心。所有的微服务APP都需要注册转载 2017-10-24 16:59:02 · 4911 阅读 · 2 评论 -
Spring Boot中application.yml与bootstrap.yml的区别
说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序。且一个项目上要么yml或者properties,二选一的存在。Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应转载 2017-10-24 14:41:03 · 554 阅读 · 0 评论 -
微服务架构:Eureka参数配置项详解
Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考。 Eureka客户端配置 1、RegistryFetchIntervalSeconds 从eureka服务器注册表中获取注册信息的时间间隔(s),默认为30转载 2017-10-24 14:23:41 · 632 阅读 · 0 评论 -
SpringBoot配置属性之其他
SpringBoot配置属性系列SpringBoot配置属性之MVCSpringBoot配置属性之ServerSpringBoot配置属性之DataSourceSpringBoot配置属性之NOSQLSpringBoot配置属性之MQSpringBoot配置属性之SecuritySpringBoot配置属性之Migration转载 2017-10-24 14:16:09 · 533 阅读 · 0 评论 -
使用 Spring Cloud Stream 构建消息驱动微服务
微服务的目的: 松耦合事件驱动的优势:高度解耦Spring Cloud Stream 的几个概念Spring Cloud Stream is a framework for building message-driven microservice applications. 官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。Spring Cloud S转载 2017-10-22 20:12:24 · 319 阅读 · 0 评论 -
用Spring cloud Stream来开发基于MQ消息驱动的微服务
用Spring cloud Stream来开发基于MQ消息驱动的微服务Spring boot对MQ类如RabbitMQ、kafka支持都很好,但是仍然要写一些模板代码。Spring cloud stream进一步掩盖了这个差异,仅仅使用配置就可以完成。 Spring cloud Stream 用了基于topic-subsriber的模式,虽然不支持全部MQ的特性,但绝大多数应用转载 2017-10-22 20:09:50 · 1152 阅读 · 0 评论 -
spring cloud task Demo搭建
起步:什么是 spring cloud taskSpring Cloud Task makes it easy to create short lived microservices. We provide capabilities that allow short lived JVM processes to be executed on demand in a production e转载 2017-10-22 20:03:41 · 1937 阅读 · 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 · 434 阅读 · 0 评论 -
zuul动态配置路由规则,从DB读取
前面已经讲过zuul在application.yml里配置路由规则,将用户请求分发至不同微服务的例子。zuul作为一个网关,是用户请求的入口,担当鉴权、转发的重任,理应保持高可用性和具备动态配置的能力。我画了一个实际中可能使用的配置框架,如图。当用户发起请求后,首先通过并发能力强、能承担更多用户请求的负载均衡器进行第一步的负载均衡,将大量的请求分发至多个网关服务转载 2017-10-21 15:39:08 · 7018 阅读 · 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 · 3710 阅读 · 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 · 543 阅读 · 0 评论 -
consul的安装和配置
Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。consul提供的一些关键特性:service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。health checking:健康检测使consul可以快转载 2017-10-21 12:31:29 · 1261 阅读 · 0 评论 -
使用Spring Cloud Consul实现服务的注册和发现
首先安装consul环境,参照之前的文章:http://blog.csdn.net/mn960mn/article/details/51753893项目规划,2个服务端,1个客户端首先来看服务端,一:服务端1:项目依赖[java] view plain copy转载 2017-10-21 12:28:35 · 1004 阅读 · 0 评论 -
Netflix开源类库archaius(一)概述
[+]archaius是什么,能做什么?archaius是Netflix公司开源项目之一,基于java的配置管理类库,主要用于多配置存储的动态获取。主要功能是对apache common configuration类库的扩展。在云平台开发中可以将其用作分布式配置管理依赖构件。同时,它有如下一些特性:动态类型化属性高效和线程安全的配置操作配置改变时的回调机制j转载 2017-10-21 12:20:53 · 492 阅读 · 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 · 809 阅读 · 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 · 356 阅读 · 0 评论 -
解决加了@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 评论 -
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 · 1529 阅读 · 1 评论 -
spring cloud-添加Hystrix Dashboard监控到系统中
前言该示例是在spring cloud-使用Hystrix实现单个方法的fallback示例的基础上改进一、添加依赖[html] view plain copydependency> groupId>org.springframework.cloudgroupId>转载 2017-10-20 18:40:06 · 265 阅读 · 0 评论 -
SPRINGCLOUD-熔断监控HYSTRIX DASHBOARD和TURBINE
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够. 我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上,转载 2017-10-20 17:24:05 · 264 阅读 · 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 · 221 阅读 · 0 评论 -
Spring Cloud Sleuth进阶实战
转载请标明出处: http://blog.csdn.net/forezp/article/details/76795269 本文出自方志朋的博客为什么需要Spring Cloud Sleuth微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能转载 2017-10-15 19:08:54 · 247 阅读 · 0 评论 -
spring cloud-zuul的Filter详解
在前面我们使用zuul搭建了网关http://blog.csdn.net/liuchuanhong1/article/details/59056278关于网关的作用,这里就不再次赘述了,我们今天的重点是zuul的Filter。通过Filter,我们可以实现安全控制,比如,只有请求参数中有用户名和密码的客户端才能访问服务端的资源。那么如何来实现Filter了?要想实现Filter转载 2017-10-15 18:10:37 · 287 阅读 · 0 评论 -
Spring Cloud实战小贴士:Zuul处理Cookie和重定向
Spring Cloud实战小贴士:Zuul处理Cookie和重定向原创 2017-05-02 翟永超 程序猿DD的技术分享由于我们在之前所有的入门教程中,对于HTTP请求都采用了简单的接口实现。而实际使用过程中,我们的HTTP请求要复杂的多,比如当我们将Spring Cloud Zuul作为API网关接入网站类应用时,往往都会碰到下面这两个非常常见的问题:转载 2017-10-15 18:05:46 · 291 阅读 · 0 评论 -
spring cloud学习(六) 配置中心-自动更新
上一篇学习了spring cloud config的基本使用,但发现有个问题,就是每次更改配置后,都需要重启服务才能更新配置,这样肯定是不行的。在上网查资料了解后,spring cloud支持通过AMQP来实现配置的实时更新。一、安装rabbitmq1.1如果要使用spring cloud的amqp,需要安装rabbitmq。我们可以通过官网 https://www.rabbi转载 2017-10-15 16:01:22 · 1632 阅读 · 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 · 477 阅读 · 0 评论 -
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 · 3792 阅读 · 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 · 996 阅读 · 0 评论