自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 kafka 消费者消费过程解析

消费者消费过程解析cousumer 向boker 集群提交连接请求,返回 broker controller 的通信urlconsumer 指定要消费的topic 后, 向broker bontroller提交 消息请求broker controller 将consumer 分配一个或者多个 partition leader 。并且将对应的parittion的offset 发送给 con...

2019-11-21 13:48:44 1128

原创 kakka 消息写入工作原理

消息路由策略productor 选取 partition 分区的策略(broker contorller 将当前 topic 所有的partition leader 返回给 productor )直接指定了partition,则直接写入到partition没有指定paritition,但是指定了key,通过key的hash值与 partition 数量取模,该取模的结果就是要选...

2019-11-21 13:31:55 969

原创 zookeeper 在kafka 中的作用

broker controller选举zk中存放有broker 节点的配置信息和controller节点的配置信息使用zk命令 ls /brokers/idszk会根据监听父节点的子节点列表来进行controller的选举*topic中partition信息的存储使用 zk 命令 ls /brokers/topics/city/partitions ,get /brok...

2019-11-21 12:56:17 441

原创 kafka 基本概念

应用场景日志聚合,一般kafka 使用来记录日志信息。限流削峰,当大量数据同时请求到服务的时候,可以造成服务宕机,直接将消息放到kafka,然后对应服务根据规则取读取。高吞吐率顺序读写(partition中的消息是顺序读写的。)零copy批量发送压缩消息基本术语broker kafka机器节点topic 主题 逻辑上概念,来划分消息所属的类parti...

2019-11-21 12:54:37 889

原创 Zookeeper 在 kafka中的主要作用

broker controller选举zk中存放有broker 节点的配置信息和controller节点的配置信息使用zk命令 ls /brokers/idszk会根据监听父节点的子节点列表来进行controller的选举*topic中partition信息的存储使用 zk 命令 ls /brokers/topics/city/partitions ,get /brok...

2019-11-21 12:49:55 284

原创 kafka 基本概念

应用场景日志聚合,一般kafka 使用来记录日志信息。限流削峰,当大量数据同时请求到服务的时候,可以造成服务宕机,直接将消息放到kafka,然后对应服务根据规则取读取。高吞吐率顺序读写(partition中的消息是顺序读写的。)零copy批量发送压缩消息基本术语broker kafka机器节点topic 主题 逻辑上概念,来划分消息所属的类parti...

2019-11-21 12:26:03 106

原创 JIT即时编译器

静态编译,动态编译,动态解释静态编译: c 程序运行前,将代码编译成机器码,也叫事前编译动态编译: JIT编译器,程序运行时,将java字节码编译成机器码动态解释: 程序运行过程中,逐行将字节码解释成机器码为什么需要JIT编译器和解释器并存?编译器,适用于热点代码,不用每次都逐行解释,但是编译后的结果需要放到方法区中,占用内存。解释器,不用占用内存,但是每次都编译,效率...

2019-11-01 17:36:57 365

原创 golang 接口的使用以及注意事项

1.隐式接口从接口的实现中解耦了定义,这样接口的实现可以出现在任何包中,无需提前准备。2.接口类型的变量可以保存实现了所有方法的类型的值3.接口值ye可以在函数中当做参数传递4.即便接口内的具体值为 nil,方法仍然会被 nil 接收者调用。(在java中会因为空指针抛出异常.)5.空接口可保存任何类型的值。因为任何类型的值都实现了零个方法,因此interface{}经常被做参数传...

2019-02-14 21:02:11 374

原创 go中 值传递和引用传递

1.值传递 传递给函数的是值得副本,引用传递,传递得是地址得副本。地址值copy,数据量小。值copy,数据量大,效率低。2.值类型和引用类型值类型:基本数据类型 ,数组,结构体引用类型:指针,切片,map,chan,接口3.使用示例type Vertex struct { X, Y float64}//指针接收func (v *Vertex) Scale(f flo...

2019-02-14 18:24:20 533

原创 golang 变量声明

1.声明方式 三种 //只声明var name string//声明并赋值var name ="xxx" //短声明name := "xxxxx"2.不同的声明方式各有千秋第一种:给定了变量类型,不能更换变量类型,便于维护第二种:编译期类型推倒得出变量类型,利于代码的灵活重构第三种:短声明 ,只能使用与函数和更小的代码块中。同时多变量的时候可以被覆盖声明。...

2019-01-08 10:11:42 190

原创 golang 错误处理

1.defer recover 这种处理的好处是程序不会轻易的挂掉,代码更加健壮func test(){defer func(){ err := recover() if err != nil{ fmt.println("err=",err)}}num1 :=100num2 :=0res := num1/num2}2. 自定义错误e...

2019-01-07 14:24:57 90

原创 golang 包的使用注意事项

1.一个包对应着一个文件夹,通常情况下 文件的报名和文件所在的文件夹名称一致,小写字母。2.当需要引用其他包的函数 import(“包名”)3.import 的时候 路径是从 $GOPATH 的src 下开始的,但是不带src。4.为了能让其他包的文件访问到本包的函数 ,函数的首字母需要大写5.包的名称太长,可以起一个别名6.同一个包下,不能又相同的函数名7.编译成可执行的...

2019-01-07 14:06:42 129

原创 golang 值类型与引用类型的区别

1最本质的区别值类型:内存中变量存储的是具体的值 比如: var num int  num存放的是具体的int值 但是变量在内存中的地址可以通过 &num 来获取引用类型:变量直接存放的就是一个地址值,这个地址值指向的空间存的才是值。例如 var ptr *int =& num 2.值类型,引用类型都包括哪些基本的数据类型 int系列,float系列,b...

2019-01-07 13:39:35 1705

原创 golang环境变量 go build go run

1.什么是SDK?software development kit  软件开发工具包 提供给开发人员使用的工具包2.GOROOT 制定的sdk的安装路径,并将sdk的bin目录添加到Path3.GOPATH 工作目录,我们go项目的工作路径。4.go run 和 gu bulid的区别 与关系go run main.go 会编译 并执行对应的文件。go build main...

2019-01-07 13:28:43 2041

原创 js 面向对象编程的继承

父类构造函数function Animal(){ this.species ='动物';}字类构造函数function Cat(name){ Animal.call(this,arguments); this.name=name;}创建字类对象调用父类中的方法,看看效果var a = new Cat("xiaohua");console.l...

2018-11-02 15:35:36 87

原创 go闭包

知道js闭包的肯定能非常快速的了解go的闭包,非常类似闭包的概念:是在其语法上下文中引用了自由变量的函数(太官方)先解释下作用域:每个变量都有自己的作用域,如果找不到需要的变量则会继续向上查,直到找到为止,遇到的问题就是内部的能访问外包的变量,但是外层无法访问内层的变量,如何能实现外层访问内层的变量,则就是闭包。package mainimport ( "fmt")fun...

2018-10-29 17:47:35 107

原创 go 指针和地址值的区别

1.很多初学者会把指针*和地址值&混为一谈,下面区分下内存地址:是每个字节单元的唯一编号。指针:指针是一个实体,并且会分配内存,相当于一个专门用来保存地址的整形变量。具体代码示例:package mainimport ( "fmt")func main() { x := 10 var p *int = &x //获取x的地址,然后保存到指针类型的变...

2018-10-29 17:19:28 2241

原创 go 中make函数和new的区别

引用类型特指slice,map,channel 这三种预定义类型引用类型相比数组,变量等 除了内存分配外,还必须初始化一系列属性,指针,长度,数据队列等。内置函数new 只管分配内存,并不关心内部的构造和初始化的方式。make 函数 创建的时候,编译器会自动转成目标类型专用的创建函数,以确保内存的分配和相关属性的初始化。所以引用类型直接就是make 创建 不用纠结 ...

2018-10-29 17:06:20 81

原创 go语言接口类型

接口类型使自身也是一种结构类型,但是编译器对其做了一些限制。type iface struct{ tab *itab //类型信息 data unsafe.Pointer //实际对象指针}编译器是根据方法集来判断是否实现了接口,请看下面试例如何查询当前结构体的方法集?func methodSet(a interface{}) { t := reflect.TypeOf...

2018-10-22 18:39:22 207

原创 使用git创建本地分支然后提交到远程分支,最后提交合并申请的流程

* git 使用的正确方式就是如标题所示,一般不会直接将代码提交到master分支下面简单描述下使用git bash 命令行的方式来操作//从git clone 项目到本地git clone url// 查一下git库的状态git status//查一下分支情况git branch -a//创建本地分支git branch branchName//将本地分支推送到...

2018-10-17 18:45:54 4228

转载 go 语言爬取百度贴吧中的内容

涉及到的知识点有 信道chan ,切片的使用 ,os,http 包的使用package mainimport ( "fmt" "net/http" "os" "strconv")func pachong(start, end int) { //明确爬的地址 url := "https://tieba.baidu.com/f?kw=%E6%AE%B5%E5%AD%90&a...

2018-10-17 12:48:20 94

原创 js函数对象的小demo

js面向对象编程学过java的都知道对象,类的区别以及在代码中的相关使用,但是js中没有类的概念,只有对象的概念,下面附上代码function ptotoTest(name,age){ this.name = name; this.age = age;};ptotoTest.prototype.sex= "male"var demo2 = new ptotoTest("zha...

2018-10-16 21:51:39 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除