![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MicroService
文章平均质量分 65
忆之独秀
Engineer
展开
-
【Testing】基于Mockito的FeignClient单元测试
在微服务框架模式下,往往需要在外部服务没有准备好的情况下进行测试。本文主要是讨论在SpringCloud体系下,以FeignClient进行通信时,对其进行mock的方式。原创 2022-07-31 17:28:54 · 1939 阅读 · 0 评论 -
微服务TraceId设计(SpringCloud OpenFeign)
微服务框架下traceId的生成和传递以及多线程环境下的一致性保证。原创 2022-07-31 16:50:44 · 2987 阅读 · 0 评论 -
【Kubernetes】基于K8S & SpringCloud OpenFeign的一种微服务构建模式
在构建微服务之前,需要进行微服务框架选型,之前的微服务完全基于springcloud构建,而现在则需要基于云原生的方式来构建。原创 2022-07-31 15:54:18 · 1929 阅读 · 2 评论 -
如何进行架构技术选型
一、什么是技术选型为了达到业务需求,从各种技术选择中选取最优的过程。开发语言:Java,Python,C++中间件:Mysql/PGSQL,Redis/Memcache微服务框架:SpringCloud,Dubbo,K8S二、怎么做技术选型2.1)需求分析技术选型应该以业务需求为基础,尽可能稳定,高效的支持业务发展。2.1.1)需求满足:尽力理解需求,以及未来需求可能的变化,即发展的方向。2.1.2)指标要求:理解需求的关键因素,性能、稳定性、存储周期、存储量等。原创 2022-05-03 20:33:03 · 1232 阅读 · 0 评论 -
【Dubbo】dubbo线程池被打爆事故及分析
记一次线上故障,dubbo线程池被打爆导致服务不可用,基于此再学习一下线程模型和优化。一、翻车现场 某个周末,收到报警异常报警,翻看日志如下:[2020-10-xx xx:xx:xx] api name = xxx, method = xxx, param = xxx,org.apache.dubbo.rpc.RpcException: fail to invode the method...Caused by: java.util.concurrent.Exe...原创 2021-01-10 12:34:33 · 1241 阅读 · 0 评论 -
【Spring Cloud Feign】超时重试总结
最近在生产环境中出现配置了ribbon的重试参数,但是没有生效,表现就是下游服务上线的过程中,上游服务总是拿到超时降级的错误码,配置如下:hystrix: threadpool: group: coreSize: 20 maximumSize: 100 allowMaximumSizeToDivergeFromCoreSize: ...原创 2020-05-02 22:03:36 · 2547 阅读 · 0 评论 -
【Spring Cloud Hystrix】【三】:资源隔离
Hystrix使用“舱壁模式”实现线程池的隔离,它会将每一个依赖服务创建一个独立的线程池,这样就算某个服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响。 如HBASE Client超时机制优化一文的场景中提到:生产服务遇到过一个故障,大体来说就是hbase集群故障,在没有设置hbase客户端超时的情况下,导致大量线程阻塞,从而影响了tomcat对其他服务请求...原创 2020-01-07 23:19:42 · 602 阅读 · 0 评论 -
【Spring Cloud Hystrix】【二】:属性详解
在上一篇服务容错快速入门中定义了hystrix的配置参数,如下:hystrix: threadpool: testGroup: coreSize: 20 maximumSize: 100 allowMaximumSizeToDivergeFromCoreSize: true maxQueueSize: 200 ...原创 2020-01-07 22:24:32 · 495 阅读 · 0 评论 -
【Spring Cloud Hystrix】【一】:服务容错快速入门
一、Why服务容错 在微服务架构中,需要将系统拆分成多个服务单元,各单元的应用间通过服务注册与订阅的方式相互依赖。由于服务之间通过远程过程调用RPC的方式执行,就有可能因为网络原因或者依赖服务自身问题造成调用失败或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应延迟造成任务积压,最终导致自身服务的瘫痪。 ...原创 2020-01-05 16:06:23 · 197 阅读 · 0 评论 -
【Spring Cloud Eureka】【二】:Eureka进阶
一、基础架构图 registry:注册;renew:续约;cancel:下线。二、服务提供者Provider2.1 服务注册 Provider在启动的时候会通过发送REST请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。Eureka Server接收到请求之后,将元数据信息存储在一个Map<K1, ...原创 2019-07-07 11:39:51 · 261 阅读 · 0 评论 -
【Spring Cloud Eureka】【一】:服务治理简介
Spring Cloud Eureka是Spring CLoud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。一、服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。1.1 为什么需要服务治理模块? 在最初构建系统...原创 2019-07-07 01:20:33 · 269 阅读 · 0 评论 -
【微服务稳定性之限流降级】【三】Sentinel简介和示例
Sentinel是面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。一、主要概念资源:它可以是Java应用程序中的任何内容,例如,由应用程序提供的服务,或者由应用程序调用的其他应用提供的服务,甚至可以是一段代码。只要通过Sentinel API定义的代码,就是资源,能够被Sentinel保护起来。...原创 2019-07-13 20:42:21 · 662 阅读 · 0 评论 -
【微服务稳定性之限流降级】【二】RateLimiter实战
RateLimiter是guava中concurrent包下的一个限流工具类,使用了令牌桶算法。下面简单的介绍一下。一、RateLimiter API 修饰符 方法 描述 double acquire() 从RateLimiter获取一个许可,该方法会被阻塞知道...原创 2019-07-13 14:28:27 · 1108 阅读 · 0 评论 -
【微服务稳定性之限流降级】【一】限流概念和算法
微服务稳定性稳定性三大杀器,缓存,队列,限流降级。这一部分讲一下限流降级。每个系统都有自己的最大服务能力,即在达到某个临界点之前,系统都可以正常提供服务。为了保证系统在面临瞬间的流量时仍然可以对外提供服务,我们就需要使用限流技术。下面就讲一讲笔者认为的降级和熔断的概念。限流:1)服务的入口的限流,在流量激增的情况下对流量进行控制;2)当然还有一个情况就是,服务A在调用B,下游服务...原创 2019-07-13 12:10:37 · 931 阅读 · 0 评论