![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式中间件
文章平均质量分 79
常用的分布式中间件
天下无敌笨笨熊
这个作者很懒,什么都没留下…
展开
-
spark小结
spark资源spark的资源指的就是cpu core和物理内存。程序运行时,每个core对应一个线程。 application对资源采取声明式的独占,亦即,假设application A声称自己占用了10 cpu和5G内存,那么即使A并不真正使用这些资源,这些资源也不能为其他application所用。所以,如果我们不带参数的在standalone集群上启动spark-shell(默认占用所有资原创 2017-12-10 15:26:00 · 182 阅读 · 0 评论 -
redis心得
一主多从,主节点负责写入,从节点负责复制。但并非高可用,主节点挂了,要人工切换。原创 2023-05-29 11:29:36 · 627 阅读 · 0 评论 -
redis的pipeline和事务讨论
redis事务有一些特点,需要注意:1、redis事务失败不会回滚,比如下面3条命令在multi后执行:如果第2条命令执行出错,最终的结果是命令1和3仍然生效,仅仅是命令2失败而已。因此,redis事务并不具备DB事务那样的数据一致性保证,其仅仅作出了:确保事务中的这批命令不会被其它client的命令干扰。原创 2023-06-27 18:53:03 · 309 阅读 · 0 评论 -
一些常用的分布式组件设计技巧
可用redis的pubsub机制来支持集群内的广播。原创 2023-06-02 20:11:37 · 320 阅读 · 0 评论 -
基于redis stream实现一个可靠的消息队列
追求可靠性,则须封装XACK命令。引入ACK之后,自然要考虑对那些ACK超时的消息如何补救。由于我们打算实现kafka那样的consumer group机制,所以,读操作要用RStream.readGroup函数(XREADGROUP命令),该命令有阻塞和非阻塞版本,简单起见,我们使用非阻塞版本(不带BLOCK参数),由应用层来定时轮询。最后,stream的定时清理动作,解决内存占用过大的问题,使用lua脚本包装XTRIM命令,根据上一次清理时的stream size,计算本次要保留的元素个数。原创 2023-07-03 16:04:28 · 1324 阅读 · 0 评论 -
gearman使用心得
本质上,gearman可以认为是一个分布式任务队列,client是生产者,worker则是消费者。gearman并不主动分发任务,而是由worker到它那里去取任务执行,所以它采用的是类似kafka的pull消费模式。原创 2023-08-14 11:30:09 · 256 阅读 · 1 评论 -
kafka使用心得(二)
producer建议做成单例在多线程间共享,多个producer实例会将发送的消息总量分摊掉,造成的结果是:一方面由于多producer的分摊,消息不能及时发送(因为每个producer有batch.size的约束),另一方面多个producer的消息可能堆在一起发送,产生大量的网络IO。指示发送缓存大小的batch.size不能设置太小,否则严重影响发送效率。原创 2023-08-15 14:35:47 · 2064 阅读 · 0 评论 -
celery初探
我们用的是gearman,但对于类似功能的celery也要做一下调研。原创 2023-08-15 10:20:28 · 177 阅读 · 1 评论 -
定时任务调度系统调研
我们的定时运维任务有集中管理和查看的诉求,记录一下。候选:airflowSaturncronsunAzkabanXXL-JOBwebcronspring的@Scheduled注解。原创 2023-08-16 10:55:35 · 108 阅读 · 0 评论 -
kafka使用心得(一)
一种分布式的、基于发布/订阅的消息系统,scala编写,具备快速、可扩展、可持久化的特点。原创 2023-08-15 11:54:51 · 693 阅读 · 0 评论