关闭
当前搜索:

[置顶] 理解这两点,也就理解了paxos协议的精髓

什么是paxos协议? Paxos用于解决分布式系统中一致性问题。分布式一致性算法(Consensus Algorithm)是一个分布式计算领域的基础性问题,其最基本的功能是为了在多个进程之间对某个(某些)值达成一致(强一致);简单来说就是确定一个值,一旦被写入就不可改变。paxos用来实现多节点写入来完成一件事情,例如mysql主从也是一种方案,但这种方案有个致命的缺陷,如果主库挂了会直接...
阅读(222) 评论(0)

[置顶] 6个实例详解如何把if-else代码重构成高质量代码

本文提纲: 为什么我们写的代码都是if-else?这样的代码有什么缺点?是否有优化的方法?如何重构?异常逻辑处理型重构方法状态处理型重构方法 为什么我们写的代码都是if-else? 程序员想必都经历过这样的场景:刚开始自己写的代码很简洁,逻辑清晰,函数精简,没有一个if-else, 可随着代码逻辑不断完善和业务的瞬息万变:比如需要对入参进行类型和值进行判断;这里要判断下...
阅读(525) 评论(0)

MySQL 8.0新特性--让你轻轻松松找到配置项的位置

前言 我们都知道,MySQL配置项可以从多种方式设置: 1、在配置文件中定义, 查看配置路径: mysqld --verbose --help| grep -A 1 "Default options" /etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf 2、通过命令动态修改 set global var=value;...
阅读(392) 评论(1)

multi-paxos和raft区别

什么是raft?Raft论文中都做了详细的描述,语言清晰,我这里仅做下认为非常重要的点的记录: 数据流向是由leader流向follower的,follower和leader不一致,以leader为准修改follower本地日志 2.leader的选举中,如果follower发现candidate的日志比本地日志少,follower不投票给candidate,这就保证了选举出的leader覆盖了大多...
阅读(152) 评论(0)

paxos工程中的运用-multi-paxos

什么是multi-paxos上篇介绍了paxos的理论知识[http://blog.csdn.net/qq_35440678/article/details/78080431],要在实际工程运用大多数使用multi-paxos协议,原因是朴素paxos每次提议都执行完整paxos协议代价过大-3次网络交互,2 次本地持久化,因此,multi-paxos引入leader概念,较少paxos的prepa...
阅读(133) 评论(0)

tcpdump学习笔记记录

前期准备要想学会tcpdump,最起码需要对tcp/ip协议有一定了解,比如tcp三次握手,相关只是可以看看《计算机网络》或者《TCP/IP详解》。tcpdump使用格式格式: tcpdump [ -AbdDefhHIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -...
阅读(105) 评论(0)

《复盘》思维导图

最近看了《复盘》这本书,有些方法论不错,做了个思维导图,要原图的留邮箱。...
阅读(137) 评论(0)

《Java多线程编程核心技术》笔记

前言《Java多线程编程核心技术》这本书例子太多,基本占一半的篇幅都是例子代码,真正的干货比较少,记录几点新知识。synchronized和volatile关键词区别 关键词volatile是线程同步的轻量级实现,性能好,volatile只能修饰变量,而synchronized可以修饰方法以及代码块。 多线程访问volatile不会发生阻塞,而synchronized会出现阻塞; volatile能...
阅读(180) 评论(0)

java多线程基础

java多线程基础java实现多线程有两种方式: - 一种是继承Thread类 - 另一种是实现Runnable接口 那么,两者有什么区别呢?public class Thread implements Runnable从上面的Thread源码可以看出,Thread类实现了Runnable接口,他们具有多态关系,因此区别就是:使用Thread类的方式创建新线程不支持多继承,因为java语言的特...
阅读(100) 评论(0)

open-falcon资料汇总

前言本周末了解了下小米开源的open-falcon监控系统,上网搜寻了部分资料,感觉还不错,把资料做个汇总。资料列表最重要的资料还是官方wiki[https://book.open-falcon.org/zh/intro/index.html] 架构图重点推荐极客学院的讲解视频:http://my.jikexueyuan.com/ulricqin/record/ 作者本人主讲的,看视频跟着作者思...
阅读(177) 评论(0)

effective Java读书笔记-通用程序设计

最近继续在翻阅《Effective Java》,这是一本java的经典书籍,需要好好研究研究,现记录一些自己学到的新知识点。1.for-each循环优先于传统的for循环java 1.5发行版本以前遍历的做法:for(Iterator i = c.iterator;i.hasNext();){ doSomething((Element)i.next); }java 1.5发行版本引入for-...
阅读(173) 评论(0)

Java 枚举类型

1. 简介看java关于单例的实现博客: http://coolshell.cn/articles/265.html 里面都提到通过枚举实现单例,周末抽空看了java枚举类型,做个记录。 Java枚举类型背后的基本想法非常简单:他们就是通过公有的静态final域为每个枚举常量导出实例的类。因为没有可以访问的构造器,枚举类型是真正的final。因为客户端既不能创建枚举类型的实例,也不能对它进...
阅读(130) 评论(0)

最近C++开发过程中遇到的一些坑

1. 对齐引发的bug最近在移植一个项目代码,发现编译后报字节长度和客户端定义的长度不对,但是代码是直接移植过来的为什么会不对:struct Head { uint32_t a; uint32_t b; uint32_t c; uint32_t d; uint32_t e; uint32_t f; uint32_t g; uint32_t h; uint64_t i; uint6...
阅读(136) 评论(0)

effective Java读书笔记:创建和销毁对象

第1条:考虑用静态工厂方法代替构造器静态工厂方法与构造器不同,有以下几个优势: 1. 静态方法有名称。 构造器的参数本身没有确切地描述返回的对象,静态工厂方法可以,比如:newInstance() 2. 不必在每次调用他们的时候都创建一个新对象。 说白了,可以在静态工厂方法里面控制实例是否可重用,可以缓存对象等。Boolean.valueOf(boolean)就是一个很好的例子。...
阅读(137) 评论(0)

java容器梳理

一:一图胜千言 Collection 存放独立元素的序列。提供一些处理容器类静态方法,比如二分查找,排序等等。Collection下又有三个子接口,List,Set,Queue。 List一个有序的Collection(也称序列),元素可以重复。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null...
阅读(178) 评论(0)

CMAKE 常用指令

CMAKE 常用指令介绍CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。构建过程在 linux 平台下使用 CMake 生成 Makefile 并编译的流程分3步: 编写 CMake 配置文件 CMakeLists.txt 。 执行...
阅读(223) 评论(0)

5分钟从零搭建一个maven工程

什么是maven?maven是一个项目管理工具。主要提供两大功能:一个包管理器,类似于nodejs的npm,另外一个是构建自动化编译,有点类似于cmake。极大方便java项目开发过程中的包管理和自动化构建过程。如何安装maven?官网下载地址: https://maven.apache.org/download.cgi 下载zip解压到本地,把bin目录加到环境变量中。 cmd执行...
阅读(431) 评论(1)

课程笔记-深度学习之逻辑回归(Regression)pokemon案例分析

课程笔记-深度学习之逻辑回归(Regression)案例学习什么是Regression?Regression 是一个逻辑回归,可以简单看出一个function,若干特定输入,得到预测的输出。 例如,Regression的应用场景: —|— | — 股票预测| 给定历史上所有的股票涨跌情况 |预测明天Dow Jones Industrial Average 自动驾驶 | 路况信息|方向盘角度...
阅读(399) 评论(0)

byte[]与String转换引起的protobuf反序列化抛异常问题

使用protobuf时,将string写入ssdb然后再读出来反序列化protobuf message的时候报错:com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. Th...
阅读(2880) 评论(0)

qconf安装过程遇到的问题及解决方案

背景近期,项目中引入一个配置中心服务,主要目的是界面化管理项目中的配置文件,做了一番调研决定用qconf。qconf有以下特点能很好地满足需求: - 一处修改,所有机器实时同步更新 - 高效读取配置 - 安装部署方便,使用简单 - 服务器宕机、网络中断、集群迁移等异常情况对用户透明 - 支持c/c++、shell、php、python、lua、java、go、node 等语言但是在安装的过...
阅读(1275) 评论(0)
72条 共4页1 2 3 4 下一页 尾页