タイトルIV、トークンを使用して初心者に登録領事サービス

最初の3件の記事、領事の打ち上げ成功、登録サービスによって、その後の質問は、誰でも再生する方法も登録することができ、安全機構が存在しなければなりません。

ゲームプレイは、単純なACLがどのようにすることを追加toeknを、追加しているのですか?

 

ステップ1:スタートコンフィギュレーションコマンド

DIR -設定:ファイル読み込まれますすべてが設定ファイルのフォルダ、* .jsonデータ形式、ファイル名がああ.jsonの終わりでなければなりません。

 

領事剤は1 -server -data -bootstrap-期待 -dir Dを:\ HNHPC \ マイクロフレーム\ consul_1.5.3_windows_amd64 \領事-node = 192.168.1.161 -bind = 192.168.1.161 -enable-スクリプトチェック=真-datacenter 0.0.0.0 -ui hnhpc -client = = -config DIR- D:\ hNHPC \マイクロフレーム\ consul_1.5.3_windows_amd64 \ CONFIG

 

 

ステップ2:ではConsulManagerクラス、マスターの値で充填[245d0a09-7139-bbea-AADC-ff170a0562b1]

第三段階:スタート登録toeknシステム、登録を制限なしトークンによってコア。

 

using Consul;
using System;
using System.Collections.Generic;
using System.Text;

namespace Core.Consul
{
    internal class ConsulManager
    {
        private static ConsulClient client = null;

        static ConsulManager()
        {
            if (client == null)
            {
                var address = ServiceManagerSection.Instance.Address;
                ConsulClientConfiguration config = new ConsulClientConfiguration()
                {
                    Address = new Uri(address),
                    Token = "245d0a09-7139-bbea-aadc-ff170a0562b1"
                };
                client = new ConsulClient(config);
            }
        }

        private ConsulManager()
        {

        }


        /// <summary>
        /// 注册服务
        /// </summary>
        public static void Register(string name, string address, int port, string checkHttpAddress = "")
        {
            var service = new AgentServiceRegistration();
            service.Name = name;
            service.Address = address;
            service.Port = port;
            service.ID = address + ":" + port;

            AgentServiceCheck checkHttp = new AgentServiceCheck();
            if (string.IsNullOrEmpty(checkHttpAddress))
            {
                if (port == 80)
                {
                    checkHttpAddress = string.Format("http://{0}/default/test", address);
                }
                else
                {
                    checkHttpAddress = string.Format("http://{0}:{1}/default/test", address, port);
                }
            }
            checkHttp.HTTP = checkHttpAddress;
            checkHttp.Interval = new TimeSpan(0, 0, 10);
            checkHttp.DeregisterCriticalServiceAfter = new TimeSpan(0, 0, 120);
            service.Checks = new List<AgentServiceCheck>() { checkHttp }.ToArray();
            var result = client.Agent.ServiceRegister(service).Result;
            if (result.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new Exception($@"注册{address}-{name}服务失败");
            }
        }

        public static void Remove(string address, int port)
        {
            string id = address + ":" + port;
            client.Agent.ServiceDeregister(id);
        }

        public static Dictionary<string, AgentService> FindAll()
        {
            var result = client.Agent.Services().Result.Response;
            return result;
        }


    }
}

  

{
  "acl" : {
    "enabled" : true,
    "default_policy" : "deny",
    "down_policy" : "extend-cache",
    "tokens" :{
        "master": "245d0a09-7139-bbea-aadc-ff170a0562b1"
    }
  }
}

其实还有更多的玩法,大家可以启动之后一个一个的设置来玩玩

おすすめ

転載: www.cnblogs.com/iversonlzy/p/11994445.html