前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一周播报| 平淡无奇,但暗藏杀机的一周

一周播报| 平淡无奇,但暗藏杀机的一周

作者头像
养码场
发布2018-08-13 15:15:28
3230
发布2018-08-13 15:15:28
举报
文章被收录于专栏:养码场养码场
养码场技术交流N群

每周周一,与您相约“一周播报”

晚 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-

本周的一周播报就到这里

感谢您的收看

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 养码场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档