- 博客(10)
- 收藏
- 关注
原创 kafka源码解读系列:深入生产者核心
本文档基于kafka client 0.8.2.2 版本api进行代码详细说明,通过对该代码的深入剖析,可以加深对kafka生产者的理解,并且能够避免该版本坑点(说实话,该版本挺坑,建议升级到0.9以上)1、版本:0.8.2.22、结构图首先,对kafka生产者内部结构进行剖析,如下图所示上图表示kafka生产者生产消息,缓存消息,发送消息的内部流程与结构说明图,按官方的说法,send方法是异步执行的,从上图可以看到在KafkaProducer的send方法被调用后,数据将缓存进入Record.
2021-03-15 14:47:29 619 2
原创 K8S实战:史上最简单的K8S环境安装
前言本教程基于sealos搭建1.18.0版本的k8s环境,sealos能够做到一条命令实现k8s集群部署,sealos官网:https://www.sealyun.com/sealos特性99年证书不依赖ansible haproxy keepalived, 一个二进制工具,0依赖离线安装,不同kubernetes版本下载对应不同版本的资源包即可,离线包包含所有二进制文件配置文件和镜像高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现几乎可兼容所有
2021-04-21 16:22:08 996
原创 Elasticsearch7系列-使用小技巧
本文档将会持续更新记录使用ES7的过程中遇到的问题以及各种小技巧,小工具;欢迎各位码又收藏es与kibana只能使用localhost访问的问题解决elasticsearch找到config/elasticsearch.yml文件,配置network.host: 0.0.0.0kibana找到config/kibana.yml文件,配置server.host: “0.0.0.0”ps -ef|grep kibana找不到进程的问题使用fuser -n tcp 5601找到进程号.
2021-04-10 17:38:20 313
原创 Elasticsearch7系列-检索语法学习
match类查询分词查询,检索前会先对搜索词进行分词,分词完毕后再逐个以分词结果去查询,只要被查询字段的分词集合中包含match字段的分词集合中任意一个设置字段为"index":"not_analyzed"后该字段数据将不会被分词,这样的话使用match就无法检索到分词查询前面提到match搜索会先对搜索词进行分词,对于最基本的match搜索来说,只要match搜索词的分词集合中的一个存在于文档中即可,例如,当我们搜索福建省福州市,搜索词会先分词为福建省和福州市,只要文档中包含福建省和福州市任意
2021-04-10 17:29:56 1133
转载 skywalking源码解析系列三 : agent启动服务分析以及性能影响
在2020年3月份开始接触skywalking到现在,使用skywalking已经一年时间,期间对内部代码进行了详细阅读,并且由于项目需要,我们已经对源码进行了二开,新增了各种个性化需求,可以说,我们对skywalking底层源码了解程度已经相对较高。本来想通过笔记对这一年来的源码阅读及理解成果进行记录,无意中发现这篇文章写得相当的好,也懒得去写了,因此直接转载,后续该系列文章会夹杂着转载与原创,欢迎各位码友交流探讨1. 简介 前2篇介绍了 agent 如何去修改我们的业务代码,以及如何去收集、.
2021-03-17 14:02:42 3559
转载 skywalking源码解析系列二 : agent采集trace数据
在2020年3月份开始接触skywalking到现在,使用skywalking已经一年时间,期间对内部代码进行了详细阅读,并且由于项目需要,我们已经对源码进行了二开,新增了各种个性化需求,可以说,我们对skywalking底层源码了解程度已经相对较高。本来想通过笔记对这一年来的源码阅读及理解成果进行记录,无意中发现这篇文章写得相当的好,也懒得去写了,因此直接转载,后续该系列文章会夹杂着转载与原创,欢迎各位码友交流探讨1. 简介 本文源码解析使用的版本是 skywalking 7.0 , 不.
2021-03-17 11:54:03 2969 2
转载 skywalking源码解析系列一: agent插件加载原理
1 . 简介 本文涉及到的源码取自版本 : apache-skywalking-apm-7.0.0 ,不同版本实现差异可能会有一些区别,但是大体框架上没有变化的 , 一些地方为了方便理解,我拆分了 lamda 表达式,或者把一些写在一起的代码给做了拆分,但是整体逻辑是不变的 2. javaAgent skywalking 是一个 分布式追踪系统 , 他可以帮助我们看到一个请求经过了多少个微服务,中途调用了多少数据库,redis,mq 等中间件, 要实现这样的功...
2021-03-17 11:30:50 1905
原创 K8S实战:Ingress安装与使用
文章目录@[toc]背景Ingress原理关于headless service在这里有必要进行补充说明下headless service主要使用场景部署ingress-nginx1、下载yaml文件2、执行yaml进行ingress-nginx-controller部署2.1 找一个能够下载ingress-nginx-controller的docker镜像的服务器下载镜像2.2 镜像传到公司的dockerhub中2.3 修改mandatory.yaml中的镜像名2.4 执行部署3、 部署nodeport s
2021-03-17 10:29:06 5180
原创 K8S实战:eureka集群部署
文章目录@[toc]实现目标公司环境情况1、docker私库harbor2、k8s环境实现步骤步骤一:为项目添加dockerfile插件1、dockerfile-maven-plugin插件的作用及原理2、repository命名规范(镜像名的命名规范)3、镜像版本号要求步骤二:docker环境准备1、在虚拟机中安装好docker环境,并开启docker远程(ubuntu系统)2、虚拟机中的docker环境配置是有仓库指向harbor(公司的docker私有仓库)3、虚拟机中的docker环境进行登录到私有
2021-03-17 10:09:36 3931 1
原创 Kafka生产真实案例-生产者阻塞事件
Kafka真实案例场景一:生产者阻塞事件1、事件背景该事件的背景是基于一起真实故障事件,在公司的一个项目上线运行过程中,由于某种原因kafka集群挂死一台(总共3台作为一个集群),导致kafka客户端(该客户端是一个web服务)用户线程不释放(由于编码不严谨的原因,导致用户线程跟kafka生产者发送线程在同一个线程中),导致客户端程序不可访问,引起业务系统故障;基于该事件背景,我们需要思考一下几个问题:kafka集群挂死1台,为什么会造成不可用?kafka的高可用呢?kafka集群不可用后,
2021-03-16 14:10:23 5453 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人