首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从这个角度,终于理解为什么需要Kafka这样东西!

我们都知道,数据库中数据,只要应用程序员不主动删除,就可以任意次读写,多少次都行。数据库还对外提供很漂亮接口——SQL ——让程序员操作数据。...调用方责任太大。 于是消息队列(MQ)就出现程序A把数据往消息队列中一扔,完事走人,程序B想什么时候读就什么时候读,极其灵活。...可是传统MQ也有问题,通常情况下,一个消息确认被读取以后,就会被删除。如果来了一个新程序C,也想读之前消息,或者说之前一段时间消息,传统MQ表示无能无力。...Kafka出现,它也是一个消息队列,但是它能保存很长一段时间消息(因为在硬盘上),队列中每个消息都有一个编号1,2,3,4.... ,这样就支持多个程序来读取。...例如:程序B读到了编号为3消息, 程序C读到了编号为5消息, 这时候来了一个新程序D,可以从头开始读。

1.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

深度体验 50 个小程序之后,一些冷思考

花了不少时间阅读小程序文档,以及使用体验第一批问世程序,希望从中窥见「小龙哥」一些观点,以及看看小程序未来是不是能够不仅仅是腾讯内部玩具。...当眼镜变得非常智能化时候,可能整个 PC 或者电脑系统会藏在一个眼镜里面。 更加希望是眼镜里面不要再给我一些安装应用程序这样过程,因为那个是很不自然、很不方便。...在小程序上线的当天晚上,所在一个早期用户体验群中,就有这样讨论: 为什么首发阵容惨遭滑铁卢? 从试用程序中挑选几个出来,来说明为什么当前程序大多数都是不合格。 首先说几个大反例。...类似地,飞常准查航班、滴滴公交查询也是查询类程序,但这一类程序很容易结合线下场景。 例如在韩国,大多数公交车站上方都有一个显示屏,它可以实时显示下一班次公交车什么时候到站。...希望能够给作为一个产品经理或者开发者你,一些启发。 写到这儿,有一个点子,希望做一个自己程序,有兴趣加入朋友可以联系。俗话说,想法已经有,就差一个全栈工程师,哈哈。

57120

为什么子线程更新 UI 没报错?借此,纠正一些Android 程序一个知识误区

半小时前, XRecyclerView 群里面,一位群友私聊,问题是: 为什么子线程更新 UI 没报错? 叫他发下代码看,如下,十分简单代码。...他用了 OkHttp 异步 enqueue 请求,并在成功后更新 textView text。 明确一点: okhttp 同步异步回调都是在子线程里面的。...那么这样来说,按照我们被一直灌输原理: 子线程不能刷新UI,上面这段代码妥妥地爆错啊。 而我要说是: 上面的代码不一定爆错,它还会稳稳顺利执行。 你十分怀疑? 你可以尝试下。...原因 在看到他发给我代码,onCreate 里面的部分,一切已经明了,这也是之前面试几年经验的人设过坑。下面直接讲原因,源码分析那些你们自己去看吧,你应该去看。...子线程不能更新 UI 限制是 viewRootImpl.java 内部限制 void checkThread() { // 该方法是 viewRootImpl.java 内部代码 if (mThread

1.2K70

运维告诉CPU飙升300%,为什么程序上线就奔溃 | Java Debug 笔记

持续时间还很长,稍等一会就会降下来这很明显是我们推送消息时候出现问题隔离业务看本质作为一个合格程序员呢,必须摆脱业务才能有所收获 。业务是我们代码外壳所有的问题基本上都是我们本质问题。...在这种并发场景下应该是不会出问题。现在出了问题肯定我们程序逻辑有缺陷上面是我们发送消息代码。代码也很简单。先获取所有符合发送条件客户端 。...我们1W个用户同事在线可能有5000+ 。 那么我们需要5000次以上反射着肯定是吃不消。这也是为什么本文开头说功能正常不代表业务正常。解决方案====这就是量变引起质变。...在多客户情况下我们设计弊端就暴露出来。这里也是笔者自己给自己挖坑。既然找到问题我们就好解决。下面我们对代码做了一下改动将数据缓存起来。因为在同一批次推送时本来也应该保证数据一致性。...而且我们系统对数据实时性也是可以接受一定时间延迟在这里又加上缓存这样就解决我们循环问题经过测试本次改动在CPU上大概优化了100倍。

18610

对“结构化思维”理解 - 直播分享

因此,最近搜索很多资料,结合自己理解,重新整理作一次结构化思维分享。 二、结构化思维是什么?...(What) 理解:结构化思维是一种对抗熵增方法,通过将信息或内容结构化来,帮助我们更好地思考,帮助我们更好地表达和做事。 三、为什么要掌握结构化思维?...,总结出一些共性。...案例1:《为什么我们要追求整洁代码》 https://mp.weixin.qq.com/s/8AZTiHFqsX5a-9BktXr9PA 案例2:本文逻辑 4.2.4 MECE分类原则: 各部分之间相互独立...我们学知识和技术越来越多,我们做了什么?(这是很多人技术深度无法提高重要原因) ---- 欢迎关注,以后会考虑讲一些思维模型,比如本质思维、抽象思维等,敬请期待…

30930

程序员遇到bug时常见30种反应,你躺枪么?

3为什么这个脚本要依赖这么多库 说到一些越来越被广泛使用计算机语言,像 Java 和 Objective-C,库文件数量也不断增加。...5有这个功能插件吗 何必要多此一举插件是扩展任何程序或者网站用户接口很好资源。另外它们还为开发者提供一些定制以及独特选项。如果没有可用插件,那你为什么不自己创建一个呢?...幸好那些日子已经慢慢成为历史。 7有些逻辑语句,并不符合逻辑一些逻辑语句,像 if/else 循环,for 循环,while 循环,do 循环…等等,还有很多。...在回顾一些源代码时,总是尽力想弄明白逻辑是怎么回事。经常会回头更新代码,让逻辑更清晰。 8花 30 分钟写个函数,运行它却要花 2 个小时 这不是十年前一个有关编程故事吗?...发誓这种情况绝对有发生,而且它没有任何意义—也许其它程序运行是缓存版本呢然后也有一些时候我们只更新一丁点代码,结果整个程序都崩溃并且完全停止运行。那就会回退到最新备份版本,从那儿继续吧。

70810

基于点云视觉引导系统-方案解读.1

在正式整理之前,发现两届比赛出现不少有用方案,所以准备做一个系列方案解读。一方面是为了好方案继续发挥作用,二是为了他人项目参考。 已完结~ 那为什么会选定这样一个方案来解读呢?...) 奥比中光Zora P1开发板:板子上跑是armbian操作系统,部署是点云采集和点云匹配程序,点云采集采用C++编写,基于奥比中光官方提供OpenNI2 SDK。...这里准备C++和Python版本 原版是C++,但是改写成Python。 首先引入库,注意OpenCV安装。后面三个参数是单个标定快大小以及标定块数量。...这是核心部分(吓死,都不敢说是算法)。 这个填充是一开始都是黑色,一个黑色页面,纵向逐像素扫描。 像素点操作。 显示+保存,CPP看累了吗?...逻辑和CPP一样,这一段 生成一张全白照片,上面写错了 两个步骤,先扫描纸面,然后按照逻辑填充黑点。

56420

困扰程序30种软件开发问题,你是否时曾相识?

3、为什么这个脚本要依赖这么多库 说到一些越来越被广泛使用计算机语言,像Java和Objective-C,库文件数量也不断增加。...5、有这个功能插件吗 何必要多此一举,插件是扩展任何程序或者网站用户接口很好资源。另外它们还为开发者提供一些定制以及独特选项。如果没有可用插件,那你为什么不自己创建一个呢?...幸好那些日子已经慢慢成为历史。 7、有些逻辑语句,并不符合逻辑一些逻辑语句,像if/else循环,for循环,while循环,do循环…等等,还有很多。...在回顾一些源代码时,总是尽力想弄明白逻辑是怎么回事。经常会回头更新代码,让逻辑更清晰。 8、花30分钟写个函数,运行它却要花2个小时 这不是十年前一个有关编程故事吗?...22、忘了一个该死分号,整个程序都崩了 几乎用过所有的编程语言都要求每行结束时都要有结束符,但并不是所有的语言都这样,不过C/C++系列语言绝对是这样。

45630

困扰程序30种软件开发问题,你是否时曾相识?

3、为什么这个脚本要依赖这么多库 说到一些越来越被广泛使用计算机语言,像Java和Objective-C,库文件数量也不断增加。...5、有这个功能插件吗 何必要多此一举插件是扩展任何程序或者网站用户接口很好资源。另外它们还为开发者提供一些定制以及独特选项。如果没有可用插件,那你为什么不自己创建一个呢?...,幸好那些日子已经慢慢成为历史。 7、有些逻辑语句,并不符合逻辑一些逻辑语句,像if/else循环,for循环,while循环,do循环…等等,还有很多。...在回顾一些源代码时,总是尽力想弄明白逻辑是怎么回事。经常会回头更新代码,让逻辑更清晰。 8、花30分钟写个函数,运行它却要花2个小时 这不是十年前一个有关编程故事吗?...22、忘了一个该死分号,整个程序都崩了 几乎用过所有的编程语言都要求每行结束时都要有结束符,但并不是所有的语言都这样,不过C/C++系列语言绝对是这样。

65631

C语言入门指南(3)(格式化输入输出)(包含scanf读取方式)

scanf读取方式番外scanf中格式串含有普通字符会出现什么情况转换说明是如何转换数据相关复杂知识内容 本文旨在为c语言初学者讲述一些较为简单C语言程序作用,由于此文章需要是易懂知识内容...如果我们希望输出结果是一个根据程序数据来显示结果,那么我们就需要用到以下方法。...所以打印结果是3.1416.转义字符我们在上文当中还出现一个换行符(\n),转义字符作用是实现一些特殊效果而不会被程序报错。...我们先来分析以下程序,讲解scanf作用以及输入原理。格式化输出。既然又提到了格式化这个东西,那么肯定离不开格式串这个东西,前面已经提到了格式串中不同字符、转换说明作用和性质。...我们可以用%d读取float型数据,可以用%d读取char型数据,也可以用%c来读取int型数据。我们首先要明白是一个数据是什么东西

15310

一条 SQL 语句引发思考

: 第一点, where c 这个条件并不符合联合索引最左匹配原则,怎么就查询时候走了索引呢?...为什么 select * from t where c = 0; 这条不符合联合索引最左匹配原则查询语句走了索引查询呢?...果然朋友圈大佬真的多,一个上午就有 50 多个人留言解答这个问题,看完后思路也清晰也把解答思路整理了下,这里贴出来。...那么,如果写了个符合最左原则 select 语句,那么 type 就是 ref,这个效率就比 index 全扫描要高一些。 那为什么选择全扫描联合索引树,而不扫描全表(聚集索引树)呢?...这篇说比较粗略,没有详细介绍一些索引概念,比如聚集索引、联合表索引、覆盖索引、回表操作这些东西。 可能没有点索引基础同学看有点懵逼,小林后面在出一篇更详细。 想看记得点个赞,鼓励下

34740

第六十四期:我们为什么做不到零BUG上线

回想一下过往上线经历,或许可以找到一些答案。...设计人员给UI时间比较晚 开发及上线流程问题 历史遗留Bug 等等 看一看上面显示问题,现在回想起来,好像大家(包括自己在内)都只发现别人问题,产品经理临时加需求,PRD描述不清楚,设计稿出太慢了...,接口给不规范,历史遗留问题了,总之在当时基本上没有人站出来说一句,这个问题是因为个人疏忽导致。...人问题!其实也是自身问题。 为什么这么说呢?...当然,这其中也涉及到一些难以明言问题,比如团队氛围,团队成员差异,每个人都是一个独立个体,没办法保证团队里所有的人想法都是一致,或者我们所在团队真的可以称之为【团队】,这些东西很难去描述出来,只能自己去思考

22420

程序之美 存乎于心

那凭 什么你会写代码就一定是程序呢? ? 好吧,承认你说对,那么达到一个什么样标准才是程序员呢? 无法给出什么答案,只能分享一些过往,期望能带来领悟。 程序 员之路 ?...为什么Yahoo网页这么好看,为什么别人能做出一些很炫效果(比如雪花),为什么有那么多为什么?答案轻而易举得到了,四个字:查看源码。...有没有写过一些黑科技(狂拽酷炫屌炸天)型程序 很久以前(好像是07年吧,还没有jQuery之类东西)基于XMLHttpRequest做了一个内网站点,包括打卡,留言,技术分享,新闻几个小功能。...推荐 书籍 对于中级及以下开发人员,像C, C++, Java都有很多经典书,前几章都非常值得一看。你也许问我既然这么好为什么不看后面,好吧,因为后面都看不懂。...在回答某个问题时候也说过类似的话:程序是建立在逻辑基础上,开发功能时候可以不用别人造好轮子,但是不等于你可以抹杀那个轮子所代表逻辑。在我看来,新技术就是轮子名字而已,贡献吗?绝对!

77860

「零门槛多语言 PythonCC# 通用思想学习系列」第一篇:经典HelloWorld

对于一些科学进步个人理解也是如此,我们了解这个世界一些规则,去探寻某些未知!...可能你感觉函数这个名词,听着不习惯,还是感觉有一些害怕,不要紧,换个说法:函数就像你家电饭锅,你要煮饭时候去使用电饭锅就好;再或者函数就像你家电视机,你想看电视,你直接开了那么就ok,就那么简单...语法就是按照规定使用方法去使用这些函数以及编程中一些东西,只要按照规则去使用,那么就不会出现语法上错误;如果没按照规则,那么会出现一堆红色东西,让你摸不着头脑。...C语言输出显示 刚刚我们知道Python 程序在运行时如何显示字符,那么C语言大家是不是有什么思路?...结果出现错误: ? 在C# 中要在程序运行时显示字符串,需要使用 Console.

65030

Flash AS3 性能优化

尽量避免使用try catch 1、改进算法 无论对于那一种程序,好算法总是非常重要,而且能够极大地提高程序性能,所以任何性能优化第一步就是从算法或者说程序逻辑优化开始,检查自己程序是否有多余运算...4、小心Flash重绘 如果你使用是Flash Player Debugger版本,那么请在检查性能瓶颈时候不要忘记打开显示重绘区域功能,这将帮你迅速定位到舞台上有那些地方被重绘,找出没有显示任何东西却不断重绘地方...8、小心使用useBitmapCache = true 一般情况下除非你确定这个显示对象不可能发生变化那么用用也无妨,不过更推荐自己手动用BitmapData将该对象Draw一遍,然后让这个对象彻底消失...做出来之后,从程序启动到画出来图形,要超过15秒脚本执行限制。这样肯定是不行,于是开始研究程序优化——当然之前也会有所涉及,只不过没有系统总结过,这次需求比较严峻,所以整理一下。...当然这种做法很不符合面向对象思想,不过有些时候也可以这么用。xml效率并不高,数据存储简单格式还是object吧。

70920

《测试开发方法论》之 自造自用

就是你自己做出工具,麻烦你自己先用几十遍。= 这么做是很有必要为什么呢?...且听我细细道来: 在测试完整周期中,不知道大家听过没有:我们不但要测试程序准确正确性,还要测试需求合理性? 我们大部分工作是按照需求测功能,看符不符合需求,不符合就算bug。...毕竟专业产品经理都容易出现这种错误,更别说哦测开兼职产品经理任务。 在之前经历公司中,看到过很多很多被冷藏弃用工具/平台,当日自己也曾写过一些。...这些平台被弃用原因,大多是一开始需求定位不清晰,产品逻辑不通顺。很多测开是自己盲目的开发完成,交付就完事。...自己是最好体验者和修复者。 具体自己用多少次呢?就一直用,直到连续用五次都没找出可挑剔地方,就算合格早年研发测试平台/工具等,刚做完时候觉得很不错。

14810

Java测试题及答案(Java干货完整试卷)

大家好,又见面是你们朋友全栈君。...都是一些非常非常基础Java入门学习题,是最近参加各大IT公司笔试后靠记忆记下来,经过整理献给与我一样参加各大IT校园招聘同学们,但是IT公司就喜欢考这些基础东西,所以为了能进大公司就~~~当复习期末考吧...在Java程序程序控制流语句中,可以省略且不影响编译通过子句是( BC) A.case B.break C.default D.switch 5....在Java语言中,下面( B)是逻辑运算符中优先级最高 A.&& B.! C.|| D.| 6....”); } } A. i是2 B. i是1 i是2 i是3 i不符合判断条件 C. i是2 i不符合判断条件 D. i是2 i是3 i不符合判断条件 10.在Java中,5 * 6 % 4 +

1.1K20

博文看了这么多,终于理解了MySQL索引

最近看了一些MySQL相关书籍和视频太多了,好东西如果不记录一下就会忘记,这里记录一下感觉是重点东西。 这里只说InnoDB引擎 关于索引,我们需要知道哪些东西?...一个页不仅仅只是存放用户记录,还有很多头信息等标志位之类东西,关于细节,大家可以看书,这里只说平时需要从逻辑上理解东西,我们只需要看到User Records这一块空间,每插入一条记录单链表就多了一个结点...比如有一个联合索引idx_c2_c3(c2, c3),select c3 from 表名 where c2 = 4;就只需要查询一次辅助索引就可以,因为需要查询值正好是索引之一,一棵索引树上就能获取...如下图,辅助索引B+树就有条件筛选后想要c2、c3两个字段数据。   ...B+树优先按照c3排序,c3相同时,才按照c2排序,这样和写sql意义不符合,具体可以和上图结合理解。

22120

阅读圣经丨筛选上下文与行上下文

[1240] 在这个图片中,TOPN显示受到切片器筛选影响,排名大于11显示,这个就是筛选上下文,因为有一部分数据不符合筛选要求被踢出去了。...这个东西可能有的小伙伴不太理解,其实单抽出概念,每一个字白茶都认识,但是实际写DAX时候把这几个字放在一起就懵。...[1240] 在这段代码中,白茶利用IF使不符合条件项目不显示,但是实际结果存在不?必然是存在,不显示归不显示。...这种情况下总计栏不会考虑你显示还是不显示问题,它就知道,有,就需要汇总,哪怕它看不着。...TOPN为这个虚拟表提供一些值,本身不符合筛选逻辑值,直接就被PASS掉了。这里已经进行上下文转换了。 最后,SUMX只对总计生效。它只计算可见项目的可计算值。

1.2K20
领券