- 博客(25)
- 收藏
- 关注
原创 Raft 分布式一致性协议
简介Raft 协议是分布式领域解决一致性的又一著名协议,主要包含 leader 选举和日志复制部分两部分。leader 选举节点状态Raft 协议中节点有三种状态(角色)Follower 跟随者Candidate 候选者Leader 领导者,也就是主节点单节点发起的投票最初节点的状态为 Follower,每个节点会有一个计时器,其时间设置为 100~300ms 之间的随机值。...
2019-12-02 20:28:32
342
原创 RocketMQ 路由中心
NameServer 的功能NameServer是整个消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息。同时,各个角色的机器都要定期向NameServer上报自己的状态,超时不上报的话,NameServer会认为某个机器出故障不可用了,其他的组件会把这个机器从可用列表里移除。NamServer可以部署多个,相互之间独立,其他角色同时向多个NameServer机器上报状态信息,从而达...
2019-11-10 22:40:07
492
原创 RocketMQ 消息发送
消息发送的三种方式1.可靠同步发送2.可靠异步发送3.单向发送消息的组成RocketMQ 中消息的基础属性包括:主题 topic、消息 flag、扩展属性 properties和消息体 body。其中拓展属性包含以下几个:tag(消息 tag,用于消息过滤)、keys(消息索引建,用多个空格隔开,RocketMQ 可以根据这些 key 快速检索到消息)、waitStoreMsgOK(消息...
2019-11-10 20:00:19
872
原创 JavaScript 并发模型和事件循环
JavaScript 有一个基于“事件循环”的并发模型。这个模型不同于 C 或 JAVA 中的模型。运行时概念JavaScript 的运行时理论模型包括:栈(stack),堆(heap)和队列(queue)。栈函数调用形成一个栈帧。function foo(b) { var a = 10; return a + b + 11;}function bar(x) { var...
2019-03-18 20:23:27
300
原创 JavaScript 内存管理
导言像 C 语言这样的低级语言提供了手动内存管理的原语malloc()和free()。而 JavaScript 则在对象创建时自动分配内存并在它们不再使用时释放它们(垃圾回收)。这种自动化也是一种困惑的来源,那就是开发人员会错误地认为他们不需要考虑内存管理了。内存的生命周期无论什么编程语言,内存的生命周期总是相似的:1.分配你需要的内存。2.使用分配的内存(读,写)。3.当你不再使用时...
2019-03-18 16:12:48
301
原创 JavaScript 概述
总览JavaScript 是一门多范式的,有着类型、操作符、标准内置对象和方法的动态语言。它的语法基于 C 和 Java。JavaScript 通过对象原型支持面向对象编程,而不是类(对象原型在创建对象前不需要提前定义类,这是它和面向对象最大的区别)。JavaScript 同时支持函数式编程,因为一切皆对象,函数也可以存储在变量中并像其它对象那样被传递。JavaScript 中的类型包括:...
2019-03-15 21:20:03
285
原创 Redux综述
为什么需要 Redux?随着 JavaScript 单页应用开发日趋复杂,JavaScript 需要管理比任何时候都要多的 state(状态)。这些 state 可能包括服务器响应、缓存数据、本地生成尚未持久化到服务器的数据,也包括 UI 状态,如激活的路由,被选中的标签,是否加载动画或者分页器等。管理不断变化的 state 非常困难。如果一个 model 的变化会引起另一个 model 变化...
2019-03-15 10:25:09
232
原创 高可用架构设计
可用性是什么?可用性是一种安全属性,是信息安全三要素中的 A:保密性(Confidentiality)完整性(Intergrity)可用性(Availablility)高可用是系统的重要目标,其重要程度取决于系统的定位。例如:军用系统中保密性最重要(宁可毁掉也不能将机密落入敌手)商业系统中完整性最重要(宁愿服务终止,账本泄露也不容许篡改)然而保密性和完整性不能很好地量化,也就不...
2019-03-08 22:06:36
799
原创 展示组件和容器组件
react-redux绑定库是基于容器组件和展示组件分离的开发思想,是react开发中非常重要的一个思想。详细介绍可以查看本文#展示组件和容器组件对比展示组件容器组件作用描述如何展现(骨架、样式)描述如何运行(数据获取、状态更新)直接使用 Redux否是数据来源props监听 Redux state数据修改从 props 调用回调函数...
2019-03-04 21:11:07
854
原创 React初学者,你需要知道这些
一、React 技术栈所有的软件都构建在一系列的技术栈上,你需要足够理解构建你 app 的技术栈。React 的技术栈看起来很庞大的原因在于它总是被按照错误的顺序解释了。你应该按下列的顺序来学习,不要跳过或者同时学习它们:React 基础npmJavaScript “bundlers”(webpack)ES6RoutingFlux你不需要一次性学完它们。仅仅在遇到需要解决的问...
2019-02-18 22:01:12
231
原创 LeetCode题解——两个有序数组的中值
4.Median of Two Sorted Arrays描述有两个排序的数组 nums1 和nums2,它们的大小分别是 m 和 n。找到两个排序数组的中值。程序的时间复杂度为 O(log(m+n))。你可以认为 nums1和 nums2 不会同时为空。Example 1:nums1 = [1, 3]nums2 = [2]The median is 2.0Example ...
2019-01-25 22:14:50
451
原创 wargame--Bandit
Bandit 是wargame 系列挑战中的第一个系列,也是最基础的一个,可以用来巩固一些命令行基础知识,所有的挑战都通过终端直接 ssh 连接远程主机即可。我在两周前打完了 Bandit,所以写下这篇博客来做一个总结。Level 0目标使用 ssh 连接到目标主机 bandit.labs.overthewire.org 。用户名为bandit0,密码为bandit0。可能会用到的命...
2019-01-19 17:37:11
1389
1
翻译 XSS详解(译)
一、XSS 概述什么是XSS?Cross-site scripting(XSS)是一种能够在他人浏览器中执行恶意 JavaScript代码的代码注入攻击。攻击者不需要直接接触受害者。他可以直接利用受害者访问的网站的漏洞来让恶意代码在其浏览器中执行。对于受害者的浏览器来说,恶意的 JavaScript 代码表现的就像是网站合法的一部分,而网站的行为也完全不像是攻击者的帮凶。恶意的 JavaS...
2019-01-10 23:49:53
5916
1
原创 Docker学习笔记(一)
前言:参与OpenDCP的研发已有两个多月,期间阅读了不少Docker相关的书籍、博客等资料,在此对所学内容进行一个梳理,方便日后翻看。一、Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。二、Docker的核心优势:Dock
2017-07-01 14:55:26
377
原创 C语言示例的反汇编生成以及堆栈调用分析
一、预备知识1.汇编语言基础汇编语言是能直接转换成机器语言的语言,由高级语言编译生成,不同体系架构的计算机所能执行的汇编语言不同。 (1)寄存器 寄存器名 说明 功能 eax: 累加器 加法乘法指令的缺省寄存器 ecx: 计数器 REP&LOOP指令的内定计数器 esp: 栈顶指针寄存器 SS:ESP当前堆栈的栈顶
2017-05-14 17:07:46
1320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人