微服务
文章平均质量分 50
y&m
这个作者很懒,什么都没留下…
展开
-
SpringBoot Admin升级boot等组件版本后无法监控微服务
spring-cloud-consul在v3.0.0(不包含M1等版本)及之上,meta数据获取不再兼容tags,因此使用该版本的cloud在于admin集成时,若监控服务存在context-path或者自定义的健康检查路径等,由于admin定义meata属性key均包含"."字符,因此大概率均会出现监控异常问题(推测结论,未完整验证所有版本)。到此,该问题排查基本结束,定义为spring-boot-admin与spring-cloud-consul版本兼容性问题。.....................原创 2022-07-29 10:04:11 · 1487 阅读 · 1 评论 -
Consul API接口详解
consul的主要接口是RESTful HTTP API,该API可以用来增删查改nodes、services、checks、configguration。所有的endpoints主要分为以下类别: kv - Key/Value存储 agent - Agent控制 catalog - 管理nodes和services health - 管理健康监测 session - Session操作 acl - ACL创建和管理 event转载 2022-05-12 16:27:41 · 3057 阅读 · 0 评论 -
Gateway网关使用不规范,同事加班泪两行~
Spring cloud gateway是替代zuul的网关产品,基于Spring 5、Spring boot 2.0以上、Reactor, 提供任意的路由匹配和断言、过滤功能。笔者公司之前有系统也使用了Spring cloud gateway做为后台应用访问的网关,采用的版本信息为:组件 版本 其他 spring boot 2.1.7.RELEASE spring cloud Greenwich.SR2 spring cloud gateway转载 2021-07-14 14:05:42 · 298 阅读 · 0 评论 -
一次 Nacos 的踩坑记录!
转载自微信公众号《程序猿DD》问题发现就在这周,我接到 MSE Nacos 用户的反馈,说线上 Nacos 不可用,服务都下线了,日志里面也是一堆报错,我下意识以为线上炸了,赶紧上线排查。本文主要记录这次问题的排查过程,以及解决方案。首先看用户反馈的报错,日志如下:并且用户反馈业务日志也出现了大量的服务地址找不到的报错,说明 Nacos 服务都下线了。我立刻查看了服务端的监控,发现用户的 MSE Nacos 集群并无异常,cpu/内存等指标有下降,并没有异常行为,排除了服务端异常的可转载 2021-06-23 09:55:17 · 741 阅读 · 0 评论 -
Sentinel规则校验(基于Gateway网关)
请求到达gateway网关后,sentinel校验基于SentinelGatewayFilter实现。Sentinel验证流程中params的获取尤为重要。文章简单记录了sentinel限流校验中重要的几个方法,具体不展开讲解了,如需帮助,请私聊。...原创 2021-04-20 11:14:57 · 323 阅读 · 0 评论 -
Sentinel Dashboard限流规则保存
sentinel在限流规则配置方面提供了可视化页面 sentinel dashboard,源码可从github下载,请自行搜索,此处不提供下载链接。规则持久化后首先触发GatewayFlowRuleController(源码似乎没有,请参考普通规则改造)的/new.json(或)请求,方法会调用publishRules()将本次编辑规则组装后通过远程调用请求gateway/updateRules更新远程服务内存中限流规则,该接口由远程服务UpdateGatewayRuleCommandHandler提供。原创 2021-04-20 10:32:51 · 413 阅读 · 1 评论 -
Sentinel匹配的Client IP策略(基于Gateway网关)
Sentinel匹配的Client IP策略GatewayParamParser对象中parseClientIp()private String parseClientIp(GatewayParamFlowItem item, T request) { String clientIp = this.requestItemParser.getRemoteAddress(request); String pattern = item.getPattern();原创 2021-04-20 09:32:55 · 4124 阅读 · 0 评论 -
解决命令行参数-D无法覆盖远程配置中心(nacos)问题
背景:今天运维在搭建k8s环境时反馈无法通过-D命令行参数修改参数配置,经排查,发现该配置位于nacos配置中心中。经验证,凡nacos配置中心配置参数均无法通过-D命令行改写。排查过程:认知中springboot项目优先级-D命令行参数是最高的,但此次验证相当打脸。网上查阅相关文档文档一并调试本地源码发现所有配置均存储在MutablePropertySources的propertySourceList中,配置优先级与对象在list中索引息息相关。经查,EnableConfigurationProp原创 2021-03-18 14:29:07 · 2480 阅读 · 1 评论 -
Druid The last packet successfully received from the server was xxx milliseconds ago
产生的原因:应用方的数据库连接有效期时间,大于数据库自己设置的有效期。解决方案:一、修改druid配置(如果使用druid的话)spring.datasource.druid.validationQuery=select 1spring.datasource.druid.testWhileIdle=truespring.datasource.druid.testOnBorrow=truespring.datasource.druid.testOnReturn=truePS.此方案对性能会有一定转载 2021-01-25 11:01:46 · 5788 阅读 · 0 评论 -
微服务篇之Sentinel限流熔断(二)— URL资源清洗
Sentinel中HTTP服务的限流默认由Sentinel-Web-Servlet包中的CommonFilter来实现,从代码中可以看到,这个Filter会把每个不同的URL都作为不同的资源来处理。在下面这段代码中,提供了一个携带{id}参数的REST风格API,对于每一个不同的{id},URL也都不一样,所以在默认情况下Sentinel会把所有的URL当做资源来进行流控。package com.yuntai.gateway.config;import org.springframework.web原创 2021-01-16 22:59:56 · 1049 阅读 · 2 评论 -
微服务篇之Sentinel限流熔断(一)— Spring MVC 自定义URL限流异常
在默认情况下,URL触发限流后会直接返回。Blocked by Sentinel(flow limiting)在实际应用中,大都采用JSON格式的数据,所以如果希望修改触发限流之后的返回结果形式,则可以通过自定义限流异常来处理,实现UrlBlockHandler并且重写blocked方法:package xxx;import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;import原创 2021-01-16 22:43:59 · 737 阅读 · 0 评论 -
Openfeign header头传递及url重写
源代码1、引入openfeign pom依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>2、添加配置对象package xxx;import com.alibaba.fastjson.JSON;import c原创 2021-01-16 22:16:41 · 1643 阅读 · 0 评论 -
Springboot admin监控不到context-path服务
写在前面:前段时间给同事解决Springboot admin监控异常问题,发现网上关于此类问题多是基于Eureka注册中心,关于consul所述甚少,特写此贴。背景:微服务A是一个springboot服务,该服务接入consul注册中心,并设置了context-path。最近,我们在做基于Springboot admin的微服务告警,在集成admin监控时发现设置了congtext-path的服务无法监控,经排查发现admin监控地址未包含context-path导致。通过排查源码发现Instance原创 2021-01-11 16:09:41 · 640 阅读 · 1 评论 -
nacos修改druid配置自动刷新后服务异常
背景:某天Springboot Admin监控告警,detail显示微服务A offline,经排查发现此时服务处于假死状态,推断由于数据库连接池maxThreads配置过小导致高并发场景下服务无法响应外部请求。解决方案:nacos 公共配置添加druid 连接池配置spring.datasource.druid.timeBetweenEvictionRunsMillis=60000spring.datasource.druid.max-active=100spring.datasource.d原创 2021-01-11 15:43:11 · 1790 阅读 · 0 评论 -
Spring cloud gateway 设置context-path服务路由404排查
一、背景 最近做网关重构,技术选型为spring cloud gateway,采用consul作为配置中心和注册中心,秉承不重启原则,网关内部实现动态路由机制,采用定时任务定时更新网关路由信息。二、服务信息 微服务网关:spring-cloud-gateway 微服务:order-service、user-service三、问题描述 因为网关服务集成了knife4j,因此可以通过访问http://网关ip:port/doc.html,即可访问所有在同一个...原创 2020-06-12 17:33:41 · 8994 阅读 · 6 评论