Wesley13 Wesley13
3年前
IM中的万人群聊技术方案实践总结(转)
1、引言在不了解IM技术的人眼里,群聊是再平常不过的功能而已,万人群聊?应该也不难实现吧?!确实,从前端功能界面上来看,群聊无非就是个循环向群员发送消息的一对多聊天消息分发模式而已,难在何处?真实的情况是,群聊是IM系统中的高难度技术点之一。难在哪?难在服务端!从某种角度上说,群聊功能的架构设计和技术实现的品质,可以代表这款IM软件
Stella981 Stella981
3年前
Notification使用详解之二:可更新进度的通知
上次和大家分享了关于Notification的基础应用,包括简单的通知和自定义视图的通知。今天和大家分享一下如何实现一个可更新进度的通知。我们将会模拟一个下载任务,先启动一个线程负责模拟下载工作,在这个过程中更新进度信息,然后下载线程把最新的进度信息以消息的形式,发送到UI线程的消息队列中,最后UI线程负责根据最新的进度信息来更新进度通知的UI界面。
Stella981 Stella981
3年前
Kafka、RabbitMQ、RocketMQ等 消息中间件 介绍和对比
文章目录1、前言(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fu014597198%2Farticle%2Fdetails%2F100563722%231_1)2、概念(https://www.oschina.net/
Stella981 Stella981
3年前
Spring Cloud(七)《基于RabbitMQ消息总线方式刷新配置服务》
!(https://oscimg.oschina.net/oscnet/2bcf28bf1419a03a3e9ecd562c8fc5dbcd5.jpg)作者:付政委读书不觉已春深,一寸光阴一寸金。不是道人来引笑,周情孔思正追寻。微信公众号:bugstack虫洞栈沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识
Wesley13 Wesley13
3年前
2019第1周日
用消息中间件犹如小马过河,选择合适的才最重要,这需要贴合自身的业务需求,技术服务于业务。具体在选择上可从下面功能、性能、可靠性和可用性、运维管理、社区和生态、团队技术栈等维度来进行筛选。具体技术选型指标1:功能首要的就是功能维度,这个直接决定了你能否最大程度上的实现开箱即用,进而缩短项目周期、降低成本等。如果一款消息中间件的功能达不到想要的功能,那么
Stella981 Stella981
3年前
FinBus
1\.一个程序应该建立几个收发的传输端点?一个传输端点可以用来传输一类消息,每个传输端点关联的传输通道数则要根据发送端和接收端的分区个数来确定,一般为两者的乘积。两个不同名称的传输端点也可以关联到同一传输通道的不同端。2\.只启动发送端或接收端组件,是否会收到对方的超时事件?对于发送端组件,有消息发出后,接收端组件还未启动
Stella981 Stella981
3年前
Spring Boot与RabbitMQ结合实现延迟队列的示例
背景何为延迟队列?顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处理。这是就可以使用延时队列将订单信息发送到延时队列。场景二:用户希望通过手机远程遥控
Stella981 Stella981
3年前
Kafka 发送消息过程中拦截器的用途?
消息在通过send()方法发往broker的过程中,有可能需要经过拦截、序列化器(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzU3OTc1MDM1Mg%3D%3D%26mid%3D2247497846%26i
搭建平台吧 搭建平台吧
2年前
哈希竞猜的未来趋势
哈希(Hash)是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。一致性hash算法提出了在动态变化的Cache环境中,判定
语音消息使用 remote 地址在 android 手机上播放失败
由于remote地址中有特殊字符,导致播放报错,可以把地址使用encodeURI转换后即可正常播放。示例代码letinnerAudioContextuni.createInnerAudioContext();innerAudioContext.autopl