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

养码场技术交流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-

本周的一周播报就到这里

感谢您的收看

原文发布于微信公众号 - 养码场(yangmachang0)

原文发表时间:2018-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

涨姿势 | 如何修复硬盘,以及如何避免硬盘损坏

2364
来自专栏北京马哥教育

25台服务器怎样支撑世界第54大网站

摘要:同时使用Linux和Windows平台产品,大量使用静态的方法和类,Stack Overflow是个重度性能控。同时,取代横向扩展,他们坚持着纵向扩展思路...

7509
来自专栏CSDN技术头条

.NET技术+25台服务器怎样支撑世界第54大网站

【编者按】StackOverflow是一个IT技术问答网站,用户可以在网站上提交和回答问题。当下的StackOverflow已拥有400万个用户,4000万个回...

2657
来自专栏CSDN技术头条

常用物联网应用协议汇总

本文罗列下市面上物联网通信中的各类消息技术-即工作在网络通信的应用层协议,总结下它们各自特点、特定的物联网应用场景等。 这类协议都直接用于在无线或有线网络环境下...

3529
来自专栏程序员互动联盟

【编程基础】聊聊C语言-存储世界的奥秘

上一篇讲到了C语言的数据类型,从这篇我们开始讲讲与数据类型有这着千丝万缕联系的变量。 所有语言的变量都是存储在计算机存储系统中,C语言的变量当然也不例外。所以...

3837
来自专栏魏琼东

AgileEAS.NET SOA中间件平台更新日志 2015-04-28

一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

3135
来自专栏FreeBuf

当“宿主”披上QQ盗号的外衣

导读:生物学上病毒侵入的细胞就叫宿主细胞,而病毒则借助宿主的蛋白质和其他物质制造自己的身体,由于控制细胞增殖的结构基因发生突变,调节系统对它失去控制,结果就会造...

1950
来自专栏知晓程序

如何为小程序申请微信认证?| 小程序问答 #35

在第 28 期小程序问答,我们提到,微信认证后的小程序,会享受不少「特权」,类似微信支付、小程序成员上限提升等。

3330
来自专栏知晓程序

玩腻了传纸条、漂流瓶,就用它来跟网友分享「小卡片」吧

今天,知晓程序(微信号 zxcx0101)就为你推荐一款有毒的小程序「一起 Up」,在里面,你不仅可以看到其他用户分享的有趣、有内涵的内容,还能将自己的私货与其...

914
来自专栏BIT泽清

IOS 2.1和4.3条款被拒?金融股票配资,社区交流类APP苹果过审方案

苹果开发者上传APP最头痛的三件事就是等待审核、正在审核和审核不通过。据2018年5月之前,苹果方其实对APP的审核力度并不是很大,后因为世界杯的到来,众多的菠...

4050

扫码关注云+社区

领取腾讯云代金券