`
flychao88
  • 浏览: 744126 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
./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 ...
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源代码的工程结构 如下图所示:     二、各模板简要说明 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 ...
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()   二、函数定义 “=”并不只是用来分割函数签名和函数体的,它的另一个作用是告诉编译器是否对函数的返回值进 ...
1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011¼
以下是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官网进行配置既可。 1、准备Zookeeper环境我们使用的是zookeeper-3.5.0版本。 使用./zkServer.sh start命令启动Zookeeper 使用ps -ax | grep zookeeper命令,出现下图所示:
1、Broker配置   2.Consumer主要配置
Global site tag (gtag.js) - Google Analytics