Zookeeper——一致性协议:Zab协议
Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 , 是Zookeeper保证数据一致性的核心算法。Zab借鉴了Paxos算法, 但又不像Paxos那样, 是一种通用的分布式一致性算法。
服务器管理与架构 2022-11-21 14:40:25
Raft协议原理详解
Raft是一种用于替代Paxos的共识算法。相比于Paxos, Raft的目标是提供更清晰的逻辑分工使得算法本身能被更好地理解, 同时它安全性更高, 并能提供一些额外的特性。
服务器管理与架构 2022-11-21 14:40:25
RudderStack 入门
RudderStack 是一个独立的、独立的系统, 仅依赖于数据库(PostgreSQL)。它的后端是用 Go 编写的, 具有用 React.js 编写的丰富 UI。作为领先的开源客户数据平台(CDP), RudderStack提供数据管道, 可以轻松地从每个应用程序、网站和 SaaS 平台收集数据, 然后在您的仓库和业务工具中激活它。
服务器管理与架构 2022-11-21 14:40:25
jaeger 基本入门与example
Jaeger 受Dapper和OpenZipkin的启发, 是Uber Technologies以开源形式发布的分布式跟踪系统。它用于监控和故障排除基于微服务的分布式系统.其基础是分布式上下文传播的概念, 它涉及将某些元数据与进入系统的每个请求相关联, 并在请求执行扇出到其他微服务时跨线程和进程边界传播该元数据。
服务器管理与架构 2022-11-21 14:40:25
linux运维、架构之路-LVS负载均衡
LVS是Linux Virtual Server的简写, 意即Linux虚拟服务器, 是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立, 是中国国内最早出现的自由软件项目之一。在linux内存2.6中, 它已经成为内核的一部分, 在此之前的内核版本则需要重新编译内核。
服务器管理与架构 2022-11-21 14:40:25
如何发挥出PHP7的高性能
如何体现出PHP7的优势? 在使用PHP7的时候如果要开启它的高性能, 需注意以下几点:Opcache, 使用新的编译器,HugePage,cache,PGO等
脚本语言 2022-11-21 14:40:25
PHP session反序列化漏洞总结
数组中的东西需要存储下来, 首先需要序列化。然后session序列化后需要储存在服务器上, 默认的方式是储存在文件中, 储存路径在session.save_path中, 如果没有规定储存路径, 那么默认会在储存在/tmp中, 文件的名称是’sess_’+session名, 文件中储存的是序列化后的session
脚本语言 2022-11-21 14:40:25
PHP7强悍性能背后, zval的变化!
其实在PHP7中的zval, 已经变成了一个值指针, 它要么保存着原始值, 要么保存着指向一个保存原始值的指针. 也就是说现在的zval相当于PHP5的时候的zval *. 只不过相比于zval *, 直接存储zval, 我们可以省掉一次指针解引用, 从而提高缓存友好性.
脚本语言 2022-11-21 14:40:25
PHP(及扩展)的编译与安装 以及 composer方法
php的安装与基本配置, 一下常用扩展如Memcache、Memcached、Redis、Swoole的说明。php的常规设置, 如隐藏PHP版本信息、MySQL的socket设置、php-fpm进程池优化, Composer的安装与使用等!
脚本语言 2022-11-21 14:40:25
Nodejs扩展开发
node.js实际上就是一个用c++完成的程序, 他之所以能够实现javascript,是因为他的底层主要的两部分第三方库, chrome V8和 libuv。对node(主要如何开发c++插件)有一个快速完整的认识, 需要安装编译c++文件为node可以使用的.node文件
脚本语言 2022-11-21 14:40:25
GDB and LLDB command examples
Below is a table of GDB commands with the LLDB counterparts. The built in GDB-compatibility aliases in LLDB are also listed. The full lldb command names are often long, but any unique short form can be used. Instead of 'breakpoint set', 'br se' is also acceptable.
编译语言 2022-11-21 14:40:25
利用LD_PRELOAD进行hook
在Unix操作系统的动态链接库的世界中, LD_PRELOAD就是这样一个环境变量, 它可以影响程序的运行时的链接(Runtimelinker), 它允许你定义在程序运行前优先加载的动态链接库.
编译语言 2022-11-21 14:40:25
Go中的简单MapReduce
Hadoop MapReduce是一个软件框架.MapReduce 作业通常将输入数据集拆分为独立的块, 这些任务由地图任务以完全并行的方式进行处理。今天, 出于测试和学习的原因, 我想在Go中编写一个简单的MapReduce作业。
编译语言 2022-11-21 14:40:25
Gdb 入门+命令大全
GDB(GNU symbolic debugger)是 GNU Project 调试器, 它使你可以查看另一个程序在“执行”期间正在执行的操作–或该程序崩溃时正在执行的操作。GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等多种编程语言提供了支持
编译语言 2022-11-21 14:40:25
一窥GDB原理
ptrace可以说是gdb的灵魂了。gdb通过执行 ptrace(PTRACE_ATTACH, pid, 0, 0) 来对目标进程进行追踪. ptrace()系统调用提供了一种方法可以使得追踪者(tracer)来对被追踪者(tracee)进行观察与控制
编译语言 2022-11-21 14:40:25
开源C/C++网络库比较: ACE、livevent和Boost
在开源的C/C++网络库中, 常用的就那么几个, 在业界知名度最高的, 应该是ACE了, 不过是个重量级的大家伙, 轻量级的有libevent, libev, 还有 Boost的ASIO
编译语言 2022-11-21 14:40:25
[转载]比特币源码研读---开篇
比特币作为虚拟货币的开山鼻祖, 运行至今近10年, 在没有中心化结构的运营下, 几乎没有出现过重大事故, 相信BAT的产品也不敢吹这牛逼吧, 所以作为技术人员读一读比特币代码是修炼内功的绝佳选择。
区块链 2022-11-21 14:40:25
[转载]比特币源码研读---交易
在比特币交易中有一个非常重要的概念UTXO(Unspent Transaction Output), 也就是说比特币用UTXO取代了传统的账号系统。这句话如何理解呢, 我们做个对比就知道了。假设A,B2位矿工分别挖到区块, 获得coinbase奖励25btc, 然后均转给C, C又转40个BTC给D。
区块链 2022-11-21 14:40:25
[转载]比特币源码研读--交易细节
充值方式众多, 比如加仓,Fomo, 或是写DAPP, 读代码。那我继续前两次的操作, 继续阅读BTC的代码, 版本0.8.2。上次粗读了一番交易的流程, 大概的来龙去脉也略知一二, 这次就按照关键的执行函数来扣一下具体的细节。
区块链 2022-11-21 14:40:25
30 个 Linux 系统监控工具
Linux 系统常用监控工具, 包括: top, vmstat, w, uptime, ps, free, iostat, sar, mpstat, pmap, netstat, ss, iptraf, tcpdump, iotop, htop, atop, ac 和 lastcomm, monit, NetHogs, iftop, vnstat, nmon, glances, strace, proc, Nagios, Cacti, KDE 系统监控器, GNOME 系统监控器