手机版

详细说明如何在Windows下使用AspNetCore Api和consul

时间:2021-08-31 来源:互联网 编辑:宝哥软件园 浏览:

一、概念:什么是consul:

Consul是由几个组件组成的整体,其功能与Eureka、Zookeeper相同,用于服务发现和治理。

领事的特点:

1.服务发现:consul可以为用户提供注册服务,或者主动发现服务。用户可以获得服务信息,如IP端口,并可以在客户端界面轻松找到注册的服务。

2.健康检查:在这里,健康检查是检查服务是否运行良好。要判断服务是否运行良好,可以使用Web服务的状态或者服务器的使用状态。你可以根据这些状态来判断哪些服务运行良好,哪些服务不健康()这里的不健康可以是服务器的利用率),然后根据这些判断来路由远离不健康的服务。

3.KVStore:是键/值的存储。在使用中,可以根据KV的存储功能做很多事情,比如动态配置、一些特性的标注、协调、管理选举等。KV存储的API是基于HTTP的。

4.多数据中心:consult支持多个数据中心,也就是说我们在consult的过程中不用担心做更多的工作来进行扩展。

Consul是一个分布式的高可用性系统。向consul注册的每个服务都将在服务本身中运行一个(代理)代理。运行代理的最终目的是检查当前服务的健康状况,从而通知Consul系统当前节点是否健康。我们已经举了一个领事特征的例子(健康检查)。

每个数据中心运行一个领事服务器集群。当提出跨数据中心服务发现或配置请求时,本地(代理)服务器将请求转发到远程数据中心并返回结果。

(俗语)健康检查是决定这个节点是否可以用于服务,这个节点的服务是否是所有已知节点中最好的,或者不是,只要换成另一个就可以了。在使用过程中,建议每台服务器模拟多个可能导致服务失败和数据丢失的场景,然后推荐一台服务器作为每项服务的安全服务器。在这个过程中,最大的贡献者之一是代理,它实现了与服务器的通信。

了解更多:https://www.consul.io/intro/index.html

二、领事的设置:

1.领事下载:

地址:https://www.consul.io/

点击下载进入下载页面,如下所示:

我下载了win版本并解压缩。尺寸很小

2.安装和操作:

安装命令是:Consul.exe代理-开发人员模式。安装Ctrl C停止运行,如下图所示:

开发人员模式安装仅适用于单个服务器环境,不适用于生产,并且开发人员模式不保存任何状态。

安装成功后,我们可以看到输出日志信息包含。客户端地址:客户端地址为127.0.0.1:8500,DNS为8600,我们可以在浏览器中访问。

面试结果如下:

在页面上,我们可以看到我们的服务和顾问会默认将自己注册为服务节点,界面会向我们显示他们的运行状态、IP服务器等信息

我们还可以通过命令查看服务的信息

命令:执政官成员下图是输出:

该图显示了我们自己更详细的信息,例如地址、状态、角色和版本信息

后期我们会增加很多服务。此时,输出可能更多,因为服务信息是通过通信协议获得和注册的。为了避免consult视图中的服务状态与服务器上的状态一致,需要通过HttpApi将服务状态发送给consult中的代理,结合上面consult的3KVStore特性可以更好的理解。

官方翻译

中断代理后,您应该会看到它离开集群并关闭。通过优雅地离开,领事通知其他集群成员该节点已经离开。如果强制终止代理进程,集群的其他成员将检测到节点故障。当成员离开时,其服务和检查将从目录中删除。当一个成员失败时,它的健康状态被简单地标记为严重,但是它不会从目录中删除。咨询将自动尝试重新连接到故障节点,允许它从某些网络状况中恢复,而无需联系左侧节点。此外,如果代理作为服务器运行,优雅的休假对于避免可能影响共识协议的可用性中断非常重要。

Iii .领事的简单使用:

1.创建新的AspNetCoreAPI项目:

下图:

2.在项目启动中的配置方法中注册:

代码如下:

public void Configure(IApplicationBuilder应用程序,IHostingEnvironment env) { if (env。IsDevelopment()) { app。usedeveloper exception page();} app。UseMvc();字符串ip=配置[' IP '];//部署到不同服务器时,不能写成127.0.0.1或0.0.0.0,因为这是服务消费者调用的地址:int port=int . parse(configuration[' port ']);//获取服务端口varclient=new consulclient(配置概述);//回调获取var结果=client . agent . service register(new agentserviceregistration(){ id=' servername first ' guid . new guid(),//服务号不能重复。Name='ServerFirst ',//服务名称Address=ip,//服务ip地址Port=port,//服务端口Check=new AgentServiceCheck //运行状况检查{ unregisterecriticalserviceafter=time span。从秒(5),//服务开始注销后多长时间间隔=时间跨度。从秒(10)、//运行状况检查间隔,或心跳间隔(定期检查服务是否正常)http=$ ' http://{ IP } : { port }/API/health ',//运行状况检查地址超时=timespan。从秒(。}///summary////获取consult///summary///param name=' obj '/param private static void配置概述(consument configuration obj){//consult obj的地址。address=new uri(' http://127 . 0 . 0 . 1:8500 ');//名为obj的数据中心。Datacenter=' dc1}3.启动:首先,确保Consul启动,我们运行项目注册

步骤如下:

成功编译Api后,我们通过命令行运行它:

执行命令:dotnet项目DLL - ip设置ip -端口设置端口(dotnet Framework。webapi . dll-IP 127 . 0 . 0 . 1-端口5001),点击回车运行项目

当命令运行时,我们可以通过设置不同的端口来运行多个相同的项目。

刷新咨询客户端,我们可以看到我们的服务注册是成功的

结果如下:

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:详细说明如何在Windows下使用AspNetCore Api和consul是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。