摘要:
前言 prometheus默认把数据存在本地文件,随着时间的增长,文件会越来越大,当查询一个时间跨度很大指标时,会很消耗资源,查询效率会很低。 为此prometheus引入了远端存储。为了适应不同的远端存储,prometheus并没有选择对接各种存储,而是定义了一套读写存储接口,并引入了Adapte 阅读全文
摘要:
前言 在服务网格出现之前,服务的治理都是由微服务框架自己来解决的,比如spring cloud、dubbo,而服务网格的设计思想是应用只负责自己的业务逻辑,把服务治理下沉到服务网格来处理,这样做的好处就是服务治理不再受限于框架本身了,比如spring clound的服务和python的http服务就 阅读全文
摘要:
前言 平滑重启主要考虑两点: 如何做到不中断接收新请求 老的请求不能被中断 实现思路 主要思路就是要解决新老进程切换过程中listener文件描述符和现有连接描述符的迁移,之前有一篇文章讲了如何通过unixSocket来传递文件描述符,这里也会用到这个技术, 具体的迁移流程如下: 1、老进程在启动时 阅读全文
摘要:
背景: 预发布环境在拉取代码时,页面报Curl Failed :Connection reset by peer ,php后台报connection timeout是php代码部分调用拉取接口时报出来的,通过netstat查看该接口目前的tcp连接状态 可以看到服务端的连接一直处于close_wai 阅读全文
摘要:
前言 在介绍k8s的网络通信机制前,先介绍一下docker的网络通信机制,不同节点pod间网络通信,在docker里是这样访问的 即: Container1 snat-> 节点A (docker0网桥) → 节点B(docker0网桥) →dnat → pod2 这样的访问方式会产生很大的系统开销, 阅读全文
摘要:
前言 以前有通过kubeadm的方式安装过k8s,需要先安装kubelet、doce-ce,然后要准备一堆镜像,令人头疼的是这些镜像需要FQ才可以访问,因此对于初学者来说很不友好,现在推荐一种kind的安装方式,kind全称kubernetes in docker,顾名思义就是把k8s所有的组件部署 阅读全文
摘要:
前言 TCP代理的使用场景有很多,比如Nginx的http代理,本质上也是TCP的转发,微服务网格istio的Envoy也是基于这种理念来实现的。 之所以写这个demo,是为了可以很方便地调试上下游服务在通信过程中到底传递了什么数据,对各种协议的通信方式可以很快的掌握它们原理,比如rpc通信、htt 阅读全文
摘要:
GRPC的底层传输协议是HTTP2,而在HTTP2里引入了帧的概念,它是数据传输的最小单位,实现了将普通的请求/响应,拆解为帧实现请求和响应并发,在HTTP2中规定了10中类型的帧,如:HEADER帧DATA帧 数据帧和头帧的用途: 当客户端发起请求时,先发送头帧,里面包含要执行的方法等信息,服务端 阅读全文
摘要:
代码地址:http//gitee.com/zqwlai/go-test/grpc 1. 定义proto syntax = "proto3"; option java_multiple_files = true; option go_package = "./g"; package g; // The 阅读全文
摘要:
1.简介 Protobuf(Google Protocol Buffer)是 Google公司内部的混合语言数据标准,目前已经开源,支持多种语言(C++、C#、Go、JS、Java、Python、PHP),它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存 阅读全文