- 浏览: 753073 次
- 性别:
- 来自: 北京
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
使用JAVA操作netty框架 -
小灯笼:
Netty源码剖析视频教程网盘地址:https://pan.b ...
使用JAVA操作netty框架 -
luckywind:
请问怎么下载那个svn上的源码啊?
本地调试Hbase源码详解 -
heng123:
Netty视频教程https://www.douban.com ...
使用JAVA操作netty框架 -
kongdong88:
Netty简单应用与线上服 ...
使用JAVA操作netty框架
文章列表
./redis-cli EVAL "$(cat /root/redis-2.8.7/lua/count.lua)" 1 links:counter
[root@iZ28a2ewhtoZ bin]# ./redis-cli SCRIPT LOAD "$(cat /root/redis-2.8.7/lua/count.lua)"
"693491b86cd84a1400c780806c3dd87715a13da8"
./redis-cli EVALSHA 693491b86cd84a1400c780806c3d ...
Twemproxy测试用例以及压测结果
- 博客分类:
- 开源工具总结
1、前端使用 Twemproxy 做代理,后端的 Redis 数据能基本上根据 key 来进行比较均衡的分布。
后端一台 Redis 挂掉后,Twemproxy 能够自动摘除。恢复后,Twemproxy 能够自动识别、恢复并重新加入到 Redis 组中重新使用。
2、Redis 挂掉后,后端数据是否丢失依据 Redis 本身的策略配置,与 Twemproxy 基本无关。
如果要新增加一台 Redis,Twemproxy 需要重启才能生效;并且数据不会自动重新 Reblance,需要人工单独写脚本来实现。
3、如同时部署多个 Twemproxy,配置文件一致(测试配置为di ...
一、kafka文件系统存储机制
1、partition存储结构说明
假如kafka集群中只有一个broker,数据文件目录为message-folder,例如创建一个topic名称为:testKJ1, partitions=4
存储路径和目录规则为:
xxx/message-folder
|--testKJ1-0
|--testKJ1-1
|--testKJ1-2
...
一、CAS简介
CAS:Compare and Swap, 翻译成比较并交换。
java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁,使用这些类在多核CPU的机器上会有比较好的性能.
CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。
今天我们主要是针对AtomicInteger的incrementAndGet做深入分析。
二、JAVA实现部分
/**
* Atomically increments by on ...
本章,我们将进入到Kafka的核心类中进行代码走读,深入分析他的存储交互和消息分发原理。
首先给大家展示一张服务端交互图,因为比较复杂我就没有再画,转发别人的一张图以供参考:
大家看完这个图以后相信有了一个整体认识,那么下面我们就重点从整体到细节的逐步分解。
一、KafkaServerStartable
在Kafka的main入口中startup KafkaServerStartable, 而KafkaServerStartable这是对KafkaServer的封装
我们使用命令行./kafka-server-start.sh -daemon ../config/ser ...
在上一章,我们跟踪了Producer源码的整体流程和一些细节,本章我们将重点跟踪Consumer的源码细节。
Consumer的配置文件如下:
Kafka Consumer配置:
group.id: 指定consumer所属的consumer group
consumer.id: 如果不指定会自动生成
socket.timeout.ms: 网络请求的超时设定
socket.receive.buffer.bytes: ...
Kafka整体结构以及模块分析
- 博客分类:
- kafka源码分析
一、Kafka源代码的工程结构
如下图所示:
二、各模板简要说明
admin:管理员模块,操作和管理topic,paritions相关,包含create,delete topic,扩展patitions
Api:该模块主要负责交互数据的组装,客户端与服务端交互数据编解 ...
在网上发现一篇非常好的文章,正好我在做Scala系列博客,于是转载到我的博客中。
在Scala中存在case class,它其实就是一个普通的class。但是它又和普通的class略有区别,如下:
1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;
本章主要讲解分析Kafka的Producer的业务逻辑,分发逻辑和负载逻辑都在Producer中维护。
一、Kafka的总体结构图
(图片转发)
二、Producer源码分析
class Producer[K,V](val config: ProducerConfig,
private val eventHandler: EventHandler[K,V]) // only for unit testing
extends Logging {
private val hasShutdown = new ...
Scala中的下划线的作用
- 博客分类:
- scala基础
1、作为“通配符”,类似Java中的*。如import scala.math._2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:a.filter(_%2==0).map(2*_)。又如要对缓冲数组ArrayBuffer b排序,可以这样:val bSorted = b.sorted(_)
4、在元组中,可以用方法_1, _2, _3访问组员。如a._2。其中句点可以用空格替代。5、使 ...
一、变量
获取变量的值是一个耗时的工作时,可以考虑使用lazy var. lazy val forLater = someTimeConsumingOperation()
二、函数定义
“=”并不只是用来分割函数签名和函数体的,它的另一个作用是告诉编译器是否对函数的返回值进 ...
【转】MYSQL出错代码列表
- 博客分类:
- 数据库
1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011¼
Kafka常用命令行总结
- 博客分类:
- kafka源码分析
以下是kafka常用命令行总结:
1.查看topic的详细信息
./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ1
2、为topic增加副本
./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassignment-json-file json/partitions-to-move.json -execute
3、创建topic
./kafka-topics.sh --create --zookeeper local ...
跟我学Kafka源码使用入门(三)
- 博客分类:
- kafka源码分析
这一节咱们主要是讨论单机版的Kafka的简单使用,关于集群方面的东西其实也非常简单,具体可以参考Kafka官网进行配置既可。
1、准备Zookeeper环境我们使用的是zookeeper-3.5.0版本。
使用./zkServer.sh start命令启动Zookeeper
使用ps -ax | grep zookeeper命令,出现下图所示:
跟我学Kafka源码配置文件简介(二)
- 博客分类:
- kafka源码分析
1、Broker配置
2.Consumer主要配置