confd+etcd+nginx 服务发现

news/2024/11/16 2:16:56/文章来源:https://www.cnblogs.com/lightsong/p/18299953

 confd+etcd+nginx 服务发现

https://learnku.com/articles/36229

 

 https://www.chenshaowen.com/blog/service-discovery-etcd-confd-nginx.html

在进行应用部署时,服务运行起来后,通过接口向 Etcd 注册相关 key-value 信息,Confd 检测到 Etcd 的 key-value 变化后,立即触发程序通过模板形成新的 Nginx 配置文件。

Nginx 先做离线语法测试,如果没问题就覆盖原配置,进而 reload,测试不通过就不覆盖原配置,整个过程安全可控。

 

 

https://github.com/fanqingsong/docker-compose_confd_etcd_nginx

confd - docker-compose - etcd - nginx

Abstract

This practice follows confd - Quickstart Guide - Advanced Example.

docker-compose manages the following services:

  • etcd-server: key-value store, backend for confd
  • confd-nginx: nginx server managed by confd acording to the values inserted to etcd-server. Requests to localhost are routed to the python app
  • etcd-curl: inserts values to etcd-server via curl
  • py-app: simple python flask server, target of nginx proxy

etcd

https://etcd.io/

A distributed, reliable key-value store for the most critical data of a distributed system

What is etcd?

etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. It gracefully handles leader elections during network partitions and can tolerate machine failure, even in the leader node. Learn more

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/etcd%e5%ae%9e%e6%88%98%e8%af%be/08%20Watch%ef%bc%9a%e5%a6%82%e4%bd%95%e9%ab%98%e6%95%88%e8%8e%b7%e5%8f%96%e6%95%b0%e6%8d%ae%e5%8f%98%e5%8c%96%e9%80%9a%e7%9f%a5%ef%bc%9f.md

第一,client获取事件的机制,etcd是使用轮询模式还是推送模式呢?两者各有什么优缺点?

第二,事件是如何存储的? 会保留多久?watch命令中的版本号具有什么作用?

第三,当client和server端出现短暂网络波动等异常因素后,导致事件堆积时,server端会丢弃事件吗?若你监听的历史版本号server端不存在了,你的代码该如何处理?

第四,如果你创建了上万个watcher监听key变化,当server端收到一个写请求后,etcd是如何根据变化的key快速找到监听它的watcher呢?

接下来我就和你分别详细聊聊etcd Watch特性是如何解决这四大问题的。搞懂这四个问题,你就明白etcd甚至各类分布式存储Watch特性的核心实现原理了。

轮询 vs 流式推送

confd

https://github.com/kelseyhightower/confd

confd is a lightweight configuration management tool focused on:

  • keeping local configuration files up-to-date using data stored in etcd, consul, dynamodb, redis, vault, zookeeper, aws ssm parameter store or env vars and processing template resources.
  • reloading applications to pick up new config file changes

https://ops-doc.readthedocs.io/zh/latest/Linux_Notes/tools/confd-usage.html

使用来自 etcd 或 consul 的模板和数据管理本地应用程序配置文件。

confd是一个轻量级的配置管理工具,专注于:

  • 使用存储在etcd、 consul、dynamodb、redis、 vault、zookeeper、aws ssm 参数存储或环境变量中的数据以及处理模板资源,使本地配置文件保持最新。

  • 重新加载应用程序以获取新的配置文件更改

https://zhuanlan.zhihu.com/p/99414682

confd用来动态更新配置文件,架构如下:

confd作用流程:

 

https://www.cnblogs.com/Anker/p/6112022.html

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/743062.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PSIM仿真mosfet驱动问题

前言 在使用PSIM进行仿真的时候遇见了DLL驱动mosfet不成功的问题,搞得头疼心肺炸裂 错误情况如下 其实起因是我没注意开关器件控制器(多级)有好几个属性当我想仿真实际mosfet的时候,将mosfet设置成了二级模型, 但是我的开关器件控制器却没有设置为控制到模型, 正确情况部分有截…

[GXYCTF2019]StrongestMind 1

计算器直接上脚本跑 from requests import * import time import re url="http://d7ae47ab-f31d-482d-bf36-7d505b252d2e.node3.buuoj.cn/index.php" s=session() kk = re.compile(r\d+ [-|+] \d+) r=s.get(url)for i in range(1001):zz=kk.findall(r.text)[0]#print…

[GKCTF 2021]easycms 1

cms 因为hint中告诉我们登录密码是弱口令,所以我们直接登陆就可以 扫描后台找到了admin.php这个登录页面直接弱口令admin 12345登录上去可以找到这里有一个控制主页面的可执行代码,如果我们改成木马就可以拿到shell了但是这里我们没有找到这个文件但是在设计->组件->素…

一句口诀搞定清结算账务

结算、清算之类的表述,常常让人傻傻分不清,记住一句话就行了——“联机交易、渠道清算、资金结算、期末结转”。具体怎么用的?且看本文作者的分享。清算、清结算、结算常常被颠来倒去的混用,作为银行和商户之间资金搬运工的清结算,什么时候清算,什么时候结算一直让人傻傻…

这三种情况,ToDesk个人版有必要转企业版

远程办公模式已逐渐普及,许多职场人士的工作电脑中普遍安装了数款远程控制软件。在这些软件中,ToDesk个人版以其卓越的远程连接质量和简便易用的操作特性,赢得了广大职场人士的青睐,成为他们的首选工具。然而,随着ToDesk企业版的推出,个人用户是否应转用企业版,已成为当…

[BJDCTF2020]EzPHP 1

信息收集,waf绕过打开后源码中可以看到这个东西,解码后是1nD3x.php<?php highlight_file(__FILE__); error_reporting(0); $file = "1nD3x.php"; $shana = $_GET[shana]; $passwd = $_GET[passwd]; $arg = ; $code = ;echo "<br /><font color=r…

第六天笔记(设计用例的方法,等价类,边界值,判定表)

一、软件测试中术语 1.动态测试(dynamic testing):通过运行软件的组件或 系统来测试软件 例如:一辆汽车发动并行使测试 2.静态测试(static testing):对组件的规格说明书进行 评审,对静态代码进行走查 例如:一辆汽车为发动未行驶,查看外观、颜色、组成部分 3.正式评审…

上网记录20240713

模块化医学图像处理可视化软件 https://www.mevislab.de/ https://github.com/MeVisLab MeVisLab Help Resources https://mevislabdownloads.mevis.de/docs/current/MeVisLab/Resources/Documentation/Publish/index.htmlhttps://www.kitware.com/ Open Inventor The Invento…

比赛获奖的武林秘籍:07 一文速通电子设计大赛,电子人必看的获奖秘籍

本文主要介绍了全国大学生电子设计大赛的含义、比赛形式、组队技巧,结合自身经历讲解了备赛指南,同时对往年题目进行了分析和总结。比赛获奖的武林秘籍:07 一文速通电子设计大赛,电子人必看的获奖秘籍 摘要 本文主要介绍了全国大学生电子设计大赛的含义、比赛形式、组队技巧…

常错过手机的重要消息的帅哥靓女,看过来

你是不是手机里有许多未读消息,许多“小红点”,系统通知里有很多通知,久而久之你已习惯并麻木了?你只在自己需要的时候主动去找,而对于推送的信息一概不理。有时也有朋友向你抱怨发给你的信息你久久不回。或者反过来,你经常去看推送的消息,但大多是不太重要的,是广告,…