<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[microGP的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/microGP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; microGP]]></copyright><item><title><![CDATA[一次K8S实操相关的实用笔记，希望能帮助大家填点坑]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/127531508</link><guid>https://blog.youkuaiyun.com/microGP/article/details/127531508</guid><author>microGP</author><pubDate>Wed, 26 Oct 2022 14:14:10 +0800</pubDate><description><![CDATA[Sealos 是一个 Go 语言开发的简单干净且轻量的 K8S 集群部署工具，Sealos 能很好的支持在生产环境中部署高可用的 K8S 集群。以上就是我这次去客户现场操作生产环境 K8S 的一点心得和经验，后续有新的内容我还会继续分享。这次的经历再次印证了只有在生产环境下真实的分析和解决问题，才会更深刻的学习知识并积累相关的经验。文章到这里就结束了，最后路漫漫其修远兮，大数据之路还很漫长。]]></description><category></category></item><item><title><![CDATA[从曾经的一家独大到现在的群雄逐鹿，大数据时代的数据库圈为啥如此之乱？]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/127246792</link><guid>https://blog.youkuaiyun.com/microGP/article/details/127246792</guid><author>microGP</author><pubDate>Mon, 10 Oct 2022 16:13:33 +0800</pubDate><description><![CDATA[天下合久必分，分久必合；江山代有人才出，各领风骚数百年这些古语显然也适用于数据库的市场。相对于数据量迅速膨胀这个表象之外，数据类型复杂度的提升以及业务场景的细分才是当今数据库市场百花齐放的根本原因。这也是技术发展的必然，作为程序员的我们必然是痛并快乐着。在技术发展历史的洪流前，我们无力阻挡，只能顺势而为了，活到老学到老看来要真的成为程序员的座右铭了。文章到这里就结束了，最后路漫漫其修远兮，大数据之路还很漫长。]]></description><category></category></item><item><title><![CDATA[我可能永远也没办法成为全栈工程师了，看看你还差多少？]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/126866309</link><guid>https://blog.youkuaiyun.com/microGP/article/details/126866309</guid><author>microGP</author><pubDate>Thu, 15 Sep 2022 10:30:32 +0800</pubDate><description><![CDATA[曾几何时，作者的理想也是做一个全栈工程师。但是十年之后笔者才发现，原来当初刚刚怀揣这个理想的时候竟然是离目标最近的时候。这里面固然有作者水平有限的问题，但是更深层次上的是技术和业务的发展速度已经大大的超出了预期。此一时彼一时，当前的技术广度大大增加，而技术密度却逐渐降低。一招鲜吃遍天下或者一个架构搞定一个行业的时代早已不复存在了。而此时的全栈已经很难和当初的全栈相提并论，能做到细分领域的全栈或者一专多能已经相当不易了。但是理想还是可以有的，能不能实现不重要，能作为前进的动力就好。]]></description><category></category></item><item><title><![CDATA[一次logstash的实践解锁了如此多的玩法....]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/126410000</link><guid>https://blog.youkuaiyun.com/microGP/article/details/126410000</guid><author>microGP</author><pubDate>Thu, 18 Aug 2022 17:20:04 +0800</pubDate><description><![CDATA[上文就是使用logstash实现整个需求的全过程，可以看到，需求虽小，但是涉及到的问题和内容还是很丰富的，logstash常规的问题基本上都遇到了。但这也是件好事，毕竟这样后续再次使用logstash的时候试错成本就会低很多。只要能正常的用起来，logstash的效率以及稳定性还是比我们手写的软件强很多，更重要的是节省了我们很多的开发以及测试工作量。虽然如此，但是logstash也有自己的缺点。其中最让人诟病的就是logstash耗资源较大，运行占用CPU和内存高。...]]></description><category></category></item><item><title><![CDATA[位图BitMap不好用？那来看看进化版本的RoaringBitmap，包您满意]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/126280225</link><guid>https://blog.youkuaiyun.com/microGP/article/details/126280225</guid><author>microGP</author><pubDate>Thu, 11 Aug 2022 10:30:12 +0800</pubDate><description><![CDATA[到底什么是RBM，这里直接引用网上的定义：从上述的定义可以看出，RBM还是使用到了BM，只是在位图的的基础上进化成了高效压缩位图，从而达到了高性能以及更广泛的使用场景。看到上面的处理逻辑，大家可能会感到疑惑，为什么会选择4096这个阈值呢？其实也很简单，看下面这张图：从上图可以看出 ArrayContainer 和 BitmapContainer 的内存占用随元素个数增加的变化曲线。理论上来说两条线的交点就是整个临界点，在这个点之前 ArrayContainer 占用的内存更少；...]]></description><category></category></item><item><title><![CDATA[抗战电影中出场率很高的边三轮为什么能在软件界能混的风生水起]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/126221557</link><guid>https://blog.youkuaiyun.com/microGP/article/details/126221557</guid><author>microGP</author><pubDate>Mon, 08 Aug 2022 09:42:15 +0800</pubDate><description><![CDATA[从上文可以看出，边车模式其实就是在业务系统这个驾驶员实现业务逻辑的基础上，加了个边车，然后根据需求搭配不同的控制逻辑，从而达到这个业务实现以及服务治理相结合的方式。这样做的好处是在开发以及运维人员之间做了一个很优雅的任务划分，开发人员集中精力完成业务逻辑的开发，运维人员集中精力完成整个的服务治理即可，两方之间只要接口不变，其余都可以做双方无感知的升级与修改，提供了强大的兼容性和扩展性，真正做到研发与运维解耦合，各司其职。......]]></description><category></category></item><item><title><![CDATA[三十年河东三十年河西，人生如此，大数据处理亦是如此]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/125913823</link><guid>https://blog.youkuaiyun.com/microGP/article/details/125913823</guid><author>microGP</author><pubDate>Thu, 21 Jul 2022 15:44:16 +0800</pubDate><description><![CDATA[从上文可以看出，在大数据的世界里，没有什么是一成不变的，每个技术都有自己的生命周期，三十年河东三十年河西的场景在大数据中屡见不鲜。当前炙手可热、众星捧月，可能几年后就销声匿迹，无人问津了。所以，在大数据的世界中想精通一门技术然后躺平是不切实际的。只有不停的学习，不停的进步，吸收先进的技术和思想，才能让自己保持竞争力，才不会在残酷的竞争中被淘汰。大数据的世界中唯一不变的就是变化，拥抱变化才能让自己立于不败之地。这不仅是大数据技术的生存之道，更是大数据从业者的生存之道。httpshttps。...]]></description><category></category></item><item><title><![CDATA[从中国封建历史的发展来理解云计算、雾计算、边缘计算以及云原生之间的关系]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/125620809</link><guid>https://blog.youkuaiyun.com/microGP/article/details/125620809</guid><author>microGP</author><pubDate>Tue, 05 Jul 2022 15:26:38 +0800</pubDate><description><![CDATA[互联网的快速发展，带来了一大批新的名词，这次名词的更新换代的速度也是快的惊人，往往一波未平一波又起，使得大家不能墨守成规，必须不断学习才能赶得上科技和技术的发展潮流。计算机行业更是如此，可能真的要实践活到老学到老的古训了。精通一个技术然后躺着赚钱是不存在的，因为可能几年后这项技术就被淘汰无人问津了。所以千万别再说计算机的高薪如何的不合理。计算机行业只能算门槛不低且付出和产出相对成正比的行业。回到本文的标题，如果问大家这几个名词你听说过吗？大部分人肯定会说：“Yes，I do!”。但是如果让你说清楚他们都是什]]></description><category></category></item><item><title><![CDATA[磨刀不误砍柴工—ElasticSearch的schema详解]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/125501544</link><guid>https://blog.youkuaiyun.com/microGP/article/details/125501544</guid><author>microGP</author><pubDate>Tue, 28 Jun 2022 14:26:32 +0800</pubDate><description><![CDATA[schema即元数据，自从数据库诞生的那一天，这个东西就作为数据库最重要的组成部分而出现了。schema就如同现实世界中的配方或者图纸，被数据库用来生产和管理数据。由于RDS的快速发展以及普及，schema已经成为数据库的标配以及重要的设计部分。好的schema设计以及成为了一套好的数据库系统不可或缺的部分。围绕schema的各种原则和规范也应运而生，如著名的数据库三大范式，都是为了帮助数据库设计者和使用者能更高效的使用和维护数据库。彼时，将schema比喻成是一个数据库的灵魂都不为过。但是，随着NOSQL]]></description><category></category></item><item><title><![CDATA[elasticsearch的硬盘存储表现真的惨不忍睹吗？其实没那么糟糕！]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/125484250</link><guid>https://blog.youkuaiyun.com/microGP/article/details/125484250</guid><author>microGP</author><pubDate>Mon, 27 Jun 2022 15:06:58 +0800</pubDate><description><![CDATA[ElasticSearch在当今NOSQL中也算独树一帜的存在了，借助于强大的全文搜索能力以及本身具备的多维度搜索以及聚合能力，再加上母公司Elastic公司的良好运作以及ELK体系的普及，使得ElasticSearch在很多场景下都是NOSQL不二的选择。但是所谓人红是非多，再加上NOSQL数据库都有自己的优缺点和适用场景，没办法做到One Stack to Rule Them All，所以ElasticSearch的很多缺点也同样会被大家拿到台面上审视和批评。在这其中除了跨表无法join查询之外，最大的]]></description><category></category></item><item><title><![CDATA[要做出高品质的docker镜像，一个靠谱的dockerfile必不可少！]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/125422139</link><guid>https://blog.youkuaiyun.com/microGP/article/details/125422139</guid><author>microGP</author><pubDate>Thu, 23 Jun 2022 10:22:50 +0800</pubDate><description><![CDATA[上文简单地梳理了下docker的知识体系，并通过dockerfile了解了docker镜像是如何从0到1的，而本文会在上文的基础上来说明下docker镜像是如何从1到2的。毕竟做出镜像是第一步，而做出高质量的镜像才是我们最终的目的。本文从高质量docker镜像的目标，以及为了达到这些目标，dockerfile都需要做哪些优化两个方面作为切入点，来见证一个高质量的docker镜像是如何诞生的。首先，衡量docker镜像质量的参数主要性能，大小以及安全性三个角度来更快的构建速度更小的Docker镜像大小更少的D]]></description><category></category></item><item><title><![CDATA[知识点-初识Docker&DockerFile知识点各种整理]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124961025</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124961025</guid><author>microGP</author><pubDate>Wed, 25 May 2022 10:22:54 +0800</pubDate><description><![CDATA[前言

上周事情比较多，逃了一次更，很是遗憾。不过虽然没更新文章，但是还是思考了下后续如何来记录以及分享知识。

其实在很多时候会遇到并解决一些小问题，这些小问题单拿出来写一篇文章可能并不是很合适。但这却是日常解决问题以及知识学习的常态，如果直接放弃掉却又很可惜。

再加上很多时候很忙的话，写一篇长文加上画画图可能需要几个小时的时间，这个时间是很难保证的。

所以针对上面的情况，我决定后续的记录以及分享通过简单的知识点以及系统的文章两种方式来推进。

知识点针对的是散碎的知识的总结，适合利用零散的时间来进行]]></description><category></category></item><item><title><![CDATA[Kafka的安全性、幂等性以及有序性，这些面试常客你都掌握了吗？]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124625946</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124625946</guid><author>microGP</author><pubDate>Sat, 07 May 2022 10:47:25 +0800</pubDate><description><![CDATA[名词解释

相信做过数据处理的小伙伴们对于kafka肯定是熟悉的。基础的kafka知识这里就不过多陈述了。今天主要来讲一下kafka的几个特性，下面先简单解释下这几个特性的含义：


	安全性：数据从producer中写入到kafka以及consumer从topic中消费数据，数据都不会丢失。
	
	
	幂等性：数据在kafka的流程中既不会被重新生产，也不会被重复消费。这也是实现exactly-once语义的基础。
	
	
	有序性：由于kafka是顺序消费，所以kafka的有序性主要体现在生产者写入ka]]></description><category></category></item><item><title><![CDATA[Elasticsearch这几个很常见却很容易答错的问题，你都能答对吗？]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124495028</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124495028</guid><author>microGP</author><pubDate>Fri, 29 Apr 2022 14:24:53 +0800</pubDate><description><![CDATA[前言
elasticsearch发展至今，已经发展到7.X版本了，而其中的小版本更是不胜枚举。而每个版本的发布就会带来新的特性的加入以及旧的特性的修改，这就造成了elasticsearch的配置和使用方法不能一概而论。

在这个背景下，很多过时的使用方法以及配置在新版本就不再适用了；另外很多大家在其他NOSQL上习以为常的操作或者想法，也被平行挪到了elasticsearch上，这就造成了很多的谣言以及留言，本文就针对几个比较常见的问题进行下澄清，帮助大家去伪存真，更好的理解和使用elasticsearc]]></description><category></category></item><item><title><![CDATA[一个HBase查询问题引发的思考，作为HBase使用者这个问题你知道答案吗?]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124348673</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124348673</guid><author>microGP</author><pubDate>Fri, 22 Apr 2022 16:20:12 +0800</pubDate><description><![CDATA[前言

讲解HBase事务的文章很多，这里就不过多赘述了，大家应该都知道是通过MVCC实现的。但是今天这篇文章的背景是一个同事和我讨论一个问题引发的，这个问题使我重新梳理下这块内容并作为记录和大家分享。

下面先来看看这个问题：


HBase的查询流程是：先查询MemStore，查不到则查询BlockCache，还没有则查询HFile，再将查询到的数据放入BlockCache。

请问是不是存在这么一种情况，假如有一条数据id=1，name='张三'，当被查询时，数据被放入blockCache中，后来数据]]></description><category></category></item><item><title><![CDATA[大数据组件多租户资源隔离方案]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124314346</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124314346</guid><author>microGP</author><pubDate>Thu, 21 Apr 2022 10:03:09 +0800</pubDate><description><![CDATA[背景

为了配合公司产品K8S化，方便产品快速扩展以及部署，需要对当前的大数据组件进行相关的多租户以及资源隔离的配置，组件暂时包含但限于HBase、ElasticSearch、Kafka和Redis。

下面将从不同角度对上面提到的四个组件进行多租户以及资源隔离方案的描述，并根据需求选取效果明显且性价比高的方案进行适配与实现。

正文

目标


	实现单集群支持多租户，租户之间相互不影响
	
	
	能够快速方便的管理单租户的数据
	
	
	对当前已经存在的产品代码和架构的侵入在可控范围之内尽量的小
	
方]]></description><category></category></item><item><title><![CDATA[漫谈RocksDB(四)存储结构——翩若惊鸿，婉若游龙]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/124148983</link><guid>https://blog.youkuaiyun.com/microGP/article/details/124148983</guid><author>microGP</author><pubDate>Wed, 13 Apr 2022 15:26:04 +0800</pubDate><description><![CDATA[前言

前面几个章节已经分别说了下RocksDB的基础概念和相关操作，下面来说一说RocksDB的存储结构，根据文件的存储结构再去回过头了解下RocksDB的相关操作。

正文



文件介绍


	*.log: 事务日志用于保存数据操作日志，可用于数据恢复
	
	
	*.sst: 数据持久换文件（此处的例子没有生成sst文件是因为第一次写数据，数据量小没触发flush操作，数据都在内存的MemoryTable中）
	
	
	MANIFEST：数据库中的 MANIFEST 文件记录数据库状态。Compact]]></description><category></category></item><item><title><![CDATA[K8S中的学区招生简章和学区房—污点和容忍]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/123918937</link><guid>https://blog.youkuaiyun.com/microGP/article/details/123918937</guid><author>microGP</author><pubDate>Sat, 02 Apr 2022 14:13:22 +0800</pubDate><description><![CDATA[前言

在刚开始接触到K8S的时候，曾经遇到了一个卡住我两天的一个问题，情况就是我要创建一个三节点的zookeeper，但是创建后发现只有两个节点能够正常调度，有一个节点总是无法调度，如下图所示：



当时一直通过日志想了解到底是哪里的问题，结果后来经高人指点才知道是K8S的亲和性以及污点造成的。具体的原因是zookeeper的yaml文件中由于亲和性的配置，导致zookeeper的实例一个节点上只能有一个，而5台机器的K8S集群，有三台机器被打上了污点，导致无法被调度，这就造成了三个zookeeper实]]></description><category></category></item><item><title><![CDATA[K8S部署方式选择——没有最好的，只有最合适的]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/123890275</link><guid>https://blog.youkuaiyun.com/microGP/article/details/123890275</guid><author>microGP</author><pubDate>Fri, 01 Apr 2022 10:00:43 +0800</pubDate><description><![CDATA[前言

前面几篇文章讲解了K8S相关的基础知识，但是忘记说了应该怎么去部署K8S的相关组件和服务。今天利用这篇文章补充下。

先不考虑K8S的方式，先考虑下在CentOS下我们是如何安装软件的，常规的方式其实就是两种：


	下载tar包使用命令：tar -zxvf xxxx.tar来进行解压安装，并配置相关的环境变量，修改相关的系统参数来完成软件的安装。
	
	
	使用centos自带的yum(rpm)进行安装，当你在使用tar命令进行一顿安装配置的时候，一个yum install xxxx可能会让你感觉]]></description><category></category></item><item><title><![CDATA[K8S以及Kubesphere离线部署方案]]></title><link>https://blog.youkuaiyun.com/microGP/article/details/123689238</link><guid>https://blog.youkuaiyun.com/microGP/article/details/123689238</guid><author>microGP</author><pubDate>Wed, 23 Mar 2022 16:25:44 +0800</pubDate><description><![CDATA[本篇文档描述kubesphere的离线部署过程，kubesphere的版本为3.1.1，kubernetes的版本为1.20.6，其他版本可能过程略有出入。

系统要求


			系统
			
			
			最低要求（每个节点）
			
		Ubuntu16.04, 18.04
			CPU: 2 核，内存：4 G，硬盘：100 G
		DebianBuster, Stretch
			CPU: 2 核，内存：4 G，硬盘：100 G
		CentOS7.x
			CPU: 2 核，内存：4 G，硬盘...]]></description><category></category></item></channel></rss>