摘要: 概述 常见的存储高可用方案的根本原理就是把数据复制到多个存储设备,通过数据冗余的方式来实现数据的可靠性。比如同一份数据,一份在城市A,一份在城市B。如果城市A发生自然灾害导致机房瘫痪,那么业务就可以直接切到城市B进行服务,从而保障业务的高可用。但是这是理想情况,一旦数据被复制并且分开存储,就涉及到了 阅读全文
posted @ 2018-12-09 19:30 Frogjie 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 什么是字节序? 什么是字节序我就不再啰嗦了,这样的文章在网上一搜一大片,而且很多写的颇有水平。我主要参考了以下3篇文章: 字节序详解:https://blog.csdn.net/ce123_zhouwei/article/details/6971544 理解字节序:http://www.ruanyi 阅读全文
posted @ 2018-12-02 12:16 Frogjie 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 概述 kafka配置参数有很多,可以做到高度自定义。但是很多用户拿到kafka的配置文件后,基本就是配置一些host,port,id之类的信息,其他的配置项采用默认配置,就开始使用了。这些默认配置是经过kafka官方团队经过严谨宽泛的测试之后,求到的最优值。在单条信息很小,大部分场景下都能得到优异的 阅读全文
posted @ 2018-11-28 23:09 Frogjie 阅读(3351) 评论(0) 推荐(0) 编辑
摘要: 概述 在平时对kafka的运维工作中,我们经常会由于某些原因去删除一个topic,比如这个topic是测试用的,生产环境中需要删除。或者我想扩容topic的同时,这个topic中的数据我不想要了,这时候删除topic,增加broker,再重新创建topic就会是比较简单的方法。但是kafka删除to 阅读全文
posted @ 2018-11-27 22:57 Frogjie 阅读(10405) 评论(2) 推荐(1) 编辑
摘要: 内存优化 1. 平时的key很有可能是md5,sha1之类的字符串。如果key直接以字符串的方式,md5需要32个字节,sha1需要40个字节。但是md5和sha1这种类型的字符串是由规律的:每个字符都是0~f。也就是说,每个字符只需要4位就可以表示。所以我们可以在把md5或者sha1当做key直接 阅读全文
posted @ 2018-11-07 22:14 Frogjie 阅读(935) 评论(0) 推荐(1) 编辑
摘要: 获取GET数据的方法 使用PHP的内置变量$_GET。GET方法传输的数据都在URL中,比如 "www.register.com:/up.php?name=frogjie&age=24"中的name和age参数。GET传输的数据是urlencode之后的。当请求到达php这边时,php会自动urld 阅读全文
posted @ 2018-10-25 22:11 Frogjie 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 今天学习librdkafka的conf配置相关的代码,学到了一个C语言代码编写的技巧。作者真的是把C语言用得出神入化。 我们平时编写C语言代码,经常会用struct类型来模拟面向对象中的class。比如我实现了下面的Student结构体 可以看到零零碎碎有十多个字段。如果我们想再把这个struct模 阅读全文
posted @ 2018-10-22 00:09 Frogjie 阅读(2399) 评论(0) 推荐(0) 编辑
摘要: 背景 php语言的高度封装和五花八门的库使这门语言很容易上手,而且开发效率比C/C++高出许多。但是也正是由于php封装度很高,一些在c语言中很简单的概念,让php这么一封装,就变得难以琢磨。比如引用,在c语言中的概念很简答, 就是两个变量名指向同一块内存。而且引用必须要你手动操作,哪个变量引用的哪 阅读全文
posted @ 2018-09-21 22:28 Frogjie 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 如何使用宏定义输出信息 C语言提供了#, ##, __VA_ARGS__等符号来帮助我们在宏定义中更好地输出信息。使用方式如下: 输出如下: #的作用是,它会在所引用的宏变量左右两边加一对引号。所以FUN1中的printf函数不会出错,因为FUN1(hello)预编译时被替换成了printf("he 阅读全文
posted @ 2018-09-11 23:40 Frogjie 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: 概述 机器负载是否正常,经常需要监控的指标有如下4个: <1> cpu <2> memory <3> IO <4> network 关于cpu的监控 a. load average,cpu的负载 linux进程的状态分类可以粗略地分为 blocking process, runnable proce 阅读全文
posted @ 2018-09-08 19:11 Frogjie 阅读(3609) 评论(0) 推荐(1) 编辑