每周周一,与您相约“一周播报”
晚 21:30
这一周的话题基本都与技术相关,名副其实的“养码场”技术交流群了。
翻到文章最下面,可以浏览平时你们都聊些什么。
如何在MQ中
实现支持任意延迟的消息?
养码人A:我司的做法是先写入数据库,然后再按照延迟参数发生,很简单吧。
养码人B:消息写DB的话,TPS、RT 这些能接受吗?你们用的是什么消息中间件?
养码人A:自己做的中间件,TPS吃得消啊,分库分表呗。我司的消息中间件主要是为了解决最终一致性,延时发送只是一个附带的功能。
养码人B:所以你们的消息都是写DB的?TPS和RT大概在什么级别?
养码人A:可能跟业务有关系,公司主要做金融业务,跟社交,直播,不太一样。金融的TPS相对来说不高的,QPS是800。
养码人B:业务量小的确实写DB就够了。量还不大,像蚂蚁金服这种级别的,可靠性第一,不过肯定不会基于DB去做了。
养码人A:我司的中间件组都来自阿里系,最终一致性不借用DB,如何实现?纯粹发消息,用Kafka应该更合适。
养码人B:最终一致是指业务上的最终一致吧,不是消息本身的最终一致吧?
如果是消息系统本身的一致性,最终一致可以走主从复制的模式,如果是强一致就是Raft和Paxos。Kafka异步刷盘,异步复制,会有丢数据的问题,更适用于日志的场景。
都是阿里系的,为啥不选用RocketMQ,而使用RabbitMQ + MYSQL?
养码人A:我理解的最终一致性:要求业务A发出去的消息不会丢失,或者说肯定被应用B消费,如果消费失败就产生告警。
养码人B:这个不是一致性了。这个只是保证消息不丢失,是消息消费语义上的问题,属于是at least once、at most once还是exactly once的问题。
中场休息下
养码人A:后半句,要确保被应用B正确消费。光到达还不够,中间件会对所有没有被成功消费的消息做告警,确保没有漏网之鱼。
比如转账,A减去10元,发消息给B,如果b没有收到,或者找不到收款账号给加上10元,就是没有完成业务一致性,中间件就告警了。
养码人B:这个业务肯定不走消息中间件了吧,直接DB事务处理了。另外消费是有ACK操作的,B消息之后需要ACK,如果没ACK就重新消费,这个就是atleast once了
养码人A:ACK是表示消息收到的意思,还是消息被成功处理的意思?
养码人B:成功处理。
养码人A:中间件允许手工选择历史消息重发,功能多了一点。
养码人B:这个在MQ中一般通过回溯的功能实现。
看完这些聊天记录,场主受到了来自灵魂的拷问:
线程和协程的区别
有养码人在社群里问:哪位大神可以详细讲讲,线程和协程的区别?
养码人A:Go的协程是操作系统层面不可见的。
线程的实现是对应到轻量级进程或者内核线程,由操作系统负责切换个调度,协程在操作系统层面不可见,省去了操作系统的切换调度这种操作。
至于,基于共享内存还是基于消息传递,这个只是切入问题的角度不同,不存在优劣。
养码人B:看场景吧,个人觉得协程对于大数据量的并发有优势。就是说,每个线程的任务处理时间长,且整个吞吐量要的高。
用线程,就不停的切来切去。
养码人C:这样的场景,协程也可以适用啊。
养码人B:大数据的并发计算,大数据传输,协程的成本肯定比线程高。
养码人C:哪个层面成本高?开发?
养码人B:最起码应该没法用多核,从原理上分析的话,协程应该是单核的,还有预读可能也没有,一些硬件的优化,估计都用不了。
协程解决的是任务频繁切换导致中断太多的问题,线程切换的中断,级别蛮高的。
这些算成本的话,其实就是浪费一些硬件资源,感觉就是非常轻量级的切换,用协程好些。
协程主要做的是在过程中不会因为被切走导致吞吐量下降;线程是怎么实现的,就是时间片共享CPU呀。
CPU某个时间点只能走一个指令单核的,并行就是在极短的时间内切换。大任务长时间用协程比较好,主要就是保证不会切来切去中断太多。本来任务多导致的频繁,这是设计问题,可以合并任务。
反正我看到用协程,一般是流式计算时和大数据处理时。
养码人A:协程适合并发场景,而线程适合并行场景,并发场景用线程开销太大。
养码人C:Java有协程吗?
养码人B:有,第三方包,只是事件并发,线程蛮好用的。
养码人A:阿里的ajdk有协程。
蚂蚁借呗
阿里内部员工可以借多少?
养码人A:问个问题,如何提高芝麻信用,蚂蚁森林有种吗?
养码人B:要多少芝麻信用?干嘛用啊?
养码人A:冲750,想看校园日记。
养码人C:我有820,分你一点?
养码人A:为什么你们分数都这么高?
是不是有驾驶证? 房产证? 杭州户口? 如果这三个都没有的话,应该上不了750吧。
什么时候芝麻信用也能成为炫富指数了?
养码人D:信用分还不到700的路过。。。(但附上了一张借呗额度图!!!)
默默看了看自己的余额……
养码人E:阿里员工福利也太好了吧,还可以享受这类消费贷。
辛苦一年的礼物
OFO:三等奖三十个华为mate10,二等奖大疆无人机,一等奖是一辆自行车……
左耳朵耗子创业:人手一只iPhoneX
还是技术创业者
最心疼技术人
-END-
本周的一周播报就到这里
感谢您的收看