首页 > 系统相关 >Windows环境下ocelot + consul 实现负载均衡

Windows环境下ocelot + consul 实现负载均衡

时间:2024-12-27 11:20:59浏览次数:1  
标签:127.0 Service Windows consul 0.1 ocelot ConsulConfig configuration

1.Consul的下载

下载地址:https://developer.hashicorp.com/consul/install

consul的官网:https://www.consul.io/api/agent/service.html 

2.解压之后配置环境变量

3.启动Consul

第一种:在启动consul的时候,node参数可以写成 -node=127.0.0.1

consul agent -server -ui -bootstrap-expect=1 -data-dir=D:\\Tools\\consul_1.20.1_windows_amd64 -node=127.0.0.1 -client=0.0.0.0 -bind=127.0.0.1 -datacenter=dc1 -retry-join 127.0.0.1

第二种:在启动consul的时候,node参数可写成"hostname",在Hosts文件中对,node参数添加dns解析.

consul agent -server -ui -bootstrap-expect=1 -data-dir=D:\\Tools\\consul_1.20.1_windows_amd64 -node=hostname -client=0.0.0.0 -bind=127.0.0.1 -datacenter=dc1 -retry-join 127.0.0.1

window hosts文件位置:C:\Windows\System32\drivers\etc

在hosts文件中添加一行"127.0.0.1 hostname",即可

停止服务:consul.exe leave

4.实现

4.1  Snai.ApiGateway 配置

Ocelot.json

{
  "Routes": [
    {
      "UpstreamPathTemplate": "/ApiService/{url}",
      "UpstreamHttpMethod": [ "Get" ],
      "DownstreamPathTemplate": "/ApiService/{url}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "host": "localhost",
          "port": 5011
        },
        {
          "host": "localhost",
          "port": 5012
        }
      ],
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
      },
      "ServiceName": "consul_test",
      "UseServiceDiscovery": true
    }
  ],

  "GlobalConfiguration": {
    "BaseUrl": "http://localhost:5000",
    "ServiceDiscoveryProvider": {
      "Scheme": "http",
      "Host": "localhost",
      "Port": 8500,
      "Type": "Consul"
    }

  }
}

4.2 Snai.ApiServiceA

ConsulHelper
  public static class ConsulHelper
 {
     /// <summary>
     /// 将当前站点注入到Consul
     /// </summary>
     /// <param name="configuration"></param>
     public static void ConsulRegister(this IConfiguration configuration)
     {
         string consulUrl = configuration["ConsulConfig:ConsulUrl"];
         string serviceHost = configuration["ConsulConfig:Service:Host"];
         string serviceSchame = configuration["ConsulConfig:Service:Schame"];
         int servicePort = int.Parse(configuration["ConsulConfig:Service:Port"]);
         ConsulClient client = new ConsulClient(c => {
             c.Address = new Uri(consulUrl);
             c.Datacenter = "dc1";
         });
         client.Agent.ServiceRegister(new AgentServiceRegistration
         {
             ID = configuration["ConsulConfig:Service:ID"], //注册进Consul后给个唯一id,
             Name = configuration["ConsulConfig:Service:Name"], //站点做集群时,Name作为该集群的群名,
             Address = serviceHost,
             Port = servicePort,
             Tags = configuration["ConsulConfig:Service:Tags"].Split(",").ToArray(), //标签
             Check = new AgentServiceCheck
             {
                 HTTP = $"{serviceSchame}://{serviceHost}:{servicePort}{configuration["ConsulConfig:Service:CheckAddress"]}",//这是你要让他定期访问的地址 返回一个ok就行
                 TLSSkipVerify = false,
                 Interval = TimeSpan.FromSeconds(10),//间隔10秒一次
                 Timeout = TimeSpan.FromSeconds(5),//检测等待时间
                 DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(60)//失败多久后移除,最小值60秒
             }
         });
     }
 }

标签:127.0,Service,Windows,consul,0.1,ocelot,ConsulConfig,configuration
From: https://www.cnblogs.com/xm123/p/18635191

相关文章

  • windows 系统安装 PostgreSQL15
    windows系统安装PostgreSQL15一:下载安装包,下载地址postgresql-15.4-1-windows-x64.exehttps://www.enterprisedb.com/downloads/postgres-postgresql-downloads二:安装,以管理员身份运行出现安装界面,点击Next 三:选择安装路径,点击Next 四:选择组件(默认都勾选),点击Next......
  • CMD命令大全:Windows操作系统下的强大工具指南
     前言       在Windows操作系统中,CMD(命令提示符)是一个功能强大的工具,它允许用户通过输入各种命令来执行各种系统操作和管理任务。本CMD命令大全旨在为用户提供一份详尽、实用的命令指南,帮助用户快速掌握CMD的各种功能和用法。   本文中的命令,涉及优化系......
  • 如何在Windows上正确启用PHP的mbstring扩展?
    1.确保 php_mbstring.dll 文件存在首先,你需要确认你的PHP安装目录中确实包含了php_mbstring.dll文件。通常情况下,这个文件位于PHP安装目录下的ext文件夹中。如果你没有找到这个文件,可能是因为你下载的PHP版本默认没有包含这个扩展。此时,你可以考虑重新下载一个完整的PHP安装包......
  • Windows电脑(雷神)掉驱动
    冬天刚到工位,脱完外套后电脑无缘无故黑屏。重启电脑后发现电脑的驱动程序都丢失了(包括无线、蓝牙等)。我的电脑是雷神品牌的笔记本。我尝试从官网下载驱动程序,但无论如何都无法安装成功。后来,我在网上找到了一个帖子,提供了解决驱动丢失问题的方法。帖子中提到,驱动程序丢失的主要原......
  • Windows 配置多版本JDK
    @目录前言简介一、下载并安装多个JDK版本二、配置环境变量2.1点击高级系统设置2.2选择环境变量2.3配置CLASSPATH2.4配置JAVA_HOME2.5配置Path环境变量三、JDK验证3.1打开cmd命令工具3.2输入命令查看3.3切换JDK版本3.4切换后查看总结前言请各大网友尊重本人原创知识分......
  • windows 驱动实例分析系列: PL2303芯片开发实战之二
    经过对linux代码的解读和在windows下面的简单测试,已经总结出来PL2303的基本使用方式了,接下来就可以进行windows平台下的驱动开发了,同时还需要一个com驱动的例子,幸运的是之前已经写过了:windows驱动实例分析系列-PL2303芯片开发实战之一windows驱动实例分析系列-定时日志的C......
  • 2024最新工具分享 | 24年最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Wi
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关......
  • 「转」Windows端口转发管理脚本(支持ipv4+ipv6)
    将下面代码保存成.bat文件,[b]使用管理员运行。@echoofftitleWindowsIPv4/IPv6端口转发管理工具color0A:menuclsecho========================================echoWindowsIPv4/IPv6端口转发管理工具echo========================================echo1.查......
  • EasyPlayer.js视频流媒体播放器windows播放器多窗口播放音量的控制方法
    随着互联网技术的飞速发展和移动设备的普及,流媒体服务已经成为人们消费娱乐内容的主要途径之一。流媒体行业已经成为一个巨大的娱乐产业生态,各个环节都在不断发生着创新和变革。这些技术的发展不仅改变了内容的创作和分发方式,也为用户带来了更加丰富和个性化的体验。那么在实际......
  • Windows交叉编译MNN-3.0.0安卓版本库(通过WSL2)
    一、写在前面昨天写了在WIN10上面通过AndriodStudio来编译MNN的demo,通过解压.apk文件来得到libMNN.so文件。今天在记录一下使用WSL2来编译MNN-Andriod。二、WSL2的安装由于不是本篇的主题,故不在这里进行展开,后续会补充步骤链接。三、WSL2编译环境配置1、NDK-Linux安装上篇......