Consul的搭建和.Net5的注册和获取方法(Win10简单版)

Consul 是一个用来实现分布式系统服务发现与配置的开源工具。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,也可以作为配置中心。

Consul的下载就不说了,解压包后吧安装路劲放到系统环境变量Path里面去,consul的启动命令。

consul agent -dev

验证启动成功网址:localhost:8500

启动后就要给consul注册了

全局仅一次的注册放在StartUp里,怎么封装先不说,具体实现是这样的

//找到Consul
            ConsulClient client = new ConsulClient(c =>
            {
                c.Address = new Uri("http://localhost:8500/");
                c.Datacenter = "dcl";
            });
            string ip = Configuration["ip"];
            int port = Convert.ToInt32(Configuration["port"]);
            string tag = Configuration["tag"];
            client.Agent.ServiceRegister(new AgentServiceRegistration
            {
                ID = $"Steven:{Guid.NewGuid()}",
                Name = "StevenGroup",
                Address = ip,
                Port = port,
                Tags = new string[] { tag },
                Check = new AgentServiceCheck
                {
                    Interval = TimeSpan.FromSeconds(10),//间隔固定的时间访问一次,https://localhost:44308/api/Health
                    HTTP = $"http://{ip}:{port}/Heart",//健康检查地址
                    Timeout = TimeSpan.FromSeconds(5)
                }
            });
            Console.WriteLine("注册成功");

我这里是通过控制台传参数进去给IP和Port的

多个实例注册后

值得一提的是在注册中的Name并不是标识,而是分组名称。。。。。

这样就注册完事儿了,接下来说怎么去获取地址

ConsulClient client = new ConsulClient(c =>
            {
                c.Address = new Uri("http://localhost:8500/");
                c.Datacenter = "dcl";
            });
            var response = client.Agent.Services().Result.Response;
            Uri uri = new Uri("http://StevenGroup/weatherforecasta");
            string groupName = uri.Host;
            AgentService agentService = null;
            var dic = response.Where(s => s.Value.Service.Equals(groupName, StringComparison.OrdinalIgnoreCase)).Reverse().ToArray();
            agentService = dic[0].Value;

应该很好懂,主要是取出来,至于去取哪一个作为你的转发项,那就看你怎么分配了。

失败重试的逻辑我没写。就这样吧,这篇的目的就是让你的Consul先能跑起来。

到此这篇关于Consul的搭建和.Net5的注册和获取方法(Win10简单版)的文章就介绍到这了,更多相关Consul搭建.Net5的注册获取内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .Net Core服务治理Consul搭建集群

    延续上一篇的话题继续,顺便放上一篇的传送门:点这里. 集群的必要性 consul本身就是管理集群的,现在还需要给consul搞个集群,这是为啥?因为consul单点也容易挂啊!万一管理集群的consul挂掉了,那么相当于上下游应用都变成了瞎子,看不到也调不到.所以集群的必要性不用我说了吧? Server & Client 生产环境下,可以选择上面两种模式,下面我就简称S端.C端.说说它俩有啥不一样: S端: 1.数量不宜过多,一般推荐3.5个,要求是奇数. 2.持久化保存节点数据. 3.多个S端

  • .Net Core服务治理Consul健康检查

    继续上一篇的话题,顺便放上一篇的传送门:点这里. 健康检查 经过之前的操作,我的consul已经支持自动扩展,并且调用也很靠谱.但是这里有个问题,一旦服务列表里的某个服务挂了,consul并不知道,还是会把实际无效的地址返回给我,就算重启consul容器也无法刷新到最新的状态.所以,咱们要监控服务可用性,主动区分出不可用服务,这种手段,就称之为健康检查. 进入编码环节.老规矩,还是进入到之前我封装好的注册方法,在注册时增加健康检查的内容: client.Agent.ServiceRegister

  • .Net Core服务治理Consul使用服务发现

    先思考一些问题:它是做什么的.以及怎么使用它.带着这些问题往下走. consul是做什么的 consul用于微服务下的服务治理.服务治理是什么?它包含但不限于:服务发现.服务配置.健康检查.键值存储.安全服务通信.多数据中心等. 为什么需要服务治理?举个例子:最开始的服务比较简单,各服务之间通过API就能访问.后面业务复杂了,服务也跟着复杂了,搞分布式了,而分布式又必然是多服务器部署,这就有一个问题:如果服务之间还是用API访问,那某个服务所在的服务器挂掉以后这个服务就不能用了,也不能自动转移,

  • .Net Core服务治理Consul自动扩展和服务调用

    今天有写文章的时间了,开心.延续上一篇的话题继续,顺便放上一篇的传送门:点这里. 服务调用 既然服务注册已经搞完了,那么现在就开始调用这些注册好的服务.先做一下准备动作,把consul容器跑起来: 打开控制台确认正常: 然后多跑几个应用程序模拟多点部署: 程序跑完以后检察一下服务列表: 戳进去看看: 一切准备就绪,完美.然后进入编码环节.老规矩,直接上码: public static string Convert(string consulUri, string centerName, stri

  • Consul的搭建和.Net5的注册和获取方法(Win10简单版)

    Consul 是一个用来实现分布式系统服务发现与配置的开源工具.它内置了服务注册与发现框架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案,也可以作为配置中心. Consul的下载就不说了,解压包后吧安装路劲放到系统环境变量Path里面去,consul的启动命令. consul agent -dev 验证启动成功网址:localhost:8500 启动后就要给consul注册了 全局仅一次的注册放在StartUp里,怎么封装先不说,具体实现是这样的 //找到Consul C

  • 使用 Docker 企业版搭建自己的私有注册服务器

    Docker 真的很酷,特别是和使用虚拟机相比,转移 Docker 镜像十分容易.如果你已准备好使用 Docker,那你肯定已从 Docker Hub上拉取过完整的镜像.Docker Hub 是 Docker 的云端注册服务器服务,它包含成千上万个供选择的 Docker 镜像.如果你开发了自己的软件包并创建了自己的 Docker 镜像,那么你会想有自己私有的注册服务器.如果你有搭配着专有许可的镜像,或想为你的构建系统提供复杂的持续集成(CI)过程,则更应该拥有自己的私有注册服务器. Docker

  • 5分钟搭建SpringCloud Eureka服务注册中心的实现

    创建父级项目 只需保留pom.xml文件 这里只需搭建一个微服务 其他操作并无 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&qu

  • .NET5实现操作注册表的方法

    关于注册表 注册表是存储设备,用于提供有关应用程序.用户和默认系统设置的信息. 例如,应用程序可以使用注册表存储需要在应用程序关闭后保留的信息,并在重新加载应用程序时访问相同的信息. 例如,你可以存储颜色首选项.屏幕位置或窗口大小. 可以通过将信息存储在注册表中的不同位置来控制每个用户的此数据. 说明 C#中操作注册表,我们需要使用Registry类,提供表示 Windows 注册表中的根项的 RegistryKey 对象,并提供访问项/值对的 static 方法. 命名空间: Microsof

  • 本地搭建微信小程序服务器的实现方法

    本地搭建微信小程序服务器的实现方法 现在开发需要购买服务器,价格还是有点贵的,可以花费小代价就可以搭建一个服务器,可以用来开发小程序,博客等. 1.域名(备案过的)  2.阿里云注册免费的https证书  3.配置本地的nginx  4.内网映射(本地安装wampserver 服务器) 一.域名 注册花生壳,开通内网映射需要8元(我开通时需要,现在不清楚还要不要),里面可以注册2个免费的域名,都是免备案的.具体的请自行百度,花生壳注册地址 二.申请阿里云免费的https证书 阿里云免费的http

  • MyBatis实现注册及获取Mapper

    目录 一.搭建环境 1.1 pom.xml 1.2 BlogMapper.java 1.3 BlogMapper.xml 1.4 MyBatisDemo.java 二.addMapper详细分析 2.1 MapperRegistry 2.2 MapperProxyFactory 三.getMapper详细分析 3.1 MapperProxy 3.2 MapperMethod 一.搭建环境 1.1 pom.xml <dependency> <groupId>mysql</gro

  • vb.net操作注册表的方法分析【增加,修改,删除,查询】

    本文实例讲述了vb.net操作注册表的方法.分享给大家供大家参考,具体如下: 增加: Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software/Faxturer", True) Dim subkey As Microsoft.Win32.RegistryKey subkey = key.CreateSubKey("Manu")

  • Jquery注册事件实现方法

    本文实例讲述了Jquery注册事件实现方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

  • 彻底删除SQL Server注册表的方法

    一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

  • VS2015 搭建Asp.net core开发环境的方法

    前言 随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,最近正好有时间就尝试VS2015 搭建Asp.net core开发环境,以下是简单的搭建过程,下面来一起看看吧. 步骤如下 一.首先你得装个vs2015 并且保证已经升级至 update3及以上(此处附上一个vs2015带up3的下载链接: ed2k://|file|cn_visual_studio_enterprise_2015_with_update_3_x86_x64_dvd_892329

随机推荐