在windows下.NET CORE 与Consul简单使用
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简单使用的更多相关文章
- ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目(Windows) 对于任何语言和框架,都 ...
- Windows下Anaconda的安装和简单使用
Windows下Anaconda的安装和简单使用 Anaconda is a completely free Python distribution (including for commercial ...
- 如何使用在Windows 下AspNetCore Api 和 consul
在Windows 下如何使用 AspNetCore Api 和 consul https://blog.csdn.net/sD7O95O/article/details/80750803 一.概念:什 ...
- windows下curl的安装和简单使用
curl是利用URL语法在命令行方式下工作的开源文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP. 一 ...
- 开源一个windows下的定时任务框架,简单粗暴好用。
这里是你想要的功能: 支持插件,将你要执行的任务编译成程序集放到框架的根目录下,再进行简单的配置就行了. 支持Corn表达式.想让任务在什么时候执行就在什么时候执行. 支持安装成windows ser ...
- Windows下 OpenSSL的安装与简单使用
1. openssl的最新版本 最新版本是 openssl1.1.1 官方地址 https://www.openssl.org/source/ TLS1.3的协议(RFC8446)在2018.8.12 ...
- windows下Nginx与tomcat组合简单使用
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...
- windows下使用RedisCluster集群简单实例
一.开发环境 ruby环境准备 下载 64位的 RubyInstaller并安装 地址http://rubyinstaller.org/downloads/勾选下面三个不用配置环境变量 Image.p ...
- windows下使用vs code调试简单的C程序
常使用visual studio code(vs code)打开.c文件,如果让vs code具备调试技能估计会比较有用 准备工作: 1. vs code安装插件:cpptools 2. window ...
随机推荐
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库
前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...
- 洛谷 - P1309 - 瑞士轮 - 归并排序
https://www.luogu.org/problemnew/show/P1309 一开始写的直接快排没想到真的TLE了. 想到每次比赛每个人前移的量不会很多,但是不知从哪里开始优化. 搜索一下原 ...
- Android笔记---常用控件以及用法
这篇文章主要记录下Android的常用控件以及使用的方法,Android 给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面,这些是Android学习的基础,没有什么业 ...
- 3dmath复习随笔
左手坐标系与右手坐标系 旋转正方向,下图是右手系,左手系同理 向量 点乘: 叉乘: dx是左手系,使用行向量,vABC,乘矩阵用左乘 opengl是右手系,使用列向量,CBAv,乘矩阵用右乘 u3d貌 ...
- Android中R.java丢失不见的解决方案
最近在做android项目时,遇到报错情况,于是clean了一下,结果java类全都报错了,里面的R下有红线,我一找,发现R.java不见了,真是奇怪,如下图(这是解决以后的): 然后查看了一下Con ...
- Item
抓取的主要目标是从非结构化源(通常是网页)中提取结构化数据 ScrapySpider可以以python字典的形式返回提取的数据,这很方便和熟悉 但python dicts缺乏结构,很容易在字段名中输入 ...
- MVC和MTV结构分析
@font-face { font-family: "Times New Roman"; }@font-face { font-family: "宋体"; }@ ...
- Lightoj 1025 - The Specials Menu (区间DP)
题目链接: Lightoj 1025 - The Specials Menu 题目描述: 给出一个字符串,可以任意删除位置的字符,也可以删除任意多个.问能组成多少个回文串? 解题思路: 自从开始学dp ...
- Django 开发blog未完待续
[root@sishen simpleblog]# python3.5 Python 3.5.4 (default, Sep 20 2017, 20:37:45) [GCC 4.4.7 2012031 ...
- 机器学习概念之特征选择(Feature selection)之RFormula算法介绍
不多说,直接上干货! RFormula算法介绍: RFormula通过R模型公式来选择列.支持R操作中的部分操作,包括‘~’, ‘.’, ‘:’, ‘+’以及‘-‘,基本操作如下: 1. ~分隔目标和 ...