12 2021 档案
摘要:1、线上JVM性能调优,包括两种内存泄露情况排查已经JVM参数调优 两种内存泄漏:数据库大数据查询,监控对象(监控超时事件)一直被引用。
阅读全文
摘要:1、100G内存下,MySQL查询200G大表会OOM么? MySQL的server层不会将所有结果集都查出来放入内存中,而是查出一部分放入net_buffer中(默认大小16k),net_buffer写满就会调用网络接口发送给到本地网络栈(socket send buffer),写完就会情况net
阅读全文
摘要:注:这是我们线上遇到的问题,这里讲同事的总结直接粘过来仅做一个记录。 0 问题的产生 由于线上Redis集群内存使用量已经接近达到预警阈值,需要对Redis集群扩容。(使用的是Redis自带的Redis-Cluster) 目前有6台主节点,6台从节点。 暂时称为: redis-master001 ~
阅读全文
摘要:1、服务调用方式 调用motan服务,可以在setter方法或field标注 @MotanReferer 注解引入要调用的服务接口,如下作用于field: @MotanReferer(basicReferer = "ad-commonBasicRefererConfigBean", applicat
阅读全文
摘要:这里我们只介绍motan的注解方式。 1、server端配置 (1)声明Annotation用来指定需要解析的包名 @Bean public AnnotationBean motanAnnotationBean() { AnnotationBean motanAnnotationBean = new
阅读全文
摘要:1、回顾motan注册BeanDefinition motan的整个注册、启动就是通过介入spring容器的启动来实现的,所以我们在这一节继续根据spring的启动顺序来看一下motan的服务注册。 在motan系列1——与spring集成中,我们介绍了motan是通过 AnnotationBean
阅读全文
摘要:1、场景 作为一个网赚类小游戏开发公司,会快速的开发不同的游戏产品,整体架构采用微服务模式,中台模块包括三个功能模块(账户、用户、订单),所有游戏业务项目都与中台交互,从而只关注游戏业务端的功能开发即可。这是根据业务拆分的微服务模块。既然使用了微服务,就涉及到不同服务间的通信,这必然会使用到各种中间
阅读全文
摘要:motan的SPI机制 motan整个项目由SPI机制贯穿起来。主要理解几个概念: 两个注解:@Spi主要于可扩展的接口,类似于模板模式,定义一个标准,可以自定义扩展;@SpiMeta作用于扩展类,可以定义名称,实例化方式(单例和原型) 另外有一个核心实现类 ExtensionLoader<T>,这
阅读全文
摘要:1、原因 Object 的 equals() 默认比较的是对象的内存地址,而 hashCode() 也是对对象的内存地址进行hash。 因为Hash比equals方法的开销要小,速度更快,所以在涉及到hashcode的容器中(比如HashSet),判断自己是否持有该对象时,会先检查hashCode是
阅读全文
摘要:Java 8系列之重新认识HashMap hashMap为什么链表长度为8才转换? 转换概率 链表查找速度和数组速度在8开始有差异 6个才还原,主要为了减少变换频率 hashMap为什么不使用AVL? AVL树就是平衡树 B树是平衡树 B+树是多路平衡树、数据在叶子节点链表上 红黑树是二叉搜索树 h
阅读全文