首页 > 编程语言 >C#微服务领事注册

C#微服务领事注册

时间:2024-03-11 10:36:54浏览次数:23  
标签:configuration C# Consul Port 注册 领事 consul

微服务领事注册

首先要先下载Consul这个软件并安装

新建一个空项目 NuGet下载这两个包

搭建微服务框架

在配置文件appsettings.json中配置一下领事的属性

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Consul": {
    "ConsulClient": "http://10.31.59.10:8500",//需要连接的地址
    "ServiceName": "Ouyx321",				//自己的名称
    "ServiceAddress": "10.31.59.22",		 //本机IP
    "ServicePort": 5073,					//本机端口号
    "HealthUrl": "/api/Health/Index"		 //心跳检测的地址
  }
}

在Common文件夹中创建一个领事注册类 ConsulRegist.cs

 /// <summary>
 /// 领事注册
 /// </summary>
 public static class ConsulRegist
 {
     /// <summary>
     /// 领事扩展方法
     /// </summary>
     public static void ConsulExtend(this IConfiguration configuration)
     {
         //实例化consul 客户端 配置要访问的consul 地址
         ConsulClient client = new ConsulClient(x =>
         {
             //需要连接的地址
             x.Address = new Uri(configuration["Consul:ConsulClient"]);
             //名称
             x.Datacenter = "dcl";
         });
         //启动的时候再consul中注册实例服务
         //注册
         //配置文件地址
         var IPAddress = configuration["Consul:ServiceAddress"];
         //配置文件端口号
         var Port = 0;
         //显示准换为值
         int.TryParse(configuration["Consul:ServicePort"], out Port);
         //心跳检测的地址
         var HealthUrl = configuration["Consul:HealthUrl"];
         //注册一个新的服务到Consul AgentServiceRegistration()这个对象包含了注册服务所需的所有信息
         client.Agent.ServiceRegister(new AgentServiceRegistration()
         {
             //唯一标识
             ID=Guid.NewGuid().ToString(),
             //名称
             Name = configuration["Consul:ServiceName"],
             //本机ip
             Address = IPAddress,
             //本机端口号
             Port = Port,
             //健康检查(心跳检测)
             Check=new AgentServiceCheck()
             {
                 //间隔12秒检查一次
                 Interval=TimeSpan.FromSeconds(12),
                 //自己的Api地址 
                 HTTP=$"http://{IPAddress}:{Port}{HealthUrl}",
                 //等待检测时间6秒
                 Timeout=TimeSpan.FromSeconds(6),
                 //失败移除的时间
                 DeregisterCriticalServiceAfter=TimeSpan.FromSeconds(20),
             }
         });
     }
 }

然后在只读的WebApi中设置依赖项 点ConsulIolity类库勾上

再到program.cs类中注入一下方法

//将Consul 扩展方法执行
builder.Configuration.ConsulExtend();

这样代码就编辑完事了

还有一步

打开你的控制面板 选防火墙 然后选左侧高级设置 然后选择入站规则 点击新建规则 点击端口 然后下一页

特定端口输入8500 然后无脑点击下一页

然后随便起个名 点击完成就好了

然后找到你安装的consul.exe 不用打开 在路径上输入cmd敲回车

然后输入这段命令:consul agent -dev -client 0.0.0.0 -ui

敲回车

之后打开你的浏览器输入localhost:8500

见到下面这个页面就完事了

最后还有一件事 你想让其他人访问你的接口 得关闭防火墙

如果是你访问别人的可以不用关闭

标签:configuration,C#,Consul,Port,注册,领事,consul
From: https://www.cnblogs.com/Ouyx/p/18065513

相关文章

  • SourceTree回滚到指定版本
    SourceTree功能作用将master重置到此次提交:将本地代码重置到选中的提交。栗子:有a、b、c三次提交记录,最新提交记录为c,选中b,选择将master重置到此次提交,本地代码将会被重置到b提交的内容,因为本地代码会重置到b提交,远端代码还是c提交的原因,此时会显示落后一个版本,并且本地文件有......
  • 用vcpkg 和vs2022,使用msvc编译器,怎么添加新的依赖库(包含头文件与dll)
    安装vcpkg:如果您还没有安装vcpkg,可以通过VisualStudioInstaller安装。在安装或修改VisualStudio时,选择“C++桌面开发”,然后勾选“vcpkg-C++库管理器”1。集成vcpkg到VisualStudio:在VisualStudio中,通过“工具”菜单选择“NuGet包管理器->程序包管......
  • 开源无代码 / 低代码平台 NocoBase 0.20:支持多数据源
    NocoBase是一个极易扩展的开源无代码开发平台。完全掌控,无限扩展,助力你的开发团队快速响应变化,显著降低成本,不必投入几年时间和数百万资金研发,只需要花几分钟部署NocoBase。NocoBase中文官网官方文档新特性支持多数据源新增「数据源管理」插件,用于管理所有数据源的数据表......
  • 深入浅出Java多线程(十):CAS
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十篇内容:CAS。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在多线程编程中,对共享资源的安全访问和同步控制是至关重要的。传统的锁机制,如synchronized关键字和ReentrantLock等,能够有效防止多个线程......
  • POJ--3258 River Hopscotch(二分搜索/最大化最小值)
    记录10:232023-3-11http://poj.org/problem?id=3259二分法查找最大的可能解,检查x是否符合条件(当前这个位置上的值-前上一个选取位置的值>=x)注意的点:使用了[begin,end)的左闭右开区间,所以结果要begin-1,end要从L+1开始算点击查看代码intL,N,M;introcks[5......
  • centos 系统如何彻底删除docker命令
    如果你想完全删除CentOS系统上的Docker命令,你可以按照以下步骤进行:步骤1:停止正在运行的Docker服务sudosystemctlstopdockerCopyCopy步骤2:卸载Docker软件包卸载Docker软件包:sudoyumremovedocker-cedocker-ce-clicontainerd.ioCopyCopy删除Dock......
  • 揭秘ChatGPT:改变你聊天方式的秘密武器
    ​世界上最受关注的对话伙伴是谁?在今天的时代,答案毫无疑问是ChatGPT。ChatGPT是一款由美国OpenAI公司开发的智能对话程序,只需简单的用户注册,就可以与这款全球参数规模最大的AI机器人进行互动。ChatGPT的能力远超常规的搜索引擎或问答机器人,它不仅能回答你的基础问题,更有创作才......
  • Java.CompletableFuture使用
    使用CompletableFuture替代Thread+Runnable解决Thread+Runnable没有返回值、串行化和组合任务问题1、CompletableFuture.runAsync异步没有返回值需要传入一个线程池publicstaticExecutorServiceexecutor=Executors.newFixedThreadPool(10);CompletableFuture.runAsync((......
  • leedcode 反转链表
    自己写的,遍历一遍链表,再反向生成一个新链表classSolution:defreverseList(self,head:Optional[ListNode])->Optional[ListNode]:#检查链表是否为空ifnothead:returnNone#初始化一个空列表,用于存储原始链表节点的值......
  • CSS鼠标样式(cursor)
    一、CSScursor基本语法cursor属性是什么:指鼠标指针放在一个元素边界范围内时所呈现的光标形状,它包括问号,小手等形状。使用时可以在任何你想要添加的标签里,插入style="cursor:某属性值",也可以在CSS样式中添加。比如:pointer,小手形状help,帮助形状。cursor的属性值有十几种可选......