Github链接,给个Star鼓励我写更多好库直播间聊天消息列表,直播间RecyclerView。采用3层缓存机制,一秒内收到几百条消息依然不卡顿。功能(优点):✅采用3层缓存机制+异步解析ImageSpan。一秒内收到几百条消息依然不卡顿✅可配置RecyclerView最短刷新时间间隔。如0.5秒只触发一次notify✅可配置在短时间内如果收到太多消息可选择丢弃消息。如0.5秒收到超过10条就丢弃了✅根据缓冲区消息数量选择不同的ScrollToBottom速度。用户体验细节✅Demo中提供"底部还有XX条未读消息"的处理方式。并解耦出来,用在你的聊天界面也可以✅Demo中提供弹幕中仿抖音的"
版本2.7.8SPI机制官方文档介绍如下SPI全称为ServiceProviderInterface,是一种服务发现机制。SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过SPI机制为我们的程序提供拓展功能。说白了,SPI是一种第三方框架常用的扩展手段:第三方框架定义接口,使用者来写实现类,通过SPI机制框架运行时可以获取到这个实现类,通过反射创建对象,并使用这个对象来继续完成业务SPI机制所以通过SPI机制,第三方框架可以将某一段业务逻辑交由使用者自定义实现比如Dubbo的负载均衡
版本2.7.8SPI机制官方文档介绍如下SPI全称为ServiceProviderInterface,是一种服务发现机制。SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过SPI机制为我们的程序提供拓展功能。说白了,SPI是一种第三方框架常用的扩展手段:第三方框架定义接口,使用者来写实现类,通过SPI机制框架运行时可以获取到这个实现类,通过反射创建对象,并使用这个对象来继续完成业务SPI机制所以通过SPI机制,第三方框架可以将某一段业务逻辑交由使用者自定义实现比如Dubbo的负载均衡
retrofit是一个解耦性非常高的网络请求框架,最近在研究的时候发现了动态代理这个非常强大且实用的技术,这篇文章将作为retrofit的前置知识,让大家认识:动态代理有哪些应用场景,什么是动态代理,怎样使用,它的局限性在什么地方?#动态代理的应用场景1.AOP—面向切面编程,程序解耦简言之当你想要对一些类的内部的一些方法,在执行前和执行后做一些共同的的操作,而在方法中执行个性化操作的时候--用动态代理。在业务量庞大的时候能够降低代码量,增强可维护性。2.想要自定义第三放类库中的某些方法我引用了一个第三方类库,但他的一些方法不满足我的需求,我想自己重写一下那几个方法,或在方法前后加一些特殊的操
retrofit是一个解耦性非常高的网络请求框架,最近在研究的时候发现了动态代理这个非常强大且实用的技术,这篇文章将作为retrofit的前置知识,让大家认识:动态代理有哪些应用场景,什么是动态代理,怎样使用,它的局限性在什么地方?#动态代理的应用场景1.AOP—面向切面编程,程序解耦简言之当你想要对一些类的内部的一些方法,在执行前和执行后做一些共同的的操作,而在方法中执行个性化操作的时候--用动态代理。在业务量庞大的时候能够降低代码量,增强可维护性。2.想要自定义第三放类库中的某些方法我引用了一个第三方类库,但他的一些方法不满足我的需求,我想自己重写一下那几个方法,或在方法前后加一些特殊的操
Nginx/tengine(后面名称只写nginx了)单纯做cache性能比不过ats,特别是在磁盘处理方面,不过论综合能力nginx就是大拿了,他集web服务器、负载均衡、cache三种能力于一身,可以说是非常综合性的选手。比如说一个中型网站的场景选型,前端是负载,后端托着一堆apache服务器,现在该到前端负载选型的了,虽然lvs和ha单纯从负载的性能要比nginx好一些,但我还是会选nginx,因为nginx在做负载的同时,可以将热点的静态内容cache一遍,做一次加速,无形间减轻了后端web服务器的一些压力,提高了用户体验,一箭双雕。Nginx做cache配置是很灵活的,里面有各种
Nginx/tengine(后面名称只写nginx了)单纯做cache性能比不过ats,特别是在磁盘处理方面,不过论综合能力nginx就是大拿了,他集web服务器、负载均衡、cache三种能力于一身,可以说是非常综合性的选手。比如说一个中型网站的场景选型,前端是负载,后端托着一堆apache服务器,现在该到前端负载选型的了,虽然lvs和ha单纯从负载的性能要比nginx好一些,但我还是会选nginx,因为nginx在做负载的同时,可以将热点的静态内容cache一遍,做一次加速,无形间减轻了后端web服务器的一些压力,提高了用户体验,一箭双雕。Nginx做cache配置是很灵活的,里面有各种
一、背景一般情况下,我们都是用一些封装好的网络框架去请求网络,对底层实现不甚关注,而大部分情况下也不需要特别关注处理。得益于因特网的协议,网络分层,我们可以只在应用层去处理业务就行。但是了解底层的一些实现,有益于我们对网络加载进行优化。本文就是关于根据http的连接复用机制来优化网络加载速度的原理与细节。二、连接复用对于一个普通的接口请求,通过charles抓包,查看网络请求Timing栏信息,我们可以看到类似如下请求时长信息:Duration175msDNS6msConnect50msTLSHandshake75msRequest1msResponse1msLatency42ms同样的请求,
一、背景一般情况下,我们都是用一些封装好的网络框架去请求网络,对底层实现不甚关注,而大部分情况下也不需要特别关注处理。得益于因特网的协议,网络分层,我们可以只在应用层去处理业务就行。但是了解底层的一些实现,有益于我们对网络加载进行优化。本文就是关于根据http的连接复用机制来优化网络加载速度的原理与细节。二、连接复用对于一个普通的接口请求,通过charles抓包,查看网络请求Timing栏信息,我们可以看到类似如下请求时长信息:Duration175msDNS6msConnect50msTLSHandshake75msRequest1msResponse1msLatency42ms同样的请求,