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

南昌做网站哪里好设计北京

南昌做网站哪里好,设计北京,网站的建设方法包括哪些内容,推推蛙seo顾问configurePeerListeners 是 ETCD 的一个核心函数#xff0c;用于为集群中节点之间的通信配置监听器#xff08;Peer Listener#xff09;。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerList…configurePeerListeners 是 ETCD 的一个核心函数用于为集群中节点之间的通信配置监听器Peer Listener。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerListeners(cfg *Config) (peers []*peerListener, err error)输入参数 cfg *Config指向 Config 配置结构体的指针包含监听器所需的所有配置信息。 返回值 peers []*peerListener返回一个 peerListener 的切片表示为每个 Peer 配置的监听器。err error若配置过程中发生错误返回详细错误信息。 1. 更新加密套件配置 if err updateCipherSuites(cfg.PeerTLSInfo, cfg.CipherSuites); err ! nil {return nil, err }作用更新 TLS 的加密套件Cipher Suites。逻辑 使用 cfg.CipherSuites 更新 cfg.PeerTLSInfo 的加密配置。如果更新失败返回错误。 2. 配置自签名证书 if err cfg.PeerSelfCert(); err ! nil {cfg.logger.Fatal(failed to get peer self-signed certs, zap.Error(err)) }作用为 Peer 生成自签名证书如果未提供证书文件。逻辑 调用 cfg.PeerSelfCert() 方法生成自签名证书。如果生成失败记录错误日志并终止程序。 3. 更新 TLS 版本 updateMinMaxVersions(cfg.PeerTLSInfo, cfg.TlsMinVersion, cfg.TlsMaxVersion)作用更新 TLS 的最小和最大版本。逻辑 使用配置中的 TlsMinVersion 和 TlsMaxVersion 更新 cfg.PeerTLSInfo。确保使用的 TLS 版本在允许范围内。 4. 检查是否启用 TLS if !cfg.PeerTLSInfo.Empty() {cfg.logger.Info(starting with peer TLS,zap.String(tls-info, fmt.Sprintf(%v, cfg.PeerTLSInfo)),zap.Strings(cipher-suites, cfg.CipherSuites),) }作用检查 Peer 是否启用了 TLS。逻辑 如果 cfg.PeerTLSInfo 不为空记录日志说明已启用 TLS 并打印配置信息。 5. 初始化监听器切片 peers make([]*peerListener, len(cfg.ListenPeerUrls))作用为每个 Peer URL 初始化对应的监听器。逻辑 根据 cfg.ListenPeerUrls 的长度创建一个 peerListener 的切片 peers用于存储所有监听器。 6. 错误处理回滚逻辑 defer func() {if err nil {return}for i : range peers {if peers[i] ! nil peers[i].close ! nil {cfg.logger.Warn(closing peer listener,zap.String(address, cfg.ListenPeerUrls[i].String()),zap.Error(err),)ctx, cancel : context.WithTimeout(context.Background(), time.Second)peers[i].close(ctx)cancel()}} }()作用在监听器创建过程中发生错误时关闭已经创建的监听器清理资源。逻辑 如果 err ! nil遍历 peers调用每个监听器的 close 方法确保释放资源。使用超时时间 1 秒 防止阻塞。 7. 为每个 Peer URL 创建监听器 for i, u : range cfg.ListenPeerUrls {if u.Scheme http {if !cfg.PeerTLSInfo.Empty() {cfg.logger.Warn(scheme is HTTP while key and cert files are present; ignoring key and cert files, zap.String(peer-url, u.String()))}if cfg.PeerTLSInfo.ClientCertAuth {cfg.logger.Warn(scheme is HTTP while --peer-client-cert-auth is enabled; ignoring client cert auth for this URL, zap.String(peer-url, u.String()))}}peers[i] peerListener{close: func(context.Context) error { return nil }}peers[i].Listener, err transport.NewListenerWithOpts(u.Host, u.Scheme,transport.WithTLSInfo(cfg.PeerTLSInfo),transport.WithSocketOpts(cfg.SocketOpts),transport.WithTimeout(rafthttp.ConnReadTimeout, rafthttp.ConnWriteTimeout),)if err ! nil {cfg.logger.Error(creating peer listener failed, zap.Error(err))return nil, err}// once serve, overwrite with http.Server.Shutdownpeers[i].close func(context.Context) error {return peers[i].Listener.Close()} }主要逻辑 遍历 cfg.ListenPeerUrls为每个 URL 创建一个监听器。HTTP 检查 如果 URL 的协议是 HTTP 且启用了 TLS发出警告日志。如果启用了 PeerTLSInfo.ClientCertAuth但协议为 HTTP也发出警告。 创建监听器 调用 transport.NewListenerWithOpts 创建监听器。配置 TLS 信息、套接字选项、连接超时时间等。 错误处理 如果监听器创建失败记录错误日志并返回错误。 关闭逻辑 设置 peerListener 的 close 方法用于在关闭监听器时释放资源。 8. 返回监听器 return peers, nil作用返回配置完成的监听器切片。如果没有错误err 为 nilpeers 包含所有配置好的监听器。 总结 功能configurePeerListeners 函数为集群中每个 Peer URL 配置监听器用于处理节点间通信。关键点 配置 TLS包括加密套件、TLS 版本、自签名证书等。创建监听器并设置关闭逻辑。错误回滚机制确保在发生错误时释放已分配的资源。支持 HTTP 和 HTTPS 两种协议同时发出适当的警告。 核心调用transport.NewListenerWithOpts 是监听器创建的核心方法它根据配置初始化实际的监听器。
http://www.w-s-a.com/news/659305/

相关文章:

  • 上虞宇普电器网站建设江西建筑人才网
  • 在吗做网站商城一个网站需要服务器吗
  • 先做网站再备案吗中山微网站建设报价
  • 树莓派可以做网站的服务器吗网站建设与设计ppt
  • 网站访问速度分析网站怎么做让PC和手机自动识别
  • 网站建设要考西宁网站建设多少钱
  • 网站开发公司东莞网站推广计划书具体包含哪些基本内容?
  • 素材天下网站惠州网站建设行业
  • 网站做a视频在线观看网站天津建站
  • 自己做的网站怎么链接火车头采集一个网站可以做几级链接
  • 济南网站制作哪家专业做网站怎样投放广告
  • 辽宁网站推广短视频运营培训学费多少
  • 拼多多网站怎么做翻译 插件 wordpress
  • 做网站运营的职业生涯规划wordpress分类显示图片
  • 网站建设与制作总结沈阳百度广告
  • 网站管理系统 手机会员制网站搭建wordpress
  • 做物品租赁网站清新wordpress主题
  • 优秀专题网站家居企业网站建设市场
  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序
  • 建设网站公司哪里好相关的热搜问题解决方案做网站要看什么书
  • 网站建设重要性黄岐建网站
  • 做网站电销《电子商务网站建设》精品课
  • 地方商城网站海外网站推广方法
  • 乐山 网站建设安阳给商家做网站推广
  • 网站空间一般多大邢台网站建设有哪些
  • h5网站开发工具有哪些wordpress清空post表
  • 公司开网站干嘛怎么制作一个免费的网站模板
  • 群晖wordpress搭建网站网站建设及管理