0)基本概念

consul常用于服务发现 【微服务】

web_Api

\

\   ->注册服务                                          raft选举leader

-----------------------------------------------------------------——

【Server1】<---------------------->     【Server2】

|                                       |

\                                 /

\                        /

【Server3】                                       
-----------------------------------------------------------------——

\

\->发现服务

1)下载

https://www.consul.io/   注意系统版本

2)设置环境变量

拷贝.exe对应的文件路径 放到环境变量path中

3)cmd中启动服务   -dev 表示默认

consul agent -dev

建立集群使用 同一服务器下解决端口占用问题时只能用相同端口注册一个服务

方式一、

pc-1  【ip:192.168.109.1】

consul agent -server -ui -bootstrap-expect=2 -data-dir=e:\consul -node=consul-1 -client=0.0.0.0 -bind=192.168.109.1 -datacenter=dc1

pc-2 【ip:192.168.109.128】

consul agent -server -ui -bootstrap-expect=2  -data-dir=c:\consul -node=consul-2 -client=0.0.0.0 -bind=192.168.109.128  -datacenter=dc1  -join 192.168.109.1

方式二、

4)打开vs

5)新建web api项目

6)在Startup.cs下修改Configure函数如下

   public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseMvc();
String ip = Configuration["ip"];//部署到不同服务器的时候不能写成127.0.0.1或者0.0.0.0,因为这是让服务消费者调用的地址
int port = int.Parse(Configuration["port"]);//获取服务端口
var client = new ConsulClient(ConfigurationOverview); //回调获取
var result = client.Agent.ServiceRegister(new AgentServiceRegistration()
{
ID = "ServerNameFirst" + Guid.NewGuid(),//服务编号保证不重复
Name = "ServerFirst",//服务的名称 集群使用consul
Address = ip,//服务ip地址
Port = port,//服务端口
Check = new AgentServiceCheck //健康检查
{
DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(),//服务启动多久后反注册
Interval = TimeSpan.FromSeconds(),//健康检查时间间隔,或者称为心跳间隔(定时检查服务是否健康)
HTTP = $"http://{ip}:{port}/api/Health",//健康检查地址
Timeout = TimeSpan.FromSeconds()//服务的注册时间
}
});
}
 /// <summary>
/// 获取Consul的实例
/// </summary>
/// <param name="obj"></param>
private static void ConfigurationOverview(ConsulClientConfiguration obj)
{
//consul的地址
obj.Address = new Uri("http://127.0.0.1:8500");
//数据中心命名
obj.Datacenter = "dc1";
}

7)设置健康检查控制器HealthController.cs

    [Route("api/[controller]")]
public class HealthController : Controller
{
[HttpGet]
public IActionResult Get() => Ok("ok");
}

8)生成项目

9)打开项目对应文件夹 ->bin->Debug->netcoreapp2.0   路径上输入cmd 直接进入对应目录并打开cmd

10)运行命令进行服务注册   dotnet PeerApi.dll --ip localhost --port 14446      解释:PeerApi.dll替换成你的dll    localhost代替ip地址  注意:如果未放在iis上 输入localhost代替127.0.0.1 其他ip地址不变  14446 是端口号 替换你的端口

11)打开 http://localhost:8500/ui/dc1/services  【consul自带的监控页面】  可以查看到具体注册的服务

12)服务发现  可以查看链接

http://127.0.0.1:8500/v1/catalog/service/ServerFirst  【ServerFirst 为服务名称】

在windows下.NET CORE 与Consul简单使用的更多相关文章

  1. ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目(Windows) 对于任何语言和框架,都 ...

  2. Windows下Anaconda的安装和简单使用

    Windows下Anaconda的安装和简单使用 Anaconda is a completely free Python distribution (including for commercial ...

  3. 如何使用在Windows 下AspNetCore Api 和 consul

    在Windows 下如何使用 AspNetCore Api 和 consul https://blog.csdn.net/sD7O95O/article/details/80750803 一.概念:什 ...

  4. windows下curl的安装和简单使用

    curl是利用URL语法在命令行方式下工作的开源文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP. 一 ...

  5. 开源一个windows下的定时任务框架,简单粗暴好用。

    这里是你想要的功能: 支持插件,将你要执行的任务编译成程序集放到框架的根目录下,再进行简单的配置就行了. 支持Corn表达式.想让任务在什么时候执行就在什么时候执行. 支持安装成windows ser ...

  6. Windows下 OpenSSL的安装与简单使用

    1. openssl的最新版本 最新版本是 openssl1.1.1 官方地址 https://www.openssl.org/source/ TLS1.3的协议(RFC8446)在2018.8.12 ...

  7. windows下Nginx与tomcat组合简单使用

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...

  8. windows下使用RedisCluster集群简单实例

    一.开发环境 ruby环境准备 下载 64位的 RubyInstaller并安装 地址http://rubyinstaller.org/downloads/勾选下面三个不用配置环境变量 Image.p ...

  9. windows下使用vs code调试简单的C程序

    常使用visual studio code(vs code)打开.c文件,如果让vs code具备调试技能估计会比较有用 准备工作: 1. vs code安装插件:cpptools 2. window ...

随机推荐

  1. java形式参数分别是基本类型和引用类型的调用

    什么是形式参数,基本类型,引用类型? 形式参数(形参)百度百科里的解释是:在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数. 通俗的说就是:形式参数是指在函数名后面的小括号里 ...

  2. 018--python 函数参数、变量、前向引用、递归

    目录 一.python函数的定义 二.函数参数 三.全局变量和局部变量 四.前向引用 五.递归 一.python函数的定义 python函数是对程序逻辑进行结构化或过程化的一种方法 1 python中 ...

  3. Linux ubuntu 下寻找 texlive 缺失包 texlive 缺失包(转载)

    转自:http://blog.sina.com.cn/s/blog_87315ca60101d4d1.html 在Linux下用 latex 编译 ××.tex 文件有时候时会提示:  ! LaTeX ...

  4. hdoj2859【DP基础】

    /* 看题解A的. 总结:小矩阵--> 大矩阵 dp[i][j]=min(t,dp[i-1][j+1]+1); */ #include <iostream> #include < ...

  5. PJzhang:工作之余一起来看剧

    猫宁!!! 最近几个月陆续看了4部电视剧,不错,分别来自4个国家或地区,英国.日本.中国香港.俄罗斯,是的,没有美剧,平时真的很少看美剧. 1-IT狂人,英剧,一共4季,每季6集,每集25分钟左右. ...

  6. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

  7. 如何用Zookeeper来实现分布式锁?

    什么是Zookeeper临时顺序节点? 例如 : / 动物 植物 猫 仓鼠 荷花 松树 Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Zonde.# Znode分为四种类型 ...

  8. VS Code 自用插件备份

    自用插件备份 Auto Close Tag 自动闭合标签 Atuo Rename Tag 更改前面标签的时候, 自动更改后面的闭合标签 Guides 对齐线 open-in-browser 在浏览器中 ...

  9. Backbone学习记录(3)

    创建视图 同前面创建模型和集合的方式一样,Backbone.View.extend()即可创建视图 var UserView=Backbone.View.extend(); var view1=new ...

  10. “玲珑杯”ACM比赛 Round #5 H -- Variance 简单树状数组

    可以把每个公式都化简,然后得到要维护的东西就是平方和,和前缀和,两个bit即可 不能cin,超时.IOS后都不行. scanf用lld #include <cstdio> #include ...