在.net项目中使用Consul
1、创建.net core web程序并运行
2、在Consul中注册该服务
Consul支持两种服务注册的方式,一种是通过Consul的服务注册HTTP API,由服务自身在启动后调用API注册自己,另外一种则是通过在配置文件中定义服务的方式进行注册。Consul文档中建议使用后面一种方式来做服务 配置和服务注册。Consul agent在启动时可以通过-config-dir来指定配置文件所在目录(引用自网络)
[root@linux5 ~]# consul agent -data-dir=/tmp/consul/ -node=consul5 -dc=dc1 -bind=192.168.56.105 -ui -config-dir=/tmp/consul/
在Consul启动时会读取-config-dir目录下所有的json文件来加载注册的服务,现在在该目录下创建一个配置文件:jw.json
{
"service": {
"name": "jw",
"tags": ["jiewus"],
"address": "192.168.56.1",
"port": ,
"checks": [
{
"http": "http://192.168.56.1:1234/Home/About",
"interval": "10s"
}
]
}
}
重启Consul之后会发现jw这个服务:
// :: [INFO] serf: EventMemberJoin: consul3 192.168.56.103
// :: [INFO] serf: EventMemberJoin: consul2 192.168.56.102
// :: [INFO] serf: EventMemberJoin: consul1 192.168.56.101
// :: [INFO] serf: Re-joined to previously known node: consul1: 192.168.56.101:
// :: [INFO] consul: adding server consul3 (Addr: tcp/192.168.56.103:) (DC: dc1)
// :: [INFO] consul: adding server consul2 (Addr: tcp/192.168.56.102:) (DC: dc1)
// :: [INFO] consul: adding server consul1 (Addr: tcp/192.168.56.101:) (DC: dc1)
// :: [INFO] agent: Synced service 'jiewusWeb'
// :: [INFO] agent: Synced check 'service:jiewusWeb'
==> Newer Consul version available: 0.8. (currently running: 0.8.)
3、使用Consul Api进行服务注册
private static void ServiceRegister(ConsulClient client)
{
var client = new ConsulClient(ConfigurationOverview);
var result = client.Agent.ServiceRegister(new AgentServiceRegistration()
{
Address = "http://192.168.56.1:1234/Home/About",
ID = "jw",
Name = "jw",
Port = ,
Tags = new[] { "jiewus" },
Check = new AgentServiceCheck()
{
HTTP = "http://192.168.56.1:1234/Home/About",
Interval = new TimeSpan(, , ),
DeregisterCriticalServiceAfter = new TimeSpan(, , ),
}
}).Result;
} private static void ConfigurationOverview(ConsulClientConfiguration obj)
{
obj.Address = new Uri("http://192.168.56.104");
obj.Datacenter = "dc1";
}
在.net项目中使用Consul的更多相关文章
- Java 项目中一种简单的动态修改配置即时生效的方式 WatchService
这种方式仅适合于比较小的项目,例如只有一两台服务器,而且配置文件是可以直接修改的.例如 Spring mvc 以 war 包的形式部署,可以直接修改resources 中的配置文件.如果是 Sprin ...
- 服务注册发现consul之二:在Spring Cloud中使用Consul实现服务的注册和发现
首先安装consul环境,参照之前的文章:<服务注册发现consul之一:consul介绍及安装>中的第一节介绍. Spring Cloud使用Consul的服务与发现 1.导入依赖pri ...
- VS项目中使用Nuget还原包后编译生产还一直报错?
Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...
- ABP项目中使用Swagger生成动态WebAPI
本文是根据角落的白板报的<使用ABP实现SwaggerUI,生成动态webapi>一文的学习总结,感谢原文作者角落的白板报. 1 安装Swashbuckle.core 1.1 选择WebA ...
- iOS 之项目中遇到的问题总结
昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...
- My97DatePicker时间控件在项目中的应用
一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在 ...
- 在项目中同时使用Objective-C和Swift
苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的.同一个类文件或同一个代 ...
- 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
随机推荐
- [试玩] FMXLinux (Firemonkey for Linux) Linux 桌面开发(第三方插件)
FMXLinux 是一个可以用来开发 Linux 桌面软件的第三方插件,它需要配合 Delphi 10.2 Toyko 官网:http://www.fmxlinux.com/ 使用方法:开启 FMX ...
- spark or sparkstreaming的内存泄露问题?
关于sparkstreaming的无法正常产生数据---->到崩溃---->到数据读写极为缓慢(或块丢失?)问题 前两阶段请看我的博客:https://www.cnblogs.com/wa ...
- 数据采集与分析的那些事——从数据埋点到AB测试
作者:网易有数郑栋. 一.为什么企业需要一套完善的用户行为埋点和分析平台 产品初创期间,需要分析天使用户的行为来改进产品,甚至从用户行为中得到新的思路或发现来调整产品方向:产品成长过程,通过对用户行为 ...
- A.Activity planning
题目描述There is a collection of n activities E={1,2,..,n}, each of which requires the same resource, su ...
- Using a custom AxisRenderer object
Using a custom AxisRenderer object http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d1 ...
- 安装虚拟机与Linux的学习
#虚拟机 在安装虚拟机之前,我先上网查了一些关于虚拟机的知识. 虚拟机,即Virtual Machine,在计算机科学中的体系结构裏,是指一种特殊的软件,他可以在计算机平台和终端用户之间创建一种环境, ...
- 20155315庄艺霖第三次作业之Linux初体验
Linux初体验 安装Linux三两事 老师的作业要求基于VirtualBox安装Linux系统,我一开始下载了VB但是电脑运行不了,后来看网上的教程下载了VMware,才算开始了我的Linux之旅. ...
- RHCSA-day3
10.配置LDAP客户端 在classroom.example.com上已经部署了一台LDAP认证服务器,按以下要求将你的系统加入到该LDAP服务中,并使用Kerberos认证用户密码: 该LDAP认 ...
- Unity3D使用NGUI实现简单背包功能
前话 在许多类型游戏中我们经常会使用到背包,利用背包来设置相应角色属性,多了背包也会让游戏增色拓展不少. 那在Unity3D游戏开发中该如何编写背包系统呢?因为有高人开发了NGUI插件,因此我们进行简 ...
- JavaWeb(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...