架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13628|回复: 0

[资料] 【架构篇】.net/c# 基于 Consul 实现分布式配置之Key/Value存储

[复制链接]
发表于 2020-10-16 18:18:06 | 显示全部楼层 |阅读模式
分布式应用中,经常需要修改配置属性,例如:更新数据库连接字符串、更新缓存地址等。如果应用不多的话,可以手动修改,一旦应用比较多的话,分布式配置就显得非常重要,本文讲解 .net/c# 基于 Consul 实现分布式配置之Key/Value存储架构。

安装 Consul

简介

Consul是一个服务发现和注册的工具,其具有分布式、高扩展性能特点。

Consul主要包含如下功能:

  • 服务发现: 支持 http 和 dns 两种协议的服务注册和发现方式。
  • 监控检查: 支持多种方式的健康检查。
  • Key/Value存储: 支持通过HTTP API实现分布式KV数据存储。
  • 多数据中心支持:支持任意数量数据中心。


安装

下载地址:

https://www.consul.io/downloads.html

本文使用 Windows 10 x64 作为测试环境。

下载解压后,使用cmd命令运行,代码如下:



dev表示开发模式运行,使用-client 参数可指定允许客户端使用什么ip去访问,例如-client 127.0.0.1 表示可以使用,开发模式下,不会持久化数据。

(dev模式,生产环境建议cluster模式)

f651ed24-9df5-4c52-8d10-2090df4e1934.jpg

可以访问: http://127.0.0.1:8500/ui/dc1/services 查看,如下图:

fb30cc26-1870-4756-8263-b98d00d7c8bf.jpg

KV 接口

api文档地址:

https://www.consul.io/api/kv.html

首先,我使用在线网页,新建了一个key/value键值对。

通过 GET 请求 /v1/kv/:key 路径获取值。

http://127.0.0.1:8500/v1/kv/test

f83a65f2-22e9-4837-b03b-960cbfbb44b7.jpg

[
    {
        "LockIndex": 0,
        "Key": "test",
        "Flags": 0,
        "Value": "aXRzdnNlLmNvbQ==",
        "CreateIndex": 194,
        "ModifyIndex": 194
    }
]


  • CreateIndex 是表示条目创建时间的内部索引值。
  • ModifyIndex是修改此密钥的最后一个索引。该索引对应X-Consul-Index于响应中返回的标头值,并且可以通过设置?index查询参数将其用于建立阻塞查询。您甚至可以针对KV商店的整个子树执行阻塞查询:如果?recurse提供了查询,则返回的值X-Consul-Index对应ModifyIndex于前缀中的最新值,使用阻塞查询 ?index将等待直到该前缀中的任何键被更新。
  • LockIndex是已成功获取锁中密钥的次数。如果持有锁,则Session密钥将提供拥有该锁的会话。
  • Key 只是条目的完整路径。
  • Flags是一个不透明的无符号整数,可以附加到每个条目。客户可以选择使用此选项,但是对于他们的应用来说很有意义。
  • Value 是base64编码的数据Blob。


.NET/C# Key/Value 读写

首先,新建一个.net 4.6.1的项目,使用nuget安装必要的包,如下:



代码如下:



效果图如下:

cb13de3c-76d4-470d-8bc4-dd9717280d9f.jpg

  • key键区分大小写
  • 重复的key,value值会被覆盖


(完)




上一篇:使用十年的电脑在家用记事本调试 .NET 程序
下一篇:【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 00:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表