在Windows 下如何使用 AspNetCore Api 和 consul

https://blog.csdn.net/sD7O95O/article/details/80750803

一、概念:什么是consul:

Consul 是有多个组件组成的一个整体,作用和Eureka,Zookeeper相当,都是用来做服务的发现与治理。

Consul的特性:

1、 服务的发现:consul可以把注册到其中的服务提供给使用者,也可以主动发现服务,在consul的客户端界面中用户可以得到,服务的信息,比如IP端口等信息,在客户端界面中可以很容易的找到注册的服务,

      2、 健康检查:这里健康检查就是检查服务是否在良好的运行,这里判断服务是否运行良好,可以用Web服务的状态进行判断,也可以用服务器的利用状态进行判断,可以根据这些状态来判断那些服务是良好运行的那些是不健康的()这里不健康可以是服务器的利用率)从而根据这些判断路由远离不健康的服务。

     3、 KVStore:就是KEY/Value的存储,在使用中可以根据KV的存储功能做很多事情比如,动态的进行配置,进行一些特征的标记,协调,管理的选举,KV存储的API是基于HTTP的。

     4、 多数据中心:consul支持多哦数据中心,意味着我们这是用consul的过程中不必担心多做更多的工作来进行扩展。

    Consul是一个分布式的高可用的系统。每一个向consul注册的的服务,在服务无本身都会运行一个(agents)代理,运行代理的最终目的是为了对当前服务进行健康检查,以便通知Consul系统,当前节点的健康与否,在consul的特性(健康检查)我们已经举过例子。

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

 (白话)进行健康检查就是为了决定能不能用这个节点服务,这个节点的服务是否是所有已知节点中性能最好的,不是最好的换一个就是了。在使用的过程中每一个服务器运行时建议模拟出多个可以导致服务失败、数据丢失的场景,然后为每一个服务推荐用作安全的服务器。在这个过程中有一个最大的功臣就是代理(agents),代理实现了和服务器之间的交流。

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

二、Consul的安装:

  1、 Consul的下载:

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

    640?wx_fmt=png

        点击DOWNLOAO 进入下载页面如下:

        640?wx_fmt=png

        我下载的是win版本并且已解压,大小非常的小

        640?wx_fmt=png

  2、安装运行:

   安装命令为:Consul.exe agent -dev 开发者模式安装 Ctrl+ C 可以停止运行 如下图:

   

    640?wx_fmt=png

         开发者模式安装只适用于单个服务器的环境,不用于生产,开发者模式不保存任何的状态。

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

    访问结果如下:

    640?wx_fmt=png

    在页面中我们可以看到我们的服务、 consul 在会默认把自己注册成为一个服务节点,界面中向我们展示了自己的运行状态,IP服务器等信息

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

    命令: consul members 下图是输出:

    640?wx_fmt=png

    图中向我们输出了我们自己更加详细的信息,地址、状态、角色、版本信息

    在后期我们使用的过程中我们会添加很多的服务,这个时候的输出可能更多,因为服务的信息是通过通讯协议获取以及注册的,为了避免consul视图中的服务状态,和服务器上的状态保持一致,就需要通过HttpApi将服务的状态发送给consul中的管理(agent) 结合上文中consul的特性3KVStore我们可以更好的理解。

    官方翻译

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

三、Consul的简单使用:

    1、新建一个AspNetCoreAPI项目:

      如下图:

        640?wx_fmt=png

    2、在项目中的Startup中Configure方法中实现注册:

        640?wx_fmt=png

        代码如下:   

3、启动:首先确保Consul已启动,我们运行项目注册

    

    步骤如下:

        编译Api 成功后我们通过命令行的方式运行:

             执行命令:dotnet 项目DLL --ip 设置ip -- port 设置端口(dotnet Framework.WebApi.dll --ip 127.0.0.1 --port 5001)  敲击回车运行项目

            同一个项目我们可以运行多个在命令运行时设置不同端口就可以运行了

                                      640?wx_fmt=png

            640?wx_fmt=png

            刷新consul客户端我们可以看到我们的服务注册成功了

            结果如下:

            640?wx_fmt=png

文章参考:如鹏网杨中科老师的AspNetCore 微服务普及推广内容:

相关文章:

.NET Core微服务之基于Consul实现服务治理

.NET Core微服务之基于Consul实现服务治理(续)

Ocelot + Consul实践

青客宝团队Consul内部分享ppt

搭建consul 集群

Redola.Rpc 集成 Consul 服务发现

Consul 服务注册与服务发现

原文地址: https://www.cnblogs.com/szlblog/p/9162557.html

如何使用在Windows 下AspNetCore Api 和 consul的更多相关文章

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

    一.概念:什么是consul: Consul 是有多个组件组成的一个整体,作用和Eureka,Zookeeper相当,都是用来做服务的发现与治理. Consul的特性: 1. 服务的发现:consul ...

  2. 在windows下.NET CORE 与Consul简单使用

    0)基本概念 consul常用于服务发现 [微服务] web_Api \ \   ->注册服务                                          raft选举le ...

  3. 转:windows下命令行工具

    转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...

  4. Windows下POSIX线程编程(pThread)环境搭建

    系统: Windows 编辑器:codeblocks13.12 1. 简介: Windows有一个叫 POSIX Threads for Win32 的开源项目给出了一个功能比较完善的Windows下 ...

  5. windows下的c语言和linux 下的c语言以及C标准库和系统API

    1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样.当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作 ...

  6. 在Windows下编写并运行第一个ASP.NET 5 Preview Web API程序

    2015年07月21日在微软中国MSDN的官方微博上得知Visual Studio 2015正式版完美发布. 抱着尝鲜的心态下载了Visual Studio社区版本. 在这个首发的版本里面,我们可以看 ...

  7. windows 下实现函数打桩:拦截API方式

    windows 下实现函数打桩:拦截API方式            近期由于工作须要,開始研究函数打桩的方法. 由于不想对project做过多的改动,于是放弃了使用Google gmock的想法. ...

  8. TensorFlow Object Detection API(Windows下训练)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近事情比较多,前面坑挖的有点久,今天终于有时间总结一下,顺便把Windows下训练跑通.Li ...

  9. Windows系统调用中API从3环到0环(下)

     Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API从3环到0环(下) 如果对API在 ...

随机推荐

  1. codeforces 703B B. Mishka and trip(数学)

    题目链接: B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input stan ...

  2. linux命令学习笔记(32):gzip命令

    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间. gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以 ...

  3. 【Shell】Linux 一行 多命令

    http://www.cnblogs.com/koreaseal/archive/2012/05/28/2522178.html 要实现在一行执行多条Linux命令,分三种情况: 1.&&am ...

  4. Could not load the "xxx.png" image referenced from a nib in the bundle with identifier "com.xxxx"

    打印台logs:  Could not load the "xxx.png" image referenced from a nib in the bundle with iden ...

  5. 1072 Gas Station (30)(30 分)

    A gas station has to be built at such a location that the minimum distance between the station and a ...

  6. Django 模板 自定义context_processors

    Django版本 1.8.4 为什么要自定义context_processors 在做博客的过程中,在浏览排行,评论排行,标签,文章归档,友情链接等内容每一个显示页面都是要显示的.如果在每一个view ...

  7. HTTP协议详解之http请求分析

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  8. hibernate学习 六 Hibernate缓存

    缓存: 如果在集群环境下使用Hibernate时,(集群有节点A ,节点B) 当请求,发往A节点,A在数据库中修改了一条记录,然后节点B的缓存中如何实时的更新节点A修改的新数据          hi ...

  9. KMP匹配 (1)

    ---恢复内容开始--- 字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串" ...

  10. FlexPaper+SwfTools实现的在线文档功能

    最近一个项目需要实现一个在线浏览文档的功能.准备使用FlexPaper配合Pdf2Swf实现. 主要需求在于: ➔ 文档页数很多,少则几百页,多则上千页.    ➔ 相应的文档大小也在50MB以上. ...