自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhghost的专栏

Go语言和C++语言

  • 博客(294)
  • 资源 (12)
  • 收藏
  • 关注

原创 K8S的服务注册

本文主要用来介绍K8S的服务注册和发现,算是笔者对这部分知识的一个学习笔记。一、服务注册每个 Kubernetes 服务都会自动注册到集群 DNS 之中。注册过程大致如下:1.Servic...

2021-08-28 18:42:52 2800 1

原创 envoy压测

压测信息:​ envoy版本: 1.23.2-dev istio版本:1.15.2 envoy只打开了access log,没有配置任何VS和DR,去掉了jeager和stat-filter插件,流量通过iptables接管到envoy。 pod层面做的压测,资源为 1c2g的sidecar配比,业务容器是1c2g,响应比较快,request的大小是多少,response就返回多少。 网络是k8s...

2024-04-14 20:47:19 328 1

原创 centos7编译c++碰到的坑

centos 7默认安装的工具链和LIB库都比较旧,不能很好的编译C++产品,最近踩了很多坑,下面就列一下出来。问题1: cmake 安装新版之后,版本提示一直是旧版本的解决办法:wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gztarzxvfcmake-3.*cdcmake-3.*./bootstrap--prefix=/...

2024-02-18 13:53:16 583

原创 envoy在arm机器上的编译整理

版本信息:操作系统:GUN Linux操作系统AARCH64架构。istio-proxy版本:istio-proxy1.15.2编译环境搭建:设置代理,确保可以访问Google等外网,这里envoy的第一次编译需要从外网下载依赖库。// 备注:这里一定要设置一下,可以避免很多麻烦2. 安装G++10.3.1//其他版本应该也可以,本人安装了这个版本3.安装cmake //本人安装的是3....

2023-12-31 19:30:21 904

原创 Envoy:关于outbound流量的处理逻辑

本篇文章,笔者试图讲清楚流量在经过Envoy之后,outbound的流量处理过程是什么样子的。envoy是istio的数据面,istio与envoy之间通过xds协议进行通讯,而istio则通过CR的方式来进行了进一步的封装,目的是为了将xds简单化,希望用户看到的配置更加的简洁,例如:Virtual Service、Destination Rule、等等。XDS是通过LDS、RDS、CDR、SD...

2023-04-25 14:54:28 316

原创 Envoy:httpfilter相关代码阅读

本篇文章是envoy httpfilter相关代码阅读的整理和总结,笔者试图通过这篇文章将http filter在envoy内部的管控讲清楚,并且将request和response是如何使用这部分 http filter功能的流程介绍清楚。httpfilter是netfilter中的一种filter,因为envoy对http支持的细粒度管控很全面,所以将httpfilter又做了一层只是针对htt...

2023-04-02 14:17:55 544

原创 Envoy:event相关代码阅读(二)

本篇文章试图来介绍envoy的事件处理部分的代码,对于envoy来说是基于libevent做了简单封装来实现的异步调度。 本篇文章会从下面两部分来进行讲解,libevent的基础知识介绍,envoy中event的类的实现和event在envoy中的调度逻辑,本篇介绍第二部分内容。一、envoy中event相关类的介绍envoy将libevent的三类事件做了一个简单的封装,如下图所示:sign...

2023-02-24 07:00:39 263

原创 Envoy:event相关代码阅读(一)

本篇文章试图来介绍envoy的事件处理部分的代码,对于envoy来说是基于libevent做了简单封装来实现的异步调度。 本篇文章会从下面两部分来进行讲解,libevent的基础知识介绍,envoy中event的类的实现和event在envoy中的调度逻辑。一、libevent的基础知识篇1.事件flags:#define EV_TIMEOUT 0x01Indicates that a...

2023-02-23 20:00:32 205

原创 Envoy 启动相关参数整理

本篇属于Envoy代码的阅读笔记,整理了envoy启动所使用到的参数信息,代码实现在类OptionsImpl 中,使用了TCLAP来进行参数的行解析处理。// 文件路径如下所示:"source/server/options_impl.h""source/server/options_impl.cc"实现逻辑在下面的构造函数中:OptionsImpl::OptionsImpl(std::vec...

2023-01-02 21:27:23 538

原创 C++ 命令行解析库TCLAP

介绍一个命令行解析库:TCLAP,属于一个比较好用的命令行解析库,Envoy中也用到了这个库,整理出来,方便后续查看。详细介绍参考:https://tclap.sourceforge.net/html/classTCLAP_1_1SwitchArg.html使用方法分成几步:先初始化一些默认的参数数值,parse传递过来的参数之后,会使用传递进来的参数代替掉这些默认值。//step1:实例化...

2022-12-29 20:05:07 790

原创 Pod内容详情梳理

本篇是笔者的一篇读书笔记,用于梳理pod的详情,方便理解和学习,也方便后续自己查询。一、Pod的概述Pod是k8s里面典型的CR,从它的元数据来看,具有所有CR的基本数据构成,分别是 version、kind,以及描述自己的元数据的其他信息,包括metadata里面的名称,命名空间,匹配的labels和注解这一些。除此之外就是Pod里面要包含的详情了,主要有:容器列表,用来描述运行相关的资源信息。...

2022-12-27 09:33:32 731

转载 转发“Istio共享代理新模式Ambient Mesh”

Sidecar 模式的一些限制,让这种共享代理模式成为可能,个人觉得mesh靠近路由转发、安全证书相关的核心功能会下沉到宿主机,甚至有可能成为网卡类的硬件设备。笔者觉得下面的两篇文章写的很好,便转发出来。下面也是文章中整理的。1.侵入性:Sidecar 容器是以Admission Webhook的方式来注入,与应用容器属于同一个Pod,因此Sidecar的升级,必须伴随着业务容器的重建。对应用负载...

2022-11-03 20:07:48 158

原创 Envoy的lib库拓扑关系

写在前面的话:​本篇文章作为Envoy代码的学习笔记,整理了好久,方便后续读Envoy代码做参考使用。如果你不打算这方面深度学习,建议看完前面几张图之后就可以了或者直接不要看这篇文章,因为它的拓扑关系太复杂了。正文:​Envoy使用的bazel进行编译,这种编译工具由Workspace和buid构成,通过一层层的lib库嵌套,最终编译成可执行文件。下面是作者按照编译的依赖关系整理的lib库调用关系...

2022-10-15 21:05:01 409

原创 k8s的架构是怎么变成现在这个样子

引子:笔者在学习K8S的时候,总是在问自己为啥它的架构就变成了现在这个样子的呢,这样的架构和调度设计有什么好处呢?在学习了之后,笔者便整理了这篇文章,一来,算是跟自己答疑解惑,二来,分享出来给大家来共同探讨,方便大家相互学习。正文:笔者觉得K8S就是一个大型的操作系统,只不过它管理的硬件资源比较分散,类型繁琐、数量比较庞大,但是归根结底还是管理和调度,最终还是围绕着计算资源CPU、存储资源内存和磁...

2022-10-08 18:00:30 2068 1

转载 服务网格峰会 2022 视频和PPT

幻灯片下载地址:https://github.com/cloudnativeto/academy/tree/master/service-mesh-summit/2022视频回放合集:https://www.bilibili.com/video/BV1YB4y1J7eK/信息来自于下面: 公众号:云原生社区动态 服务网格峰会 2022 视频回放及幻灯片分享 ...

2022-09-29 09:31:31 168

原创 目前社区关于ServiceMesh的主要方向

周六的时候,在线参加了“首届服务网格峰会”,听了很多业界的研究分享,便整理了这篇文章,一来,为了反思自己在服务网格这边的落地方向是不是偏离社区,二来,希望对读者有用,能够有所收获。 本次峰会,参与者众多,阿里,腾讯,蚂蚁,网易等等大厂都有参加,并都做了相应的内容分享,算是收获颇丰 峰会内容,主要围绕下面几点展开,参考下图:​1.数据面的替换对于ServiceMesh...

2022-09-28 08:30:25 341

原创 流量治理第三篇:流量特点介绍

上一篇,笔者概括介绍了一下对于流量治理的三板斧操作;本篇文章笔者主要来介绍下流量的常见特点,所谓知己知彼百战百胜,我们只有了解了流量的特点,特别是他们存在的挑战,我们才能更好的治理流量。 针对流量而言,长期的流量不均,流量的响应延迟过高,瞬时的流量过大,以及流量本身内容的不安全,是我们平时治理流量的时候,不得不面对的问题,并且这些问题往往会对我们的产品产生很大的影响和冲击...

2022-09-27 08:07:16 326

原创 流量治理第二篇之三板斧

本篇文章是笔者对流量治理治理思路的总结,在这里笔者把它们称为流量治理的“三板斧”,这里笔者只是阐述下个大概,算是先给它们做个介绍,后续会详细讲解每一部分。 对于流量治理来说,笔者觉得一定要从三个方面来着手,他们分别是:“看得见”,“摸得着”,“管得住”。一、看得见“看得见”,指的是流量治理的可观察性,它们需要能够被“看见”才行,当然这里的“看见”,一方面指的是监...

2022-06-29 21:28:23 277

原创 流量治理开篇

本篇文章是笔者流量治理的第一篇文章,笔者希望在这里系统的讲解下这些年以来对流量和流量治理的理解,希望对读者有所帮助,也希望读者能够及时指正文章中笔者理解不对的地方。本篇文章笔者会从下面几点来介绍流量治理。问题一:流量治理是什么?问题二:为什么需要流量治理?问题三:如何进行流量治理?一、流量治理是什么流量治理:顾名思义流量治理就是针对流量就行治理,这里面有两个关键字,流量和......

2022-06-21 09:37:57 614

原创 性能之文件系统篇

本篇文章是性能篇的最后一篇文章,算是一个学习笔记吧,当中的例子也是从别的文章里面摘录的,主要用来讲解如何使用和查看对应的指标。这一篇主要介绍文件系统,说的更加具体点其实是磁盘这个点。笔者还是按照:基础知识----》常用命令和工具----〉排查思路的方式进行了整理。一、基础知识1. 文件系统:在磁盘的基础上,提供了一个用来管理文件的树状结构,是对存储设备上的文件,进行组织管...

2022-05-08 15:05:24 596

原创 性能之网络篇

网络通讯的链路为:机器A-----》路由器----〉机器B如果我们站在本机机器作为参考物的话,应该拆分成下面三个阶段:1.消息入口流量部分的处理流程2.流量在本机上面的处理流程3.流量出口流量部分的处理流程在上面的这三个阶段,分别涉及到了不同的基础知识、工具和命令来进行诊断,笔者本篇文章按照下面的内容来整理:1.基础知识2.常用工具和命令3.测试工具一、基础知识衡量网络性...

2022-05-04 08:55:30 1069

原创 性能之内存篇

最近笔者在看性能分析相关的是知识,就特意针对内存整理了这一篇文章,在这里笔者主要从下面三个方面来介绍这方面的知识:1.内存的作用是什么,他在操作系统中的基础知识都有哪一些?2.查看内存和内存相关问题涉及到的工具都有哪一些,他们的使用方式是什么样子的?3.碰到内存问题的时候,我们需要怎么去定位呢?一、内存的基础知识1.内存的作用:主要用来存储系统和应用程序的指令、数据、缓存...

2022-05-01 20:33:44 859

原创 性能之CPU定位工具介绍

本篇文章算是一篇读书笔记,基本上是把CPU相关的知识作了一个归纳整理,方便后续查看和排查问题。 对于CPU来说,涉及到的主要指标包括:CPU使用率、平均负载、上下文切换、硬中断、软中断、等待io和CPU缓存,而CPU的性能问题也都是与这些指标一一对应的,下面是针对不同的指标的一个定位关联图示。一、CPU性能指标二、常用工具介绍1、top: // 默认5s输出一次$ t...

2022-04-22 18:30:47 486

原创 性能之cpu篇

对于性能来说,cpu的调度逻辑是影响性能的主要来源,本文主要来介绍下cpu跟性能相关的调度逻辑和排障工具。一、cpu调度逻辑介绍:Linux 是一个多任务操作系统,支持远大于 CPU 数量的任务同时运行,而这里的同时运行采用的是分时逻辑的思路,只是看起来多个进程是同时运行的。任务运行前,CPU通过系统事先帮它设置好的 CPU 寄存器和程序计数器(Program Count...

2022-04-19 08:18:49 346

原创 性能基础知识介绍

我们在解决性能问题之前,需要先对性能的基础知识做一个简单的了解,并且要知道用哪些常用的命令来帮助我们去判断和分析这些性能问题。本篇文章主要也是来整理这部分内容,主要按照下面的思路进行整理:一、基本概念介绍。二、常用命令整理。三、主要场景分析。一、基本概念介绍平均负载:是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 C...

2022-04-17 16:16:05 423

原创 K8S之kubelet介绍

一、总体概述:一旦Pod被调度到对应的宿主机之后,后续要做的事情就是创建这个Pod,并管理这个Pod的生命周期,这里面包括:Pod的增删改查等操作,在K8S里面这部分功能是通过kubel...

2022-03-08 21:00:00 11930

原创 K8S里面的调度整理

K8S是分布式系统里面的操作系统,Pod更像是操作系统里面的进程组,如此以来当一个Pod想要运行的时候,就必须要依赖于K8S的调度策略来完成这些Pod的调度。本篇文章就是来整...

2022-02-26 19:45:49 5036

原创 Envoy编译篇:Starlark语言

bazel的编译中使用了Starlark语言,这种语言类似于python语言,详细内容可以参考 :https://docs.bazel.build/versions/4.2.1/skyla...

2022-02-11 19:30:00 2537

原创 Envoy编译篇:bazel构建介绍

本篇文章通过https://github.com/bazelbuild/examples/tree/main/cpp-tutorial里面的例子,来简单介绍下bazel构建的基础知识,方便...

2022-02-07 19:30:00 898

原创 k8s三层网络通讯方式

本篇文章来介绍,K8S纯三层网络的实现原理,主要以Flannel 的 host-gw 模式和 Calico为例来介绍,是本人对K8S网络学习整理的第三篇学习笔记。一、Flannel 的 h...

2022-01-27 19:00:00 1431

原创 C++ absl的Strings Library

absl是谷歌开源出来的一个C++标准库的扩充,基于C++11以上版本进行开发,是一个性能比较高的第三方库。Abseil is an open-source collection of C...

2022-01-20 20:30:00 4648

原创 thread_local

一、介绍thread_local这个关键字的是C++11之后的产物,主要适用的场景是:本线程这个生命周期里面修改和读取,不会与别的线程相互影响。在C++中全局变量和static变量一般都是...

2022-01-10 21:00:00 635

原创 K8S跨Node网络

一、背景介绍前面一章我们介绍了Node节点上面不同的容器之间的通讯方式,主要是根据docker0(网桥)+Veth Pair的方式来玩起来的。本章我们来介绍下不同Node节点上面不同的容器...

2022-01-09 18:43:14 1037

原创 K8S网络介绍

一、背景介绍:对于K8S里面容器之间的通讯基本上面可以分为三种类型:1. POD里面不同容器之间的通讯: 因为同一个Pod里面的不同容器之间是共享同一个POD里面的网络资源,所以POD里...

2022-01-08 17:46:09 667

原创 std::function与std::bind

一、背景介绍:函数指针始终不太灵活,它只能指向全局或静态函数,对于类成员函数、lambda表达式或其他可调用对象就无能为力了,因此,C++11推出了std::function与std::b...

2022-01-06 21:00:00 1355

原创 有了container为什么还需要pod

问题: 容器明明对标的是单个进程的概念,物理机里面进程不就是调度的最小单位了吗?为什么k8s还特意搞了一个pod出来?传统玩法:我们先来看下物理机里面调度进程都需要那些资源,cpu、内存、...

2021-12-17 09:54:23 1211

原创 istio数据面的网络端口和健康检查

本篇文章整理了,istio(版本是1.11.2+)数据面所使用的端口,以及他的健康检查,算是读书笔记,方便后续查找翻看。1. istio数据面的组件介绍pilot-agent:主要用来生成...

2021-10-15 19:13:17 745

原创 iptables知识整理

Envoy的流量劫持使用的是iptables,便对这方面知识作了一个整理,方便后续查看,算是一个读书笔记吧。一、iptables四张表表(tables)提供特定的功能,iptab...

2021-09-30 15:50:34 2365

原创 Envoy流量劫持后outbound部分处理逻辑

本篇文章主要来讲解下流量劫持到envoy之后,envoy层面是如何处理,并成功找到它的下一跳服务的,当然也是我们平时说的upstream。Envoy在实现层面,定义了listener、f...

2021-09-24 19:26:55 377

原创 Service Mesh的价值到底在什么地方

背景介绍:今年有幸加入了Service Mesh小组的研发当中,经过几个月的摸索,算是对Service Mesh有了一个初步的认识。旁边也是不停的有朋友问我,Service Mesh价值是...

2021-09-10 10:12:16 155

ACE技术文档(中文)

包含: 上篇: ACE技术论文集(共10章) 中篇: ACE程序员教程(共9章) 下篇: ACE应用实例(共3章)

2010-02-03

笔试题集锦(C,C++)

内容主要是: 华为面试笔试题 联想笔试题 摩托罗拉部分C++面试题,交流 2005年华为招聘--C语言笔试试题--招聘试题系列(一) 最近笔试面试,狂考sizeof 中兴软件 笔试 其中化为的笔试,面试题占的比重比较多,有60页吧。 希望对找工作的兄弟姐妹有帮助!

2010-02-03

WTL 开发库 直接解压就可以用

Windows Template Library

2009-12-16

wxWidgets参考手册查询

具体内容如下所示:是一个英文的chm文档,自己认为很全,很好用,希望能给学习wxWidgets的朋友起到辅助作用 Contents: Copyright notice Introduction Multi-platform development with wxWidgets Utilities and libraries supplied with wxWidgets Programming strategies Libraries list Alphabetical class reference Functions Constants Classes by category Topic overviews Platform details

2009-11-23

高质量C++(C) 编程指南

前 言 第1 章 文件结构 1.1 版权和版本的声明 1.2 头文件的结构 1.3 定义文件的结构 1.4 头文件的作用 1.5 目录结构 第2 章 程序的版式 2.1 空行 2.2 代码行 2.3 代码行内的空格 2.4 对齐 2.5 长行拆分 2.6 修饰符的位置 2.7 注释 2.8 类的版式 第3 章 命名规则 3.1 共性规则 3.2 简单的WINDOWS 应用程序命名规则 3.3 简单的UNIX 应用程序命名规则 第4 章 表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 IF 语句 4.4 循环语句的效率 4.5 FOR 语句的循环控制变量 4.6 SWITCH 语句 4.7 GOTO 语句 第5 章 常量 5.1 为什么需要常量 5.2 CONST 与 #DEFINE的比较 5.3 常量定义规则 5.4 类中的常量 第6 章 函数设计 6.1 参数的规则 6.2 返回值的规则 6.3 函数内部实现的规则 6.4 其它建议 6.5 使用断言 6.6 引用与指针的比较 第7 章 内存管理 7.1 内存分配方式 7.2 常见的内存错误及其对策 7.3 指针与数组的对比 7.4 指针参数是如何传递内存的? 7.5 FREE 和DELETE 把指针怎么啦 7.6 动态内存会被自动释放吗 7.7 杜绝“野指针” 7.8 有了MALLOC/FREE 为什么还要NEW/DELETE ? 7.9 内存耗尽怎么办 7.10 MALLOC/FREE 的使用要点 7.11 NEW /DELETE 的使用要点55 7.12 一些心得体会 第8 章 C++函数的高级特性 8.1 函数重载的概念 8.2 成员函数的重载、覆盖与隐藏 8.3 参数的缺省值 8.4 运算符重载 8.5 函数内联 8.6 一些心得体会 第9 章 类的构造函数、析构函数与赋值函数 9.1 构造函数与析构函数的起源 9.2 构造函数的初始化表 9.3 构造和析构的次序 9.4 示例:类STRING 的构造函数与析构函数 9.5 不要轻视拷贝构造函数与赋值函数 9.6 示例:类STRING 的拷贝构造函数与赋值函数 9.7 偷懒的办法处理拷贝构造函数与赋值函数 9.8 如何在派生类中实现类的基本函数 9.9 一些心得体会 第10 章 类的继承与组合 10.1 继承 10.2 组合 第11 章 其它编程经验 11.1 使用CONST 提高函数的健壮性 11.2 提高程序的效率 11.3 一些有益的建议

2009-08-16

五子棋程序(C++)

1.3.1 开发环境  Intel® Pentium® 4 2.0GHz,512M内存,80G硬盘  Microsoft® Windows™ 2000 Professional  Microsoft® Visual C++ 6.0  Microsoft® Developer Network for Visual Studio.NET 2003  Visual Assist X 10.1.1301.0 1.3.2 运行环境  Intel® Pentium® 2及以上处理器,32M以上内存,4G以上硬盘  Microsoft® Windows™ 9X/NT操作系统  800*600或以上的屏幕分辨率

2009-08-14

WindowsAPIdq.chm(中文版)

文档里面包含了 windows API函数的介绍,参数什么的都介绍比较清楚了。 其中包括了MFC 里面的函数。 是中文版本的。 希望对大家有用!

2009-08-13

C++ 函数库参考.chm

对c++函数库的里面的函数进行描述的一个参考资料, 感觉里面的函数算是比较全了, 拿出来给大家分享!

2009-08-13

mysee客户端的配置文件

这个文件是在下载的mysee开源项目中,没有的一个配置文件。配置文件是mysee客户端的一个配置文件。 名字是config.ini。 经过了很长时间才找到的,现在提供出来,希望对大家有用。

2009-08-07

MMS协议原理及实现

讲述了MMS协议原理, 是一篇PDF格式的论文。

2009-08-06

C++ Primer(第4版)习题解答(完整版).rar

第四版C++Primer的课后习题解答 PDF格式的答案(比较全了)

2009-08-06

空空如也

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

TA关注的人

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