在Windows 下如何使用 AspNetCore Api 和 consul

一、概念:什么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:8500DNS8600 我们可以在浏览器中进行访问,

    访问结果如下:

    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


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络流及建模专题(下)

前言 不断更新中… 专题的(下)篇将介绍网络流的一些奇奇怪怪的应用和费用流有关的一些套路。 本专题暂时包含三道题: 洛谷P1251 餐巾计划问题: 费用流的基本应用 Trade Gym - 100212I: 使用网络流对图论中的边进行调整 codeforces 818G - Four Melodies: 费用…

CentOS 7.4 下 如何部署 AspNetCore 结合 consul

上篇我们讲到consul的概念,以及在WIN下如何使用: 在Windows 下如何使用 AspNetCore Api 和 consul步骤如下:1、安装虚拟机VM 2、下载安装 CentOS 7.4(地址就不提供了)这是安装示例: VM虚拟机安装CentOS 示例…

【SPFA】最优贸易(luogu 1073)

最优贸易 luogu 1073 题目大意: 有n个城市和m条线路连接着这些城市(当编号为1时是有向,2时是无向),从1城市出发到n城市,每个城市都有固定的水晶球价格(进价和售价一样)&#xff0…

Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)

Demo路径:https://github.com/yanshengjie/RPL.Demo1. IntroductionRazor Page Library 是ASP.NET Core 2.1引入的新类库项目,属于新特性之一,用于创建通用页面公用类库。也就意味着可以将多个Web项目中通用的Web页面提取出来,封装…

Problem H Rock Paper Scissors,FFT

题目 题目链接 题意 给出两段石头剪刀布的顺序SS和T" role="presentation" style="position: relative;">TT,其中TT要短一些,现在让你把T" role="presentation" style="position: relative;">TT往SS的…

.NET Core微服务之基于Ocelot实现API网关服务

一、啥是API网关?API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口。这样就可以明显的简化客户端实现和微服务应用程序之间的沟通方式。以前的话,客户端不得不去请求微服务A(假设为Customers&am…

[译]RabbitMQ教程C#版 - 发布订阅

先决条件本教程假定RabbitMQ已经安装,并运行在localhost标准端口(5672)。如果你使用不同的主机、端口或证书,则需要调整连接设置。从哪里获得帮助如果您在阅读本教程时遇到困难,可以通过邮件列表联系我们。1.发布/订阅…

用ASP.NET Core 2.1 建立规范的 REST API -- 缓存和并发

本文所需的一些预备知识可以看这里: 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 和 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) 准备项目建立Richardson成熟度2级的POST、GET、PUT、PATCH、DELETE的RESTful API请看这里:用ASP.NET Core …

2017 SEERC Divide and Conquer 树上差分

题目 题目大意:给出两颗树的复合图(即这张图是由两颗树拼起来的),询问最小割掉多少条边,可以使得图不联通,并输出方案数。 分析 我觉得这是一道很难的题目,因为比较难想,前提结论比较多。 首先我们需要…

青蛙跳荷叶

青蛙跳荷叶 题目大意: 有n个点,从1开始到跳完这些点,且每次的距离不能相等,一个点不能到多次 原题: 题目描述 从前,有一个小青蛙决定去荷叶上练习跳跃.现在有n个荷叶排成一排,小青蛙一开始…

基于 Consul 实现 MagicOnion(GRpc) 服务注册与发现

0.简介0.1 什么是 ConsulConsul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。这里所谓的服务,不仅仅包括常用的 Api 这些服务,也包括软件开发过程当中所需要的诸如 Rpc、Redis、Mysql 等需要调用的资源。简而言之 Con…

【DFS】排排坐

排排坐 题目大意: 有n个方块,有一些是黑色,有一些是白色,可以点击一个方块使它和它旁边的方块反转颜色(黑变白,白变黑),问最少要点多少次才能将方块 们 变成目标的方块们&#xff…

用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它

预备知识: 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) 准备项目建立成熟度2级的 API请看这里:用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST, 用ASP.NET Core 2.0 建立规范的 REST AP…

华为资深工程师:码农很多,但程序员并不多......

“春节假期,与几位友人小聚,大家互道工作顺利、平安健康云云......期间一位驰骋商界多年的老友问:“你现在在华为做什么工作呀?”我很骄傲地说:”系统架构师“,可是他却愣了很久。但当我老婆在旁边补上一句“码农“时…

VS2017 15.8第二个预览版本提升了对CPU Profiling和F#的支持

VS2017 15.8第一个预览版本的特性包括对ARM64构建的支持、ASP.NET Core对Docker的支持以及重新引入LibMan。在15.8的第二个预览版本中,微软发布了一个新Google Android模拟器的预览功能,它能够与Hyper-V兼容。这样的话,最新的Android模拟器就…

ASP.NET Core Razor生成Html静态文件

一、前言最近做项目的时候,使用Util进行开发,使用Razor写前端页面。初次使用感觉还是不大习惯,之前都是前后端分离的方式开发的,但是使用Util封装后的Angular后,感觉开发效率还是杠杠滴。二、问题在发布代码的时候&…

一文看懂.NET的各种变体

曾几何时,我们只有一个.NET,叫作.NET Framework。如果想要开发.NET应用程序,只要使用.NET Framework即可,非常简单。几年之后,出现了.NET变种的寒武纪大爆发(我们称之为“.NET大爆炸”)&#xf…

【最短路】【Floyed】医院设置(ssl 1614)

医院设置 ssl 1614 题目大意: 有n个点,在一个点上安医院,使这个点到其他点的最短路之和最小 原题: Description 设有一棵二叉树(如右图)。其中,圈中的数字表示结点中居民的人口。圈边上数…

拓展 NLog 优雅的输送日志到 Logstash

在上上篇博客通过对aspnetcore启动前配置做了一些更改,以及对nlog进行了自定义字段,可以把请求记录输送到mysql,正式情况可能不会这么部署。因为近期也在学习elk,所以就打算做一个实例,结合nlog把日志输送到logstash&a…

曼哈顿距离与切比雪夫距离的转化及prufer序列

目录 曼哈顿距离与切比雪夫距离的相互转化prufer序列 1. 曼哈顿距离 与 切比雪夫距离 的相互转化 曼哈顿距离 |x1−x2||y1−y2|max(x1−x2y1−y2,x1−x2−y1y2,−x1x2y1−y2,−x1x2−y1y2)|x1−x2||y1−y2|max(x1−x2y1−y2,x1−x2−y1y2,−x1x2y1−y2,−x1x2−y1y2)|x_1 - x…