- 博客(28)
- 收藏
- 关注
原创 Kafka API
Kafka API相关代码在:Kafka学习代码:https://gitee.com/zyp1998/kafka-learning-code4.1 Producer API4.1.1消息发送流程Kafka的Producer发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main线程和Sender线程,以及一个线程共享变量——RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中
2020-11-14 17:07:30
175
原创 Kafka架构深入
Kafka架构深入3.1Kafka工作流程及文件存储机制Kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。topic是逻辑上的概念,而partition是物理上的概念,每个partition对应于一个log文件,该log文件中存储的就是producer生产的数据。Producer生产的数据会被不断追加到该log文件末端,且每条数据都有自己的offset。消费者组中的每个消费者,都会实时记录自己消费到了哪个offset,以便出错恢复时,从上次的位置继续消费
2020-11-14 17:06:56
247
原创 Kafka概述
Kafka概述1.1定义Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。1.2 消息队列1.2.1传统消息队列的应用场景使用消息队列的好处1)解耦允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2)可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。3)缓冲有助于控制和优化数据流经过系统的速度,
2020-11-14 17:03:11
155
原创 Kafka命令行操作
Kafka集群的启动:先启动zookeeper集群:注:可以编写zookeeper集群启动脚本/opt/zookeeper-1/bin/zkServer.sh start/opt/zookeeper-2/bin/zkServer.sh start/opt/zookeeper-3/bin/zkServer.sh start使用如下命令判断是否启动成功:/opt/zookeeper-1/bin/zkServer.sh status/opt/zookeeper-2/bin/zkServer.sh
2020-11-14 17:01:05
128
原创 docker-compose测试搭建redis集群
docker-compose测试搭建redis集群#此处使用了自定义的网络,需要新建一个docker网络myredis并指定网关(192.165.0.1)和子网(192.165.0.0/16)docker network create --driver=bridge --gateway=192.165.0.1 --subnet=192.165.0.0/16 myredis#删除此文件夹rm -rf /mycontainerdata/#创建6个redis配置for port in $(seq 1
2020-11-14 16:56:43
312
原创 docker搭建redis集群
docker搭建redis集群:1、创建一个docker网络:docker network create --driver=bridge --gateway=192.165.0.1 --subnet=192.165.0.0/16 myredis(网络名)2、使用docker创建一个3主3从的redis集群#删除此文件夹rm -rf /mycontainerdata/#创建6个redis配置文件for port in $(seq 1 6); \do \mkdir -p /mycontain
2020-11-14 16:56:11
101
原创 docker网络
docker网络(docker network)新建一个docker网络:docker network create --driver=bridge --gateway=192.165.0.1 --subnet=192.165.0.0/16 myredis(网络名)参数说明:–driver:驱动程序来管理网络(桥接模式)–gateway:主子网的IPv4或IPv6网关–subnet:代表网段的CIDR格式的子网查看网络信息:docker network inspect myredis把
2020-11-14 16:55:41
132
原创 docker本地镜像发布到阿里云
本地镜像发布到阿里云1、本地镜像发布到阿里云流程阿里云ECS Docker生态如下图所示:镜像的生成方法通过DockerFile构建从容器创建一个新的镜像:docker commit [OPTIONS] 容器ID [IMAGE:[TAG]]参数说明:-a:提交的镜像作者;-m:提交时的说明文字将本地镜像推送到阿里云登录阿里云创建自己的镜像仓库:创建成功后页面会有详细的操作:将镜像推送到Registry#连接到阿里云的仓库sudo docker login --us
2020-11-14 16:54:21
112
原创 docker常用安装
Docker常用安装:总体步骤:搜索镜像拉取镜像查看镜像启动镜像停止容器移除容器安装redis:从docker hub(阿里云加速器)拉取redis镜像到本地标签为5.0:使用redis5.0镜像创建容器(也叫运行镜像):使用镜像:#主机的这个文件(/zyp/myredis/conf/redis.conf)被载到docker中redis的配置文件,(/zyp/myredis/data)被挂载到redis的持久化文件docker run -p 6380:6379 -v /zyp/
2020-11-14 16:53:18
68
原创 dockerFile解析
DockerFile解析概述Dockerfile是用来构建Docker镜像的文件,是由一系列命令和参数构成的脚本。构建三步骤:编写Dockerfile文件docker builddocker run文件是什么样的?以CentOS为例:Docker官网:DockerFile构建过程解析:1、Dockerfile内容基础知识:每条保留字指令都必须为大写字母且后面需要跟随至少一个参数指令按照从上到下,顺序执行#表示注解每条指令都会创建一个新的镜像层,并对镜像进行提交2、D
2020-11-14 16:46:34
199
原创 docker容器数据卷
5、Docker容器数据卷1、概念:Docker的理念:将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。docker容器数据卷有点类似我们Redis里面的rdb和aof文件2、用途卷就是目录或文件,存在于一个或多个容器中,由docke
2020-10-25 16:43:06
179
原创 docker镜像
Docker镜像1、镜像的概念镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件。1、UnionFS(联合文件系统)Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesys
2020-10-25 16:32:59
126
原创 docker常用命令
Docker常用命令1、帮助命令docker version:查看docker的版本信息docker info:显示系统相关信息docker --help:显示docker命令的详细用法2、镜像命令docker images [options]:列出本地主机上的镜像options(参数说明):-a:列出本地所有的镜像(含中间映像层)-q:只显示镜像ID–digests:显示镜像的摘要信息–no-trunc:显示完整的镜像信息案例:#列出本地主机上的镜像[r
2020-10-25 16:29:03
248
原创 docker简介
Docker简介Docker概念:1、问什么会有docker的出现?一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样
2020-10-25 16:24:32
150
转载 kafka_zookeeper_配置文件配置
kafka_zookeeper_配置文件配置原文server.properties配置如下:broker.id=0num.network.threads=2num.io.threads=8socket.send.buffer.bytes=1048576socket.receive.buffer.bytes=1048576socket.request.max.bytes=104857600log.dirs=/tmp/kafka-logsnum.partitions=2log.retent
2020-10-25 16:16:45
1312
原创 Kafka集群配置
Kafka集群配置参考:参考文章https://zhuanlan.zhihu.com/p/136758040?from_voters_page=true因为kafka集群要配合zookeeper集群一起使用,所以要先搭建zookeeper集群1、搭建zookeeper集群首先下载zookeeper,官网下载,建议镜像网站下载(速度快)下载完成之后解压tar -zxvf 对应的zookeeper的压缩包将zookeeper复制一份,命名为zookeeper-1将zookeeper-1中的zo
2020-10-25 16:13:26
222
转载 java并发编程volatile关键字解析
Java并发编程:volatile关键字解析 原文出处:http://www.cnblogs.com/dolphin0520/Java并发编程:volatile关键字解析volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatil...
2020-10-18 23:00:58
143
1
转载 java多线程知识合集
java多线程知识合集原文:https://blog.csdn.net/boker_han/article/details/82918881 https://blog.csdn.net/boker_han/article/details/79466524线程的生命周期线程是一个动态执行的过程,它也有一个从生产到死亡的过程。下图显示了一个线程完整的生命周期。新建状态:使用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序start()这个
2020-10-18 22:42:49
194
1
转载 Redis哨兵详解
实现故障恢复自动化:详解Redis哨兵技术原文出处:http://www.redis.cn/articles/20181020001.html在前面分享的《读完这篇文章,就基本搞定了Redis主从复制》中我们曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。**注:**本文内容基于Redis 3.0版本。一、作用和架构1
2020-10-17 11:14:03
484
原创 Redis的事务
Redis的事务1、Redis的事务是什么?可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不允许加塞2、用途一个队列中,一次性、顺序性、排他性的执行一系列命令3、常用命令案例:#正常执行#multi标记一个事务块的开始127.0.0.1:6379> multiOK#操作进入队列127.0.0.1:6379> set id 12QUEUED127.0.0.1:6379> get idQUEU
2020-10-17 11:04:31
85
原创 Redis的发布订阅
Redis的订阅发布1、什么是Redis的订阅发布进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。订阅/发布消息图:命令:案例:8850)]案例:
2020-10-17 11:03:27
65
原创 Redis的持久化
Redis的持久化1、RDB(Redis DateBase)RDB持久化是什么:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是snapshot快照,它恢复时是将快照文件直接读到内存里。RDB过程图:Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那么RDB方
2020-10-17 11:01:36
290
原创 Redis的复制
Redis的复制(master/Slave)1、redis的复制是什么?redis的复制就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,Master以写为主,slave以读为主2、redis的复制作用读写分离容灾恢复3、如何实现Redis的主从复制1、配置从库不配置主库(默认自己就是主库)2、从库配置:slaveof主库IP主库端口(或者使用slaveof命令)每次与master断开之后,都需要重新连接,除非你配置redis.con
2020-10-17 10:59:37
555
原创 Redis数据类型
Redis数据类型1、Redis的常用数据类型String(字符串)String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的,意思是redis的String可以包含任何数据,比如jpg图片或者序列化的对象。String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512MHash(哈希,类似java里面的Map)Redis hash是一个键值对集合。Redis ha
2020-10-17 10:55:01
75
转载 Redis常见配置
参数说明redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而M
2020-10-17 10:50:51
71
转载 Redis配置文件
Redis 配置文件详解1、redis.conf来源:位置:/opt/redis-5.0.7/redis.confUnits:单位大小写不敏感Includes:我们知道Redis只有一个配置文件,如果多个人进行开发维护,那么就需要多个这样的配置文件,这时候多个配置文件就可以在此通过 include /path/to/local.conf 配置进来,而原本的 redis.conf 配置文件就作为一个总闸。ps:如果用过struts2 开发的同学,在项目组中多人开发的情况下,通常会有多个st
2020-10-17 10:50:14
179
原创 Redis入门
1、入门概述1、Redis是什么Redis:REmote DIctionary Server (远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称之为数据结构服务器。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用Redis不仅仅支持简单
2020-10-08 22:46:21
53
原创 NoSql 入门和概述
NoSql一、NoSql 入门和概述1、入门概述1、互联网时代背景下大机遇,为什么使用nosql1、单机时代MySQL的美好年代在90年代,一个网站的访问量一般都不大,单个数据库完全可以轻松应付。在哪个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么?1、数据量的总大小一个机器放不下时2、数据量的索引(B+Tree)一个机器的内存放不下时3、访问量(读写混合)一个实例不能承受,如果满足了上述1 or 3 个,进化…2、Memcached(缓
2020-10-08 22:42:29
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人