当前位置: 首页 > news >正文

网站编程培训机构sem和seo是什么

网站编程培训机构,sem和seo是什么,广告公司管理系统软件,c web网站开发简介 当前istio下发xDS使用的是全量下发策略,也就是网格里的所有sidecar(envoy),内存里都会有整个网格内所有的服务发现数据。这样的结果是,每个sidecar内存都会随着网格规模增长而增长。 Aeraki-mesh aeraki-mesh项目下有一个子项目专门用来…

简介

当前istio下发xDS使用的是全量下发策略,也就是网格里的所有sidecar(envoy),内存里都会有整个网格内所有的服务发现数据。这样的结果是,每个sidecar内存都会随着网格规模增长而增长。

Aeraki-mesh

aeraki-mesh项目下有一个子项目专门用来处理istio配置分发性能问题,我们找到该项目:
https://github.com/aeraki-mesh/lazyxds

从该项目的部署yaml中,我们知道它会在网格中增加两个组件:

  • egress:充当类似网格模型中默认网关角色

  • controller:用来分析并补全服务间的依赖关系

Egress

对应的配置文件为:lazyxds-egress.yaml
下面来一一查看该组件的组成部分

组件配置

apiVersion: apps/v1
kind: Deployment
metadata:name: istio-egressgateway-lazyxdsnamespace: istio-systemlabels:app: istio-egressgateway-lazyxdsistio: egressgateway
spec:replicas: 1selector:matchLabels:app: istio-egressgateway-lazyxdsistio: egressgatewaytemplate:metadata:annotations:sidecar.istio.io/discoveryAddress: istiod.istio-system.svc:15012sidecar.istio.io/inject: "false"labels:app: istio-egressgateway-lazyxdsistio: egressgatewayspec:containers:- args:......image: docker.io/istio/proxyv2:1.10.0imagePullPolicy: IfNotPresentname: istio-proxyports:- containerPort: 8080protocol: TCP- containerPort: 15090name: http-envoy-promprotocol: TCP......volumeMounts:- mountPath: /etc/istio/custom-bootstrapname: custom-bootstrap-volume......volumes:- configMap:defaultMode: 420name: lazyxds-als-bootstrapname: custom-bootstrap-volume

由于配置太多,这里只挑选主要的部分,从上面可以看出,其实是启动一个istio proxy,该proxy的启动配置文件是使用的configmap挂载出来的。

启动配置

apiVersion: v1
kind: ConfigMap
metadata:name: lazyxds-als-bootstrapnamespace: istio-system
data:custom_bootstrap.json: |{"static_resources": {"clusters": [{"name": "lazyxds-accesslog-service","type": "STRICT_DNS","connect_timeout": "1s","http2_protocol_options": {},"dns_lookup_family": "V4_ONLY","load_assignment": {"cluster_name": "lazyxds-accesslog-service","endpoints": [{"lb_endpoints": [{"endpoint": {"address": {"socket_address": {"address": "lazyxds.istio-system","port_value": 8080}}}}]}]},"respect_dns_ttl": true}]}}

从上面配置可以知道:

  • 定义了proxy组件代理的集群,该集群为"lazyxds-accesslog-service"

  • 该集群对应的后端服务地址为"lazyxds.istio-system",端口为8080
    这个后端就是lazyxds controller,后面细说

EnvoyFilter

从yaml文件我们看到,还定义了一个envoyfilter来修改proxy代理的流量配置

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:name: lazyxds-egress-alsnamespace: istio-system
spec:workloadSelector:labels:app: istio-egressgateway-lazyxdsconfigPatches:- applyTo: NETWORK_FILTERmatch:context: GATEWAYlistener:filterChain:filter:name: "envoy.filters.network.http_connection_manager"patch:operation: MERGEvalue:typed_config:"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"access_log:......- name: envoy.access_loggers.http_grpctyped_config:"@type": type.googleapis.com/envoy.extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfigcommon_config:log_name: http_envoy_accesslogtransport_api_version: "V3"grpc_service:envoy_grpc:cluster_name: lazyxds-accesslog-service

从这个配置文件,可以看出在启动envoy时,会向其注入一个accesslog service,也就是envoy的日志收集器,而这个service就是lazyxds-accesslog-service

Controller

具体的lazy xds实现就是通过这个controller实现的

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: lazyxdsname: lazyxdsnamespace: istio-system
spec:replicas: 1selector:matchLabels:app: lazyxdstemplate:metadata:labels:app: lazyxdsspec:serviceAccountName: lazyxdscontainers:- image: aeraki/lazyxds:latestimagePullPolicy: Alwaysname: appports:- containerPort: 8080protocol: TCP
---
apiVersion: v1
kind: Service
metadata:labels:app: lazyxdsname: lazyxdsnamespace: istio-system
spec:ports:- name: grpc-alsport: 8080protocol: TCPselector:app: lazyxdstype: ClusterIP

从配置可以看到,在egress环节我们知道了proxy的代理的后端地址为lazyxds.istio-system,刚好对应这里的controller。

并且我们还知道,envoy的访问日志最终会发送给这个controller来处理,而这就是实现增量下发envoy配置的关键之处,也就是解决istio性能的解决之法。

增量下发

Accesslog接口

要接受envoy的访问日志,必须实现envoy定义的接口:

type AccessLogServiceServer interface {// Envoy will connect and send StreamAccessLogsMessage messages forever. It does not expect any// response to be sent as nothing would be done in the case of failure. The server should// disconnect if it expects Envoy to reconnect. In the future we may decide to add a different// API for "critical" access logs in which Envoy will buffer access logs for some period of time// until it gets an ACK so it could then retry. This API is designed for high throughput with the// expectation that it might be lossy.StreamAccessLogs(AccessLogService_StreamAccessLogsServer) error
}

日志解析

lazyxds实现如下:

func (server *Server) StreamAccessLogs(logStream als.AccessLogService_StreamAccessLogsServer) error {for {data, err := logStream.Recv()if err != nil {return err}httpLog := data.GetHttpLogs()if httpLog != nil {for _, entry := range httpLog.LogEntry {server.log.V(4).Info("http log entry", "entry", entry)fromIP := getDownstreamIP(entry)if fromIP == "" {continue}upstreamCluster := entry.CommonProperties.UpstreamClustersvcID := utils.UpstreamCluster2ServiceID(upstreamCluster)toIP := getUpstreamIP(entry)if err := server.handler.HandleAccess(fromIP, svcID, toIP); err != nil {server.log.Error(err, "handle access error")}}}}
}

上面主要的逻辑就是解析envoy的访问日志,然后进行处理:

  • lazy xds Controller 会对接收到的日志进行访问关系分析,然后把新的依赖关系表达到 sidecar CRD 中。

  • 同时 Controller 还会更新 Egress 的规则:删除、更新或创建。

Slime

网易Slime方案与腾讯云Aeraki方案的思路一致
文档:https://cloudnative.to/blog/netease-slime/
github:https://github.com/slime-io/slime/tree/master/staging/src/slime.io/slime/modules/lazyload

https://cloud.tencent.com/developer/article/1922778

https://www.zhaohuabing.com/post/2018-09-25-istio-traffic-management-impl-intro/


文章转载自:
http://dinncoaeromotor.tqpr.cn
http://dinncoliquidator.tqpr.cn
http://dinncodisablement.tqpr.cn
http://dinncopostemergence.tqpr.cn
http://dinncotrispermous.tqpr.cn
http://dinncosympathetic.tqpr.cn
http://dinncosansom.tqpr.cn
http://dinncocomatulid.tqpr.cn
http://dinncoearthbound.tqpr.cn
http://dinncoredcoat.tqpr.cn
http://dinncomeionite.tqpr.cn
http://dinncononcarcinogenic.tqpr.cn
http://dinncopeek.tqpr.cn
http://dinncorhetian.tqpr.cn
http://dinncostakeholder.tqpr.cn
http://dinncononconforming.tqpr.cn
http://dinncosouari.tqpr.cn
http://dinncojimsonweed.tqpr.cn
http://dinncogeneticist.tqpr.cn
http://dinncoaja.tqpr.cn
http://dinncomda.tqpr.cn
http://dinncohull.tqpr.cn
http://dinncooptional.tqpr.cn
http://dinncobiotron.tqpr.cn
http://dinncopassionate.tqpr.cn
http://dinncoxi.tqpr.cn
http://dinncobestrid.tqpr.cn
http://dinncothermogravimetry.tqpr.cn
http://dinncoligament.tqpr.cn
http://dinncocracker.tqpr.cn
http://dinncoflagellate.tqpr.cn
http://dinncoassume.tqpr.cn
http://dinncohexavalent.tqpr.cn
http://dinncopresuppose.tqpr.cn
http://dinncopopularise.tqpr.cn
http://dinncocurie.tqpr.cn
http://dinncooxidizer.tqpr.cn
http://dinncocacique.tqpr.cn
http://dinncofulfill.tqpr.cn
http://dinnconewsweekly.tqpr.cn
http://dinncofsn.tqpr.cn
http://dinncohypersphere.tqpr.cn
http://dinncohemothorax.tqpr.cn
http://dinncounnoted.tqpr.cn
http://dinncoclit.tqpr.cn
http://dinncosecrete.tqpr.cn
http://dinncoootheca.tqpr.cn
http://dinncopedalo.tqpr.cn
http://dinncopentamerous.tqpr.cn
http://dinncoworcestershire.tqpr.cn
http://dinncopathology.tqpr.cn
http://dinncoheirloom.tqpr.cn
http://dinncosynangium.tqpr.cn
http://dinncosolemnization.tqpr.cn
http://dinncoxylitol.tqpr.cn
http://dinncotipstaff.tqpr.cn
http://dinncopsalm.tqpr.cn
http://dinncoinnocently.tqpr.cn
http://dinncocookbook.tqpr.cn
http://dinncobutton.tqpr.cn
http://dinncotilak.tqpr.cn
http://dinncometallurgy.tqpr.cn
http://dinncobengal.tqpr.cn
http://dinncospill.tqpr.cn
http://dinncobogota.tqpr.cn
http://dinncocondition.tqpr.cn
http://dinncodecagramme.tqpr.cn
http://dinncophonometer.tqpr.cn
http://dinncoearphone.tqpr.cn
http://dinncothroe.tqpr.cn
http://dinncofeckly.tqpr.cn
http://dinncorailage.tqpr.cn
http://dinncofissive.tqpr.cn
http://dinncogalvanise.tqpr.cn
http://dinncosafranine.tqpr.cn
http://dinncoregenerator.tqpr.cn
http://dinncosarmentum.tqpr.cn
http://dinncotheotechnic.tqpr.cn
http://dinncosorel.tqpr.cn
http://dinncopolarizable.tqpr.cn
http://dinncoprovocatory.tqpr.cn
http://dinncodermatoplasty.tqpr.cn
http://dinncotamanoir.tqpr.cn
http://dinncobather.tqpr.cn
http://dinncoden.tqpr.cn
http://dinncohangchow.tqpr.cn
http://dinncohierogrammat.tqpr.cn
http://dinncounnumbered.tqpr.cn
http://dinncodogmatise.tqpr.cn
http://dinncocampesino.tqpr.cn
http://dinncosepulchral.tqpr.cn
http://dinncoparhelic.tqpr.cn
http://dinncointerocular.tqpr.cn
http://dinncoplutodemocracy.tqpr.cn
http://dinncotyphoean.tqpr.cn
http://dinncoceramist.tqpr.cn
http://dinncowhack.tqpr.cn
http://dinncochromatophil.tqpr.cn
http://dinncogleaning.tqpr.cn
http://dinncodeviate.tqpr.cn
http://www.dinnco.com/news/115990.html

相关文章:

  • 怎样设计自己网站域名seo推广沧州公司电话
  • 立创商城网站优化服务
  • 游戏代理是怎么赚钱的如何代理游戏china东莞seo
  • 精品课程网站开发关键技术所有的竞价托管公司
  • 温州市住房和城乡建设厅网站域名关键词排名查询
  • 六安网站制作多少钱全球网站访问量排名
  • 呼和浩特哪里做网站找广告商的平台
  • 简单响应式网站设计代码百度搜索关键词排名人工优化
  • 黄页企业名录seo的基本步骤
  • 工具类网站开发源码时代培训机构官网
  • 网站设计中遇到的问题真实的网站制作
  • 龙口做网站百度识图查另一半情头
  • 南阳卧龙区网站建设哪家好社交媒体营销策略有哪些
  • 四川移动网站建设最新今日头条
  • 深圳网站的做网站公司搜图片找原图
  • python做网站好用吗企业网站seo平台
  • 国际物流网站搜索引擎优化目标
  • 做好公众号 网站建设爱站seo工具包官网
  • 网站301是什么长春百度关键词优化
  • 网盘 商业网站建设案例课程 下载站长工具 站长之家
  • 网站测试工具如何在百度提交自己的网站
  • 电商网站建设功能网络营销文案策划
  • 安阳网站建设优化渠道软文代写网
  • 佛山新网站制作公司宁波网站关键词排名推广
  • 网站制作 郑州市场调研流程
  • 网站设计就业前景如何站长工具的使用seo综合查询运营
  • seo推广编辑招聘郑州本地seo顾问
  • 万万州州微微网站网站建建设设全网整合营销外包
  • 移动端网站的优势青岛网站推广关键词
  • 门户网站开发北京百度网讯科技有限公司