08 2020 档案

摘要:上一篇我们聊完了kafka生产者,现在我们来聊一聊kafka中另一个重要的角色,kafka消费者。 消费者和消费者群组 kafka消费者分为消费者群组 和 消费者。每一个kafka消费者都隶属于一个kafka消费者群组。每个消费者群组可以对应一个或多个topic,每个topic内的分区只能对应消费者 阅读全文
posted @ 2020-08-31 22:12 罗斯托夫 阅读(149) 评论(0) 推荐(0)
摘要:生产者是指向kafka发送消息的程序。根据生产者使用场景的不同,对于消费者的配置也有着不同的要求。我们先来看看生产者向kafka中发送一条消息的过程。 生成数据 生产者生成消息数据,数据中包含topic, key, value。partition这四类信息。topic和value由用户指定且必须填写 阅读全文
posted @ 2020-08-25 21:32 罗斯托夫 阅读(211) 评论(0) 推荐(0)
摘要:上一篇文章里我们介绍了kafka是什么以及它所具备的优势。本篇我们介绍kafka的安装以及基本配置。 kafka的安装需要下面三个组件: jdk kafka是用java进行开发的,需要安装jdk,提供运行环境。也因此kafka可以部署在windows, mac,linux平台上。但一般还是部署在li 阅读全文
posted @ 2020-08-25 15:22 罗斯托夫 阅读(167) 评论(0) 推荐(0)
摘要:Linux/Unix的十条小准则中我认为有一定借鉴意义的部分: 允许用户定制环境 虽然会带来更高的学习成本,但能够极大的方便用户高效使用软件。 尽量使操作系统的内核小而轻量化 一方面便于移植,另一方面能够增强系统内核的稳定性。 使用小写字母并尽量简短 又臭又长的命令谁都讨厌,而且穿插大写字母会提高用 阅读全文
posted @ 2020-08-24 11:55 罗斯托夫 阅读(89) 评论(0) 推荐(0)
摘要:AUFS的全称是(Advanced Multi-Layered Unification Filesystem)他是在Union File System的基础上进行完善发展而来的。其一大特点是是用branch把不同文件系统的文件和目录“透明地”覆盖,形成一个单一一致的文件系统。这些branch或者是r 阅读全文
posted @ 2020-08-23 10:01 罗斯托夫 阅读(202) 评论(0) 推荐(0)
摘要:linux namespace技术用于帮助进程隔离出自己单独的空间,但是为了对容器进行管理,还需要对每个容器的资源进行限制,保证他们不会互相争夺资源,这就需要用到linux中的Ggroups技术。 Cgroups定义 linux Cgroups(Control Groups)提供了对一组进程及将来子 阅读全文
posted @ 2020-08-23 09:31 罗斯托夫 阅读(120) 评论(0) 推荐(0)
摘要:在工作和学习中我们往往会涉及到多个docker之间内部通信或docker与宿主主机外部通信的情况,这些都是通过docker的网络设置来实现的。下面我们就来了解下docker的网络配置,以及相关设置。 docker在默认情况下有以下三种网络配置方式,在docker安装完成后也会默认进行创建: brid 阅读全文
posted @ 2020-08-22 10:02 罗斯托夫 阅读(168) 评论(0) 推荐(0)
摘要:kafka定义 kafka本质上是一个分布式可伸缩的发布订阅系统,他为大型网站和应用提供了分布式流平台。 消息和批次 kafka的数据单元被称为消息,一个消息有一组字节数据组成,每一个消息都有一个被称为键的元数据,kafka可以根据消息的键进行mod运算从而确定该消息应该存放在kafka对应topi 阅读全文
posted @ 2020-08-22 10:01 罗斯托夫 阅读(86) 评论(0) 推荐(0)
摘要:避免强制性用户界面 过多的强制性用户界面,会使得处理交互的代码变的膨胀,消耗开发人员过多的精力在非核心功能上。 过多的用户界面会使得代码的杠杆效应下降,其他软件在调用该软件时的难度会加大。 人的处理速度远远低于计算机,太多的交互会影响软件的执行效率。 软件的定位应该使一个“过滤器”,将输入的数据进行 阅读全文
posted @ 2020-08-21 09:05 罗斯托夫 阅读(76) 评论(0) 推荐(0)
摘要:利用docker可以很方便的在一台机子上搭建kafka集群并进行测试。为了简化配置流程,我们采用docker-compose进行进行搭建。 docker环境的部署参考:https://www.cnblogs.com/Rostov/p/13494838.html docker-compose的部署参考 阅读全文
posted @ 2020-08-19 21:35 罗斯托夫 阅读(641) 评论(0) 推荐(0)
摘要:Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose使用的三个步骤如下: 使用Dockerfile定义环境。 使用 doc 阅读全文
posted @ 2020-08-19 13:51 罗斯托夫 阅读(173) 评论(0) 推荐(0)
摘要:软件的杠杆效应 亲自编写应用程序中的每一行代码,反而会显得你工作进度缓慢,效率地下。那些能够迅速有效地裁剪和组合模块地开发人员才真正拥有“就业保障”,这种能力意味着能够在很短地时间内写完很多软件。 利用他人的现成的软件,可以使自己开发的软件产生杠杆效应,软件更加稳定,高效,还能够节省出大量的时间用来 阅读全文
posted @ 2020-08-18 11:50 罗斯托夫 阅读(60) 评论(0) 推荐(0)
摘要:舍高效率取可移植性 一般情况下高效率和可移植性是不能够同时兼得的,在Linux/Unix软件的开发过程中,开发人员倾向于取可移植性而适当舍弃高效率。原因在于高效率往往意味着要与硬件进行绑定,然后计算机芯片的发展速度十分迅猛,新架构的芯片的推出速度不断提高,性能变的越来越强,价格越来越便宜。当移植到更 阅读全文
posted @ 2020-08-17 22:03 罗斯托夫 阅读(71) 评论(0) 推荐(0)
摘要:docker现在可以说是Paas界的几大主流工具之一,它的大名可以说是无人不知无人不晓。为了更好的使用docker,我决定开个坑一步步的了解docker的内部原理,并利用golang开发一个简易的docker程序。下面就让我们开始进入正题。 docker是一个基于linux namespace和Cg 阅读全文
posted @ 2020-08-16 18:15 罗斯托夫 阅读(214) 评论(0) 推荐(0)
摘要:通过编写Dockerfile文件,我们可以利用docker来制作自己的镜像文件。命令格式如下: docker build -t 镜像名 dockerfile文件所在文件夹路径 -t表明后面参数是镜像的镜像名。执行完该命令就根据Dockerfile中的配置生成了我们需要的镜像文件。 Dockerfil 阅读全文
posted @ 2020-08-14 14:29 罗斯托夫 阅读(116) 评论(0) 推荐(0)
摘要:Docker安装完成后使用docker run命令来在容器内运行应用程序。举例: docker run ubuntu:15.10 /bin/echo 'HELLO WORLD' 该命令执行如下步骤: 该命令运行名为ubuntu:15.10的镜像文件,docker首先在本地查找是hello-world 阅读全文
posted @ 2020-08-14 13:10 罗斯托夫 阅读(99) 评论(0) 推荐(0)
摘要:由于正在使用的jenkins版本过于老旧,有些插件不支持,因此需要对jenkins进行升级。现将jenkins的升级步骤记录如下: 确定jenkins war包存放位置 默认安装路径为/usr/lib/jenkins,如果该路径下不存在jenkins.war文件则通过ps -aux | grep j 阅读全文
posted @ 2020-08-13 14:25 罗斯托夫 阅读(223) 评论(0) 推荐(0)
摘要:Jenkins是一款开源的持续集成软件,将开发人员从繁琐的构建部署工作中解放出来实现自动化集成部署。同时还可以在jenkins上部署自动化测试脚本,在每次新版本构建时进行自动化测试检查是否引入新的bug。 CentOS7安装过程 安装jdk jenkins是给予java开发的项目,因此jdk是必须的 阅读全文
posted @ 2020-08-13 13:54 罗斯托夫 阅读(143) 评论(0) 推荐(0)
摘要:什么是Docker Docker是一个开源工具,它可以将你的应用打包成一个标准镜像文件,并且以容器的方式运行。Docker容器将一系列软件包装在一个完整的文件系统中,这个文件系统包含应用程序运行所需的一切:代码、运行时工具、系统工具、系统依赖,几乎所有可以安装在服务器上的东西。这些策略保证了容器内应 阅读全文
posted @ 2020-08-13 10:18 罗斯托夫 阅读(161) 评论(0) 推荐(0)
摘要:shell支持编写自定义函数,从而提高代码的可重用性,下面我们就来进行介绍。 shell函数的格式 functionname (){ command return 返回值 #return语句为可选项,如果不添加则会返回最有一个命令执行的结果 } 调用函数方式functionname 参数1 参数2 阅读全文
posted @ 2020-08-12 18:54 罗斯托夫 阅读(118) 评论(0) 推荐(0)
摘要:shell和其他编程语言一样,同样具有流程控制功能,也能够实现for,while,switch等流程控制语句。具体情形如下: if-else 命令格式如下 if condition1 then command1 command2 elif condition2 then command3 else 阅读全文
posted @ 2020-08-12 14:43 罗斯托夫 阅读(162) 评论(0) 推荐(0)
摘要:shell和其他编程语言一样也支持运算符操作。主要包含算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符。 算术运算符 + 加法 'expr $a + $b' - 减法 'expr $a - $b' * 乘法 'expr $a * $b' \ 除法 'expr $b / $a' % 取 阅读全文
posted @ 2020-08-12 11:10 罗斯托夫 阅读(388) 评论(0) 推荐(0)
摘要:shell是什么 根绝维基百科的定义。shell,一种壳层与命令行界面,是UNIX操作系统下传统的用户和计算机的交互界面,用户直接输入命令来执行各种各样的任务。Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电脑程序使用的文本文件,内容由一连串的shell命 阅读全文
posted @ 2020-08-11 23:21 罗斯托夫 阅读(1721) 评论(0) 推荐(0)
摘要:经过几天的使用,发现博客园算是国内几大博客平台中最为好用的一个平台,页面干净简洁比吃相难看的csdn高到不知道哪里去了。唯一让我不太满的地方就是页面广告和博文推荐无法关闭。好在博客园提供了定制css的功能,通过查看网页源码找到广告和博文推荐的元素名称,并在css中将其设置为不显示即可屏蔽页面中的广告 阅读全文
posted @ 2020-08-11 16:47 罗斯托夫 阅读(343) 评论(0) 推荐(0)
摘要:最近在工作中需要使用到最小二乘法对数据进行拟合,虽然以前听说过最小二乘法的大名但一直没有进行过详细的了解,借着这个机会正好研究下。 最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和来查找数据的最佳函数匹配。利用最小二乘法可以简便的求得未知的数据,并使得这些求得的数据和实际数据 阅读全文
posted @ 2020-08-11 16:10 罗斯托夫 阅读(1120) 评论(0) 推荐(0)
摘要:在win10装好wsl后发现使用apt-get安装软件时经常出现404,上网搜索发现是使用国外软件源的问题,只要将软件源成国内的地址即可。正好把过程记录下来,以备以后不时之需。 将原软件源备份 为了防止出现问题后无法还原,将原来的软件源先进行备份。ubuntu的软件源存放在 /etc/apt/sou 阅读全文
posted @ 2020-08-09 14:56 罗斯托夫 阅读(730) 评论(0) 推荐(0)
摘要:WSL可以说是win10引入的所有新功能中最让我兴奋的,通过将linux指令翻译成windows指令从而实现了在win10系统中内嵌一个linux操作系统,在win10和linux中无缝衔接,执行效率也很高。然而通过官方教程安装只能安装在系统盘,这点着实令人烦人,研究了一番之后发现了可以将WSL安装 阅读全文
posted @ 2020-08-09 14:17 罗斯托夫 阅读(1135) 评论(0) 推荐(0)
摘要:快速建立原型 每个人都无法做到全只全能,都需要在现实中进行试错和修正从而能够不断完善。这一点在软件工程领域更为明显,通过快速建立原型及时验证系统的可行性和发现系统中存在的缺陷,从而降低软件中存在的风险。 作者通过“建立第三系统”理论在阐述如何实践快速建立原型。 第一系统: 快速实现系统主要功能,此版 阅读全文
posted @ 2020-08-09 09:10 罗斯托夫 阅读(67) 评论(0) 推荐(0)
摘要:小即是美 在Unix和Linux中开发的程序只专注于某一特定的功能,软件在执行该功能时所需要的其他功能由其他已经存在的软件完成。例如当开发一个把文件A复制到文件B的程序,该软件就只专注于将A复制到B ,至于检测A,B是否存在,A中内容是否为空等其他辅助功能均由其他小程序来完成,开发的程序只执行最核心 阅读全文
posted @ 2020-08-09 07:35 罗斯托夫 阅读(59) 评论(0) 推荐(0)
摘要:测试分类 软件测试按照不同的维度可以有不同的分类方式。具体如下: 按照开发阶段划分 单元测试 测试对象时软件最小的组成部分也就是模块 测试阶段:编码后或编码前(TDD即测试驱动开发) 测试对象:模块 测试人员:开发人员或白盒测试工程师 测试依据:设计文档+代码和注释 测试方法:白盒测试 测试内容:模 阅读全文
posted @ 2020-08-09 07:33 罗斯托夫 阅读(204) 评论(3) 推荐(0)
摘要:Unix哲学 Unix/Linux自诞生之日起就将开源精神刻到了自己的骨子里,几十年间来自世界各地的无数开发者对其进行着完善和更新,使其成为极具竞争力的操作系统。同时也形成了一套软件开发哲学,主要内容如下: 小即是美 让每一个程序只做好一件事 尽快建立原型 舍高效率而取可移植性 使用纯文本文件来存储 阅读全文
posted @ 2020-08-09 07:24 罗斯托夫 阅读(133) 评论(0) 推荐(0)