上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
摘要: 1、依赖传递的概念 pom.xml 中引入的依赖,在构建或运行时所有必要的类和资源都会自动添加到项目的 classpath 中。 Maven 中的依赖是有传递(Transitive)性的,默认会包含传递的依赖,这样就不用手动引用每一个依赖了。比如下面这个依赖关系中,A 依赖 B,B 依赖了 C……, 阅读全文
posted @ 2021-08-13 21:33 jingyi_up 阅读(828) 评论(0) 推荐(0) 编辑
摘要: 虽然一直在使用kafka,但是还没有系统的整理过kafka的原理,学习每个框架都要掌握其应用、原理和设计理念,这样才能举一反三,学为所用。今天就整理一些kafka相关的知识,一是为了加强记忆,二是通过整理再次回顾一下作者的设计思想。 kafka的定位:消息中间件、分布式实时流处理平台:(1)结合ha 阅读全文
posted @ 2021-07-25 15:33 jingyi_up 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 目前分库分表除了应用层基于业务逻辑的方式,在技术层面主要两种方式:一种是中间件代理,例如mycat和sharding-proxy,对于应用是比较透明的,支持的语言也多;第二种是侵入式,也就是数据库直连,例如sharding-jdbc。sharding-proxy和sharding-jdbc已经整合到 阅读全文
posted @ 2021-04-02 21:18 jingyi_up 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 一个安静的晚上突然被群里报警打断,然后果断不情愿的爬起来找问题,通过监控发现一个服务的QPS暴增,接口响应延迟也上来了,达到s级别了,所以赶紧找问题。 因为应用很依赖redis,第一时间先看是不是它,果然还真是它,看下图: 确定了问题的方向就该找具体原因了,进一步查看Zabbix发现其中一台redi 阅读全文
posted @ 2021-03-29 21:07 jingyi_up 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 最近一个服务上线一个月后出现某个时间段响应延迟的问题,先看下监控数据: 这里有一点,单台实例的并发最高达到200是因为没修改spring boot中tomcat默认的最大线程数(默认是200)。 从上图可以看出21点—24点以及第二天08点—11点服务的延迟已经达到s级别,甚至严重时已经达到30多s 阅读全文
posted @ 2021-02-24 20:37 jingyi_up 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 对于RPC的性能收集,以微博的motan和阿里的dubbo为例,也是通过intercept去做的。 motan的性能指标收集:使用的是motan中的扩展机制 //此处的spi使用的是weibo.com中的扩展 @SpiMeta(name = "pepperProfiler") @Activation 阅读全文
posted @ 2021-02-09 11:33 jingyi_up 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 所有的性能收集其实都是基于aop的,对于jedisCluster性能(jedis的一样)的收集,因为其并没有提供类似于mybatis的intercept机制,所以只能手动实现可供收集性能数据的切面。 说到切面,第一个就会想到代理,接下来就通过cglib实现对jedisCluster的代理。 动态代理 阅读全文
posted @ 2021-02-08 18:23 jingyi_up 阅读(281) 评论(0) 推荐(0) 编辑
摘要: mybatis的性能指标统计与Http类似,也是基于aop的方式,利用mybatis提供的intercept机制。直接看下Interceptor的定义: @Intercepts( value = { @Signature (type=Executor.class, method="update", 阅读全文
posted @ 2021-02-08 15:05 jingyi_up 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 这一篇主要是介绍一种使用Prometheus收集服务健康状态指标的案例,以常用的Druid数据源为例。 先看几个公共类的定义: HealthStats:其中定义了MeterRegistry和namespace(用来区分不同的统计对象) public class HealthStats { priva 阅读全文
posted @ 2021-02-08 14:25 jingyi_up 阅读(1527) 评论(0) 推荐(0) 编辑
摘要: 1、ImportBeanDefinitionRegistrar接口 该接口用来实现动态注入Bean,可以实现该接口,但是还要利用@Import进行导入才能实现Bean的注入。使用示例如下: 定义一个注解: @Retention(RetentionPolicy.RUNTIME) @Target(Ele 阅读全文
posted @ 2021-02-08 11:04 jingyi_up 阅读(90) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页