- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 卷起来,关于利用MongoDB的CommandListener命令行实现Mongo在Cat中埋点监控
为了实现 使用 dianping CAT组件监控标准化埋点,经过长期实践已经完成了对大部分组件埋点的支持,并实现了整个链路的串通,而对MongoDB的支持一直是个难点,曾几何时做了多次尝试,也未能成功,因为从网上根本找不到方法。或许鉴于用CAT的不多,没有人贡献这类的思路,近段时间一直在MongoDB上折腾,从客户端的角度记录MongoDB一直是个缺失。以至于出现问题时没办法快速看到相关采集的数据指标。活不多说,这次终于最终搞定也是源自Opentracing对Mongo做Tracing监
2022-04-26 11:50:29
1996
原创 有关Spring Boot中使用MongoDB的连接池的解惑,无需重写实现
Spring Boot通过 spring-boot-starter-data-mongodb 自动配置连接MongoDB,配置非常少,网上有很多文章说 Spring Boot没有提供连接池配置的功能,需要自行重写 MongoDbFactory,实际这样的确冤枉且小看了 spring-boot-starter-data-mongodb 的内部封装,实际连接MongoDb的组件当中,内置了连接池的方法,只是我们用的姿势不对,并不需要什么重写搞得这么复杂。还是要从其源码入手才知道如何使用,实际官方文档也有一些配置
2022-03-03 17:25:19
6263
6
原创 通过Prometheus利用自定义指标micrometer的MeterRegistry暴露HttpClient连接池中连接数占用状态
通过Prometheus利用自定义指标micrometer的MeterRegistry暴露HttpClient连接池中连接占用状态
2021-12-29 20:49:48
2056
3
原创 关于Spring Cloud Gateway网关出现大量synchronoss-file-upload-1000031191618557455空文件夹的问题
关于Spring Cloud Gateway网关出现大量synchronoss-file-upload-1000031191618557455空文件夹的问题
2021-12-13 20:09:44
3919
2
原创 关于使用Redisson客户端无法获取Redis数据,取值为null的调查记录
事情的起因源于近期测试环境调整,Redis的集群Server从阿里云迁移到机房,机房自建Redis使用的5.0.8版本的docker镜像建立的集群,切换到自建Redis之后,测试环境业务发生问题,获取的Redis数据值为null, 百思不得其解,很神奇,和运维同事探讨,无法定位原因,因为服务本身没有调整过,初步感觉是Redis集群的问题,但就是无法解释。将连接切换阿里云使用没有问题,切回自建Redis问题依旧,因为有的服务使用的是SpringBoot默认的Lettuce客户端,有的服务因为用到了分布式锁,使
2021-07-06 15:13:43
5934
2
原创 @SentinelRestTemplate集成RestTemplate空指针异常
实际这是一篇给出临时性解决方案的博文,因为这个问题有望在Spring Cloud Alibaba2.2.3版本以后解决掉,https://github.com/alibaba/spring-cloud-alibaba/issues/1346,这里也介绍了这个Bug的相关情况。在使用RestTemplate的时候,一般情况下遇到网络故障或服务超时会报出例如:java.net.SocketTimeoutException:Readtimedout,java.net.SocketException:...
2020-12-21 15:46:35
1455
原创 关于使用Spring Cloud Gateway网关网络连接的4个重要的参数配置
整理出这四个重要的参数,说起来很不易,来源于一次网络时候事故后的调查,对于平时使用Spring Cloud Gateway(简称scg)来说这些参数几乎很少会关注到,从网上也很少能看到讲解的文章,表面上是SCG的问题,实则都是和SCG的底层网络通信框架Netty有关系。率先曝光一下这4个参数System.setProperty("reactor.netty.pool.leasingStrategy","lifo");spring.cloud.gateway.httpclient.pool.max.
2020-09-23 10:21:31
27550
1
原创 关于Spring Boot Admin获取Actuator端点监控地址配置及management.health健康指标器的相关分析及注意事项
最近在使用Spring Boot Admin的时候发现(以下简称SBA),使用eureka的注册中心的时候sba可以正常获取到服务的管理地址和健康检测地址,而换了Nacos作为注册中的时候,SBA中的服务管理地址和健康检测地址是错误的。如图一般来说正常的服务访问地址是:http://服务host:${server.port}/${server.servlet.context-path}...
2020-08-25 14:38:43
5151
1
原创 关于SpringBoot2.3.0版本开始Lettuce支持集群拓扑动态感应刷新的新特性说明
说到Redis使用Lettuce作为数据源使用的时候,在之前的文章中已经介绍过,当Redis的服务端出现故障迁移后,Lettuce客户端一直无法感知节点变化导致无法连接Redis服务器的问题,相关内容:https://blog.youkuaiyun.com/ankeway/article/details/100136675,这个兼容方案需要自己来实现。这次Spring Boot 2.3.0开始,官方开启了这个新特性。只要开启 spring.redis.lettuce.cluster.refresh.adapti
2020-08-24 09:07:34
4925
原创 关于SpringBoot中使用ShardingSphere(ShardingJdbc)+Hikari数据库连接池后Prometheus无法获取到hikaricp监控数据的解决方案
/actuator/prometheusSpringBoot2.X版本后使用Hikari作为数据库的默认的连接池。Spring.datasource的默认配置中spring-boot-actuator-autoconfigure包中org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration默认包含了有关于HikariDataSoucre的Metrics监控的绑定逻辑
2020-08-14 14:42:16
8094
4
原创 SpringBoot中使用Mongodb关于未使用从节点全部使用主节点的注意事项及解决方案
在Springboot使用mongodb的过程中,mongodb默认是使用的读操作都是由主节点处理模式,相关阅读:https://blog.youkuaiyun.com/leining_chris/article/details/47312645https://my.oschina.net/u/2366460/blog/871707https://mongodb.github.io/mongo-java-driver/4.1/driver/tutorials/perform-read-operations/
2020-08-04 10:40:11
586
原创 关于Alibaba Sentinel dashboard对数据进行持久化保存到数据源中,热点规则及授权规则和单机模式无法兼容的问题的解决方案
在改造Sentinel sashboard实现和数据源持久化的过程中,遇到了热点规则及授权规则和单机模式无法兼容的问题,就是你改变了集群的热点规则及授权规则后,虽然持久化到数据源中,但是单机模式无法解析规则。使得规则无法打通。究其原因,就是集群V2模式保存的数据,对了一级rule。所以保存和读取的时候就要稍微调整一下。单机的loadConfig解析[{"burstCount":0,"clusterConfig":{"fallbackToLocalWhenFail":true,"sampleCoun
2020-07-10 20:15:34
821
原创 Alibaba Sentinel对接Spring Cloud Gateway关于不显示API管理及请求链路的坑附带解决方案
在调试Sentinel对接Scg网关的时候,出现了一个比较坑的现象,就是网关菜单,不显示请求链路和API管理的菜单项,这个问题主要是由于,Sentinel的dashboard前端sidebar.js的 代码逻辑中, /registry/machine查询返回的数据,返回的appType = 0AppService.getApps().success( function (data) { if (data.code === 0) { ...
2020-07-10 19:51:26
5192
4
原创 关于微信小程序使用Three.js开发AR应用几何图形贴图真机不显示的问题
在使用开发微信小程序AR应用的过程中,遇到了一个问题,在使用开发者工具编译的时候,模拟器可以显示贴图并显示,但是在预览或者真机手机编译显示的时候,贴图中使用的图片却不显示,开始的时候以为是代码的问题,最后定位的原因是和图片相关 // 创建几何体 // const geometry = new THREE.BoxGeometry(50, 50, 50); // 创建新版...
2020-04-28 16:08:44
1950
原创 STS启动Spring Boot服务的时候无法启动,报错,错误: 找不到或无法加载主类的解决办法
在使用STS(Spring Tools Suite)开发Spring Boot应用的时候,一般来说,只要在pom.xml中的指定SpringBoot的启动类,<properties> <start-class>com.XXXX.Application</start-class></properties>然后选中项目,右键Debu...
2020-01-20 16:23:40
3676
6
原创 RedisCluster集群模式下master宕机主从切换期间Lettuce连接Redis无法使用报错Redis command timed out的问题
最新一次线上生产环境下Redis集群服务器某一个主节点发生故障,Cluster节点下的从节点快速进行迁移升级为主节点,节点迁移时间大概为15秒,这15秒期间Redis服务不可用,程序无法读写Redis数据,报错java.lang.RuntimeException: org.springframework.web.util.NestedServletException: Request proces...
2019-08-29 17:41:19
11810
5
原创 Nepxion/Discovery灰度发布组件的使用教程(二)、基于REST请求调用灰度路由策略的使用
策略是通过REST或者RPC调用传递Header或者参数,达到用户自定义和编程灰度路由的目的。使用者可以实现跟业务有关的路由策略,根据业务参数的不同,负载均衡到不同的服务器,其核心代码参考discovery-plugin-strategy以及它的扩展。可以简单的理解,灰度策略是在程序运行期间,动态的通过改变header或者参数来实现调用链路的动态变更,简单的说实现原理,就是从注册中心获取到的干...
2019-06-06 11:09:45
2376
原创 Spring Boot 2.1.4整合JetCache缓存框架实现本地caffeine远程redis存储(二、使用Redis-SpringData)
五一放假过后JetCache进行了最新版本2.6.0.M2 的升级从此版本的Git提交记录看,此版本增加了对 spring-boot-starter-data-redis 的支持,这意味着配置更简单了,上一个版本对Redis的支持是使用Lettuce,直接对接lettuce,如果需要使用RedisTemplate,之前的配置方式需要配置jetCache,同时要配置spring.redi...
2019-05-05 10:18:57
4966
5
原创 Spring Boot 2.1.4整合JetCache缓存框架实现本地caffeine远程redis存储(一、使用Lettuce)
JetCache是一个阿里巴巴开源的基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用,SpringBoot2.1.4截止到当前为止,Maven仓库发布的整合JetCache的版本为2.6.0.M1,JetCache提供了 本地缓存LinkedHashMapCache和CaffeineCache(一个高性能的 Java 缓存库)两种,远程可以支持Tair,Redis,今天我们就来...
2019-04-30 16:35:20
8471
3
原创 Nepxion/Discovery灰度发布组件的使用教程(一)、灰度组件的配置及灰度路由的使用
知道军哥的灰度发布路由组件好长时间了,但是由于项目需要和紧急度一直都没有深入的去了解和使用,最近因为新项目上线,涉及到一些灰度发布灰度路由的需求,因此决定开始研究一下。军哥(任浩军)实际不但开发了灰度发布组件,还开发出来很多其他的实用组件,在这打个广告,算是表达了对军哥架构思路的佩服之情。Discovery从Spring Cloud 很早版本的时候就开始支持了,后来到了Spring Clo...
2019-04-18 15:39:34
6554
2
原创 Spring Cloud Alibaba Nacos 配置中心使用ext-config,DataID, Group时无法获取到对应Group的配置的注意事项
在使用Spring Cloud配合Nacos Config作为配置中心来使用的时候,Nacos支持对多个环境的配置管理,通常通过命名空间来实现,比如测试环境,预发布环境。而如果使用同一个配置中心有多个项目组或者团队或者不同的模块管理的时候,通常使用Group来区分,Nacos Config相关的配置详情,在官方文档中都有过介绍,通过阅读可以了解,https://github.com/spring-...
2019-03-01 15:19:43
25077
2
原创 SpringBoot2.0默认使用Redis连接池的配置注意事项
SpringBoot2.0默认采用Lettuce客户端来连接Redis服务端的默认是不使用连接池的,只有配置 redis.lettuce.pool下的属性的时候才可以使用到redis连接池 redis: cluster: nodes: ${redis.host.cluster} password: ${redis.password} lettuce:...
2019-01-18 18:11:52
75390
18
原创 Feign调用报错The bean 'XXX.FeignClientSpecification', defined in null, could not be registered....的解决办法
升级Spring Boot 2.1.0 Spring Cloud Greenwich.M1 版本后,在2个Feign接口类内定义相同的名字, @FeignClient(name = 相同的名字 就会出现报错,在之前的版本不会提示报错,报错内容为The bean 'XXX.FeignClientSpecification', defined in null, could not be regis...
2018-11-09 09:40:42
39647
22
原创 构建基于SpringCloudStream的消息驱动微服务,用于处理第三方开发者接受微信大量推送消息的解决方案
事情的起因源于在使用微信公众号服务的时候,作为一个第三方的服务商,腾讯会将各种业务消息推送到第三方开发者的服务器上,而之前的方案是消息直接进到服务上,当使用到一些业务,比如发券等操作时,腾讯服务器会向开发者发送大量的消息,由于消息服务的处理能力有限,尤其是高峰的时候,消息请求会直接压到服务上,导致服务线程繁忙,这时候会报大量服务超时,触发微信的服务报警,服务不可用,或者服务超时,这时公众号内的消息...
2018-07-19 11:57:20
3821
2
原创 Spring Cloud Config 自定义外部配置遇到的健康指示器遇到的问题
Spring Cloud Config配置中心可以使用本地,git,svn以及数据库方式实现配置存储等等,也可以通过自己自定义其他外部配置来获取配置数据,比如通过连接mogodb, 或者链接zookeeper, 来实现配置数据的获取,只要定义类去实现EnvironmentRepository接口即可。public class CustomEnvironmentRepository implemen...
2018-04-13 15:58:33
1044
原创 Spring Cloud Eureka 集群使用DNS方式进行服务分区
Eureka注册中心的配置方式有几种网上常见的配置方式分为一、使用defaultZone,这种没有分区的概念,就一个区,所有的服务都会使用defaultZone配置的serverUrl进行服务注册发现。网上有很多文章这里不再赘述二、集群的配置方式有两种一种是配置文件的方式,一种是DNS的方式这里面还要提到一个分区的概念 Region和Zone,这里 芋道源码 http://www.ioco...
2018-03-29 17:14:59
3648
原创 关于用户访问请求慢,TTFB时间长的问题分析
http://fex.baidu.com/blog/2015/01/chrome-stalled-problem-resolving-process/
2017-11-29 19:44:01
72506
11
原创 Spring Session Data Redis 配置中遇到的坑
说道Session共享,从网上搜索,有几种实现方式,比较普遍的 Tomcat Session Redis,这种是需要在tomcat容器里增加几个jar包,并修改Tomcat里的content.xml增加一条语句,实现session共享,此方法依赖于 tomcat.还有一种是 Spring-Session-Data-Redis,此方法对servlet容器都有效,不局限于tomcat,也是比较
2017-06-09 15:38:03
31453
1
原创 使用zinin的RedisSession共享时报java.lang.ClassCastException转换错误的最终解决方案
最近打算给项目做一下Session共享,使用Redis来实现Session的共享,一种是自己开发代码实现,另外就是利用现成的一些封装好的组件,这种相对比较方便,常见的比如Tomcat-Redis-Session-Manager,还有Tomcat-Redis-Session,我选了后者也就是Tomcat-Redis-Session,GitHub中的地址是 https://github.com/zi
2016-10-18 11:14:43
1615
原创 faxinxi.la的实现原理分析
网上说微信中有个神奇代码faxinxi.la能够分享页面功能看,看了确实好奇,其实网上也说这就是一个网址。它通过微信的useragetn后台分析micromessage来限制之能在微信的内置浏览器中使用。通过模拟微信模拟器,查看他的代码,搞清了他的基本实现原理。他的分享也是利用了微信里的WeixinJsBridge来实现的。当你选择某个功能,如贺卡,里的发送按钮时他执行如下代码 _card._...
2013-09-04 23:14:00
409
原创 RSA加密界面大量操纵,报错的问题
public String encrypt(String publicKeystore, String plainText) { try { FileReader fr = new FileReader(publicKeystore); BufferedReader br = new BufferedReader(fr); String publicKeyStrin...
2013-09-04 10:02:02
242
原创 JQuery Mobile 页面切换
$(document).bind("swiperight",function(){ $.mobile.changePage("#qrcode", {transition: "slide", reverse:true}, false); });
2013-09-04 09:57:59
151
Data must not be longer than 117 bytes异常 RSA加密解密内容超长报错
在使用 RSA加密解密内容时会出现这样的异常 :Data must not be longer than 117 bytes。解决办法是:分段加密和分段解密[code="java"]// 加密时超过117字节就报错。为此采用分段加密的办法来加密 byte[] enBytes = null;for (int i = 0; i < data.length; i += 64)...
2013-07-30 08:33:10
4538
jaeger-1.17.1-windows-amd64.tar.gz
2020-04-15
PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南02
2017-11-13
PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南01
2017-11-13
ADT 21.0.0 安卓Android Plugin For Eclipse
2012-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人