首页 > 其他分享 >Net6+Consul的简单使用

Net6+Consul的简单使用

时间:2023-09-16 16:27:20浏览次数:38  
标签:服务 Consul 简单 Request 注册 new Net6 HttpContext

先下载Consul

打开cmd

consul.exe agent -dev运行
可以在环境变量 PATH下添加当前Consul.exe 路径 全局使用
下面试启动ok界面,然后通过 localhost:8500 看到界面了




 

然后创建两个 api 程序,添加如下代码,

 [HttpGet("start")]
        public void Start()
        {
            string local = HttpContext.Request.Host.Host;
            int port = (int)HttpContext.Request.Host.Port!;
            string? url = HttpContext.Request.Host.Value;
            string? scheme = HttpContext.Request.Scheme + "://";
            //   int port = HttpContext.Request;

            //cmd 输入 consul 启动程序
            var consulClient = new ConsulClient(p => { p.Address = new Uri($"http://127.0.0.1:8500"); });//请求注册的 Consul 地址
                                                                                                         //这里的这个ip 就是本机的ip,这个端口8500 这个是默认注册服务端口 
            var httpCheck = new AgentServiceCheck()
            {
                DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后注册
                Interval = TimeSpan.FromSeconds(10),//间隔固定的时间访问一次,https://localhost:44308/api/Health
                HTTP = $"{scheme + url}/WeatherForecast/HealthCheck",//健康检查地址  ,就是下main的方法
                Timeout = TimeSpan.FromSeconds(5)
            };

            var registration = new AgentServiceRegistration()
            {
                Checks = new[] { httpCheck },
                ID = Guid.NewGuid().ToString() + "webapi1",
                Name = "test1",
                Address = $"{scheme + local}",
                Port = port,

            };

            consulClient.Agent.ServiceRegister(registration).Wait();//注册服务 

            //consulClient.Agent.ServiceDeregister(registration.ID).Wait();//registration.ID是guid
            //当服务停止时需要取消服务注册,不然,下次启动服务时,会再注册一个服务。
            //但是,如果该服务长期不启动,那consul会自动删除这个服务,大约2,3分钟就会删了 


        }
        [HttpGet("HealthCheck")]
        public bool HealthCheck() {//这里用于检测程序有没有挂的,这里要和上面对上,不然注册后也会是红叉,这里也坑了我一些时间
            Console.WriteLine("ok");
            return true;
        }

  成功

 

同一项目多次注册

 

 

 

Consul参数
https://www.cnblogs.com/sunsky303/p/9209024.html

  

 

标签:服务,Consul,简单,Request,注册,new,Net6,HttpContext
From: https://www.cnblogs.com/liujian1368928/p/17706868.html

相关文章

  • ​​老板要我开发一个简单的工作流引擎​​​-读后感与补充​
    概述最近读了一篇《老板要我开发一个简单的工作流引擎》幽默风趣,干货较多,作为流程引擎的设计者、开发者、探索者,写的很好,合计自己的理解,对每个功能补充说明,对于流程引擎的应用场景,做出更好的理解与实践。第1关-线性流程一天,老板找到我,说要做个简单的工作流引擎。我查了一天啥是工......
  • 【JavaScript保姆级教程】JavaScript的介绍和简单语法
    @TOC前言JavaScript是一种广泛使用的脚本语言,为网页添加交互性和动态功能提供了强大的支持。在本文中,我们将深入了解JavaScript的基本概念和用法,包括它在HTML中的书写位置、注释和结束符的使用,以及一种常用的函数——alert语句。一、javascript语言简介JavaScript是一种轻量级的解......
  • 云服务器安装配置JDK,步骤简单详细~
    (安装jdk有两种方法:手动安装和yum安装:)一:yum安装如下:1.1查询要安装的jdk的版本yum-ylistjava*  1.2安装jdk1.8yuminstall-yjava-1.8.0-openjdk.x86_64 1.3查询jdk版本java-version   二.下载安装JDK安装包1、 到官网下载jdk-8u231-......
  • 简单介绍cmakelist的使用
    Windows平台1在文件夹中创建一个CPP文件;自己随便写一个主函数就行 写一个简单的c++main函数;2创建一个CMakeLists.txt文件,写上下列内容;可以使用notepad,会对一些字段自动补齐cmake_minimum_required(VERSION3.5FATAL_ERROR)Project(HELLOW-01LANGUAGESCXX)add_e......
  • .Net使用 Tesseract 框架识别简单验证码
    1.图片验证码生成publicclassCaptchaGenerator{publicstaticstringGetRandomAuthcode(intlength){stringchkCode=string.Empty;//验证码的字符集,去掉了一些容易混淆的字符char[]character={'0',......
  • HBase|idea使用hbase进行简单的DDL增删改查
    老师要测试什么的,所以我想练习一下,顺便记录在博客里,如有错误,敬请指正,谢谢!!!idea连接hbase首先确保你可以打开Hbase http://192.168.40.100:16010查看所有表 //导入所需的类和包,包括HBase的相关类importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.......
  • 一个简单的 Python 实现希尔伯特-黄变换(Hilbert-Huang Transform,简称HHT)的例子
     importnumpyasnpfromscipy.signalimportargrelextremadefemd(data):"""经验模式分解(EmpiricalModeDecomposition,EMD)"""#找到极值点max_points,min_points=argrelextrema(data,np.greater,axis=0)max......
  • 简单好用的文件清理工具:ccleaner
    ccleaner是一款简单好用的文件清理工具。ccleaner可以清除系统中的所有垃圾文件,腾出硬盘空间,保护系统隐私。ccleaner体积小、运行快,同时还可以对注册表进行扫描。CCleaner特色功能1、ccleaner可以清理临时文件夹、回收站的里的垃圾文件,还可以扫描清理注册表里的垃圾项;2、ccleane......
  • Speex的移植和简单使用
    前言只是小白在学习过程中的记录,可能存在错误。。。音频使用3A算法,Speex也支持。。3A:声学回声消除(AEC)、背景噪声抑制(ANS)、自动增益控制(AGC)三种音频算法的合称个人尝试之后发现,背景噪声消除效果较好,AEC和AGC似乎没什么用。。 一、speex、speexdsp的简单介绍Speex:开源免费......
  • 【代码分享】PHP对接网易易盾活体检测代码风险,简单粗暴实现
    在一些日常应用中,有些敏感数据或者功能,需要用到对应真实本人进行业务操作,所以我们就会用到活体实人认证的功能,在对接过程中,发现网易易盾的较为好用,现在把实现代码贴出来,本案例仅提供数据端,前端模板大家可以自行设置接入步骤第一步注册网易易盾账号,进行业务申请获取参数所需......