一、摘要 分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 1、消息的顺序问题 2、消息的重复问题 二、关键特性以及其实现原理 2.1、顺序消息 要实现严格的顺序消息,简单且可行的办法就是: 保证生产者 - MQS ...
分类:
其他好文 时间:
2018-09-02 13:17:00
阅读次数:
418
在我看来,《原则》的带来的启发并不是这些终极的原则,更有趣和更可贵的是作者在讲诉他的这些原则的过程中配给了大量的细节。这些细节涉及他的成长,他的家庭,他的友谊,以及他事业上的探索 ...
分类:
其他好文 时间:
2018-08-15 20:37:21
阅读次数:
164
在生成器函数中,哪怕是一点报错。都会导致程序无法再次执行。这是yield的特性导致的。最简单的解决方案,就是将所有报错回避,并且做好交互。 1、将所有可能异常的地方判断好,不让代码继续执行yield即可,说白了,就是多判断变量的合法性(undefined、null),以下面的demo为例来说:res ...
分类:
其他好文 时间:
2018-07-12 10:31:29
阅读次数:
415
Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 Javascript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原理同样非常重要,这样你可以回避一些常见的问题。 原理图剖析 仔细阅读这张官方原理图,大概可以剖析为以下几个步骤: 编译组 ...
分类:
Web程序 时间:
2018-06-25 11:17:40
阅读次数:
253
一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并发问题,后面随着处理的系统业务越来越复杂,多线程再也回避不了了,也就借此机会深入研究了一下.Net中 ...
分类:
编程语言 时间:
2018-06-21 11:41:04
阅读次数:
197
一直以来本人对MCU的FLASH和SRAM(RAM存储器一种)是如何分配的只是知道个大概,而不尽祥。不是非常了解内存分配大多数时候对我们进行裸机程序编写是没有太大影响的。 但一旦上升到使用嵌入式操作系统,这个问题就难以回避,因为操作系统没有任何应用编译之后都要占用至少10几KB,这对RAM紧张的MC ...
分类:
其他好文 时间:
2018-06-09 18:56:03
阅读次数:
737
很多开发者不会深入思考程序出现和预期不一样的结果,只会回避并用其他方法来达到目的 一.闭包 无论通过何种方式将函数传递到词法作用域以外,它都会持有对原始定义作用域的引用,无论在何处执行这个函数都会产生闭包。//reutrn 一个函数,回调一个函数 从上可以看出闭包需要的两个必要的条件,一是主体是函数 ...
分类:
Web程序 时间:
2018-06-01 10:45:35
阅读次数:
204
往期系列: 《由阅读源码想到》 《由阅读源码想到 | 下篇》 Medium上有一篇文章Why You Don’t Deserve That Dream Developer Job,由一位漂亮的程序媛所写。文章不免贩卖了些焦虑,但也谈到些无法回避的问题:无论对于职业人士想在原有路线上继续发展、还是想要 ...
分类:
其他好文 时间:
2018-05-02 02:37:37
阅读次数:
166
并发所带来的好处 1. 并发在某些情况(并不是所有情况)下可以带来性能上的提升 1) 提升对CPU的使用效率 提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU的使用 ...
分类:
编程语言 时间:
2018-04-30 14:40:33
阅读次数:
143
http://www.cnblogs.com/yangfengwu/p/8948935.html 学东西一定是打破沙锅学到底,有问题就解决问题,不要试图去回避或者放弃解决当前的问题,如果总是回避或者放弃你就永远无法越过了..你的能力也就这样了,你的自学和解决问题的能力永远也不会得到提高....这东西 ...
分类:
其他好文 时间:
2018-04-27 23:57:58
阅读次数:
744