服务网关zuul之六:Zuul高可用
摘要:我们实际使用Zuul的方式如上图,不同的客户端使用不同的负载将请求分发到后端的Zuul,Zuul在通过Eureka调用后端服务,最后对外输出。因此为了保证Zuul的高可用性,前端可以同时启动多个Zuul实例进行负载,在Zuul的前端使用Nginx或者F5进行负载转发以达到高可用性。
阅读全文
posted @
2018-09-27 20:44
duanxz
阅读(2216)
推荐(0) 编辑
服务网关zuul之五:熔断
摘要:路由熔断 当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行一降级。Zuul给我们提供了这样的支持。当某个服务出现异常时,直接返回我们预设的信息。 如果没有配置fallback,zuul调用时超时了, 我们通过自定义的fallback方法,并且将其指定给某个route
阅读全文
posted @
2018-09-27 20:43
duanxz
阅读(8541)
推荐(0) 编辑
spring笔记-@Primary注解
摘要:1.问题 当一个接口有2个不同实现时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息 2.方案1-@Qualifier 使用Qualifier注解,选择一个对象的名称,通常比
阅读全文
posted @
2018-09-26 17:17
duanxz
阅读(3771)
推荐(0) 编辑
spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析
摘要:spring boot升级到2.0.0以后,项目突然报出 NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init> 异常,跟踪源代码无果的情况下。突然想到有可能是spring boot 和
阅读全文
posted @
2018-09-25 18:31
duanxz
阅读(1199)
推荐(0) 编辑
使用 Spring Cloud 和 Docker 构建微服务架构
摘要:如何使用Spring Boot、Spring Cloud、Docker和Netflix的一些开源工具来构建一个微服务架构。 本文通过使用Spring Boot、Spring Cloud和Docker构建的概念型应用示例,提供了了解常见的微服务架构模式的起点。 该代码可以在Github上获得,并且在D
阅读全文
posted @
2018-09-22 10:23
duanxz
阅读(1631)
推荐(0) 编辑
服务容错保护断路器Hystrix之八:Hystrix资源隔离策略
摘要:在一个基于微服务的应用程序中,您通常需要调用多个微服务完成一个特定任务。不使用舱壁模式,这些调用默认是使用相同的线程来执行调用的,这些线程Java容器为处理所有请求预留的。在高服务器请求的情况下,一个性能较低的服务会“霸占”java容器中绝大多数线程,而其它性能正常的服务的请求则需要等待线程资源的释
阅读全文
posted @
2018-09-20 16:07
duanxz
阅读(9828)
推荐(2) 编辑
服务容错保护断路器Hystrix之七:做到自动降级
摘要:从《高可用服务设计之二:Rate limiting 限流与降级》中的“自动降级”中,我们这边将系统遇到“危险”时采取的整套应急方案和措施统一称为降级或服务降级。想要帮助服务做到自动降级,需要先做到如下几个步骤: 我们来逐步看下Hystrix是如何做到以上几点的, ### 可配置的降级策略 ### H
阅读全文
posted @
2018-09-20 11:03
duanxz
阅读(833)
推荐(0) 编辑
nginx+upsync+consul 构建动态nginx配置系统
摘要:参考: http://www.php230.com/weixin1456193048.html 【upsync模块说明、性能评测】 https://www.jianshu.com/p/76352efc5657 https://www.jianshu.com/p/c3fe55e6a5f2 根源问题 n
阅读全文
posted @
2018-09-19 11:37
duanxz
阅读(2107)
推荐(0) 编辑
服务容错保护断路器Hystrix之六:缓存功能的使用
摘要:高并发环境下如果能处理好缓存就可以有效的减小服务器的压力,Java中有许多非常好用的缓存工具,比如Redis、EHCache等,当然在Spring Cloud的Hystrix中也提供了请求缓存的功能,我们可以通过一个注解或者一个方法来开启缓存,进而减轻高并发环境下系统的压力。 请求缓存的整个生命周期
阅读全文
posted @
2018-09-18 11:39
duanxz
阅读(928)
推荐(0) 编辑
consul之:常用API接口
摘要:《consul之:常用API接口》 《springCloud+consul优雅停机》 《Consul之:服务健康监测》 官网:https://www.consul.io/api-docs /v1/agent/checks : 返回本地agent注册的所有检查(包括配置文件和HTTP接口) /v1/a
阅读全文
posted @
2018-09-17 18:01
duanxz
阅读(7580)
推荐(1) 编辑
Consul之:服务健康监测
摘要:《Springboot Actuator之二:actuator在监控和管理指标的特性》 《服务注册发现consul之二:在Spring Cloud中使用Consul实现服务的注册和发现》 《Consul之:服务健康监测》 《consul之:常用API接口》 《springCloud+consul优雅
阅读全文
posted @
2018-09-17 16:27
duanxz
阅读(32399)
推荐(0) 编辑
Consul实践指导-DNS接口
摘要:DNS是consul提供的主要查询接口之一。DNS接口允许应用程序在没有与consul高度集成的情况下使用服务发现。 例如:替代consul的HTTP API请求,主机能够通过名字查找直接使用DNS服务器,类似"redis.service.east-aws.consul",此查询自动转换为查找位于数
阅读全文
posted @
2018-09-17 14:57
duanxz
阅读(2194)
推荐(0) 编辑
Consul之:服务注册与发现
摘要:一、服务的管理(注册与发现)有三种方式: 1:通过配置文件的方式静态注册2:通过HTTP API接口来动态注册(spring cloud使用方式,spring cloud中使用的是consul api)3:使用consul client或consul api(程序)实现服务的注册和发现(Java非s
阅读全文
posted @
2018-09-17 14:28
duanxz
阅读(10599)
推荐(1) 编辑
Consul之:key/value存储
摘要:key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 除了提供服务发现和综合健康检查,Consul还提供了一个易于使用的键/值存储。这可以用来保存动态配置,协助服务协调,建立领导人选举,并启用其他开发人员可以想构建的任何其他内容。 有两种方法可以使
阅读全文
posted @
2018-09-17 10:26
duanxz
阅读(20158)
推荐(4) 编辑
服务容错保护断路器Hystrix之六:服务熔断和服务降级
摘要:伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前(管你接受不接受),其实大多数概念以前就有,但很少被提的这么频繁(现在好像不提及都不好意思交流了)。想起有人总结的一句话,微服务架构的特点就是:“一解释就懂,一问就不知,一讨论就吵架”。 其实对老外的总结能力一直特别崇拜,Kevin Kel
阅读全文
posted @
2018-09-13 16:41
duanxz
阅读(3351)
推荐(0) 编辑
延时队列:Java中的DelayQueue
摘要:Java中的DelayQueue位于java.util.concurrent包下,本质是由PriorityQueue和BlockingQueue实现的阻塞优先级队列。 放入队列的元素需要实现java.util.concurrent包的Delayed接口: 通过实现这个接口,来完成对队列中元素,按照时
阅读全文
posted @
2018-09-04 17:20
duanxz
阅读(2767)
推荐(0) 编辑
分布式延迟消息队列实现分析与设计
摘要:介绍 延迟队列,顾名思义它是一种带有延迟功能的消息队列。 那么,是在什么场景下我才需要这样的队列呢? 很多时候我们会有延时处理一个任务的需求,比如说: 2个小时后给用户发送短信。15分钟后关闭网络连接。2分钟后再次尝试回调。 下面我们来分别探讨一下几种实现方案: 1、Java中的DelayQueue
阅读全文
posted @
2018-09-04 17:13
duanxz
阅读(6397)
推荐(0) 编辑
基于redis的延迟消息队列设计
摘要:需求背景 用户下订单成功之后隔20分钟给用户发送上门服务通知短信 订单完成一个小时之后通知用户对上门服务进行评价 业务执行失败之后隔10分钟重试一次 类似的场景比较多 简单的处理方式就是使用定时任务 假如数据比较多的时候 有的数据可能延迟比较严重,而且越来越多的定时业务导致任务调度很繁琐不好管理。
阅读全文
posted @
2018-09-04 16:30
duanxz
阅读(2840)
推荐(0) 编辑