当前位置: 首页 > wzjs >正文

国外论文类网站有哪些方面网站倒计时怎么做

国外论文类网站有哪些方面,网站倒计时怎么做,wordpress虚拟币主题,怎么更改织梦网站文章样式目录 一、目的 二、Consul概述 三、安装和部署 3.1 下载Consul 3.2 安装和运行 3.3 访问Consul的UI页面 四、.Net中使用Consul 4.1 安装Nuget包 4.2 .Net注册服务 4.3 服务健康检测 4.4 服务使用 五、调用Consul示例 六、文章总结 一、目的 在微服务架构中&#x…

目录

一、目的

二、Consul概述

三、安装和部署

3.1 下载Consul

3.2 安装和运行

3.3 访问Consul的UI页面

四、.Net中使用Consul

4.1 安装Nuget包

4.2 .Net注册服务

4.3 服务健康检测

4.4 服务使用

五、调用Consul示例

六、文章总结


一、目的

       在微服务架构中,为了保证服务的高可用,通常需要在服务使用中,通过负载均衡配置,来分发流量和提高系统可用性扩展系统服务的吞吐能力。并消除系统中的单点故障,提升应用系统的可用性。一般来说Nginx就可以实现负载均衡的功能。但是,因为Nginx无法灵活的动态添加服务,因此一般在微服务架构中,会通过一些中间件来实现,服务发现的框架常用的有:consul、zookeeper等。

        这里主要介绍的是在.Net环境下Consul实现服务发现等相关功能。

        

二、Consul概述

        Consul 是一个分布式、高度可用的数据中心感知服务发现平台,包括简单的服务注册、运行状况检查、故障检测和密钥值存储。 它基于这样一个前提:数据中心中的每个节点都运行一个 Consul 代理,并充当服务器或客户端。 每个代理通过可缩放的 gossip 协议进行通信。

        

三、安装和部署

3.1 下载Consul

        Consul官网地址:Consul | HashiCorp Developer ,Consul安装非常简单,在官网,点击download

ps:这里我们可以看到Consul支持多种操作系统可选,这里我们在window上测试,这里选择windows。

3.2 安装和运行

        Consul安装:下载后,解压即可。解压后只有一个consul.exe可执行文件。

        Consul运行命令如下(进入CMD命令行):

cd 对应盘符文件夹\consul_1.17.1_windows_amd64//启动Consulconsul agent -dev//设置ip地址访问-需要时配置consul agent -dev -client=0.0.0.0

3.3 访问Consul的UI页面

        启动后会显示如下内容:

        浏览器中访问地址,http://localhost:8500/ 判断Consul服务是否运行成功。

ps:以上是Consul基本的单机部署,为保证高可用可以对Consul进行集群部署。

四、.Net中使用Consul

4.1 安装Nuget包

        在业务服务中Nuget安装: Consul,把业务服务注册到Consul中

dotnet add packages Consul

4.2 .Net注册服务

        把当前服务的相关地址信息,添加到Consul中:


using Consul;
using Microsoft.Extensions.Configuration;
using System;namespace MicroService.Framework;
public static class ConsulHelper
{/// <summary>/// Consul注册/// </summary>/// <param name="configuration"></param>public static void ConsulRegist(this IConfiguration configuration){//准备链接Consul的ClientConsulClient client = new ConsulClient(c =>{c.Address = new Uri("http://localhost:8500/");c.Datacenter = "test1";});//找到consulstring ip = string.IsNullOrWhiteSpace(configuration["ip"]) ? "127.0.0.1" : configuration["ip"];int port = string.IsNullOrWhiteSpace(configuration["port"]) ? 9001 : int.Parse(configuration["port"]);//命令行参数必须传入//int weight = string.IsNullOrWhiteSpace(configuration["weight"]) ? 1 : int.Parse(configuration["weight"]);client.Agent.ServiceRegister(new AgentServiceRegistration(){ID = "service" + Guid.NewGuid(),//唯一idName = "test_server",//Group--分组Address = ip,Port = port,//Tags = new string[] { weight.ToString() },//标签Check = new AgentServiceCheck(){Interval = TimeSpan.FromSeconds(10),//间隔10s一次HTTP = $"http://{ip}:{port}/Api/Health/Index",//健康检测接口Timeout = TimeSpan.FromSeconds(3),//检测等待时间DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(60)//失败后多久移除}});//命令行参数获取Console.WriteLine($"注册成功:{ip}:{port}");}
}

        程序启动时注册一次:

       

4.3 服务健康检测

        增加一个健康检测接口,接口映射到管道中间件中处理,自定义返回结果:

public static class HealthExtention
{public static void Health(this WebApplication app){app.MapWhen(context => context.Request.Path.Equals("/Api/Health/Index"),applicationBuilder => applicationBuilder.Run(async context =>{Console.WriteLine($"This is Health Check");context.Response.StatusCode = (int)HttpStatusCode.OK;await context.Response.WriteAsync("OK");}));}
}

4.4 服务使用

        运行业务服务,使用端口来区分不同的业务逻辑

dotnet run --urls=http://localhost:9001 --port=9001

五、调用Consul示例

        客户端需要引用Consul的组件,正常微服务模式下,客户端只需要请求网关即可,请求通过网关会转发到其他服务层。

        

        客户端调用Consul中的服务示例

  //consul获取服务api/users/all也得知道string url = null;url = "http://test_server/api/users/all";//consul就像dns--只是负责解析ip:port--清单ConsulClient client = new ConsulClient(c =>{c.Address = new Uri("http://localhost:8500/");c.Datacenter = "test1";});var response = client.Agent.Services().Result.Response;//获取服务清单Uri uri = new Uri(url);string groupName = uri.Host;//服务实例AgentService agentService = null;var dictionary = response.Where(s => s.Value.Service.Equals(groupName, StringComparison.OrdinalIgnoreCase)).ToArray();{//agentService = dictionary[0].Value;//写死第一个}{轮询策略 也是平均,但是太僵硬了agentService = dictionary[iIndex++ % dictionary.Length].Value;}//可自定义负载策略url = $"{uri.Scheme}://{agentService.Address}:{agentService.Port}{uri.PathAndQuery}";string content = InvokeApi(url);var res = JsonConvert.DeserializeObject<IEnumerable<User>>(content);

六、文章总结

        在微服务架构中,使用Consul作为服务发现和配置管理的工具是非常常见的。Consul由HashiCorp开发,提供了一个完整的解决方案,其中包括服务发现、健康检查、键值存储以及多数据中心支持。

        把之所学,以文载之~ 欢迎大家多多交流

相关引用:

https://zhuanlan.zhihu.com/p/701107409

使用 Consul 作为成员管理器 - .NET | Microsoft Learn


文章转载自:

http://h2x0S5YQ.qgcfb.cn
http://yMAmgqWO.qgcfb.cn
http://Ktz4Zqpe.qgcfb.cn
http://tFJDisY1.qgcfb.cn
http://8t6GUYaI.qgcfb.cn
http://SI2leMyc.qgcfb.cn
http://qjqhrFvU.qgcfb.cn
http://mwei37mw.qgcfb.cn
http://tVkaAZAN.qgcfb.cn
http://GkOaXO0s.qgcfb.cn
http://G1SRgbxM.qgcfb.cn
http://nhQZVeRf.qgcfb.cn
http://N4Wxdiqo.qgcfb.cn
http://wckwH4rl.qgcfb.cn
http://YNIFwTpF.qgcfb.cn
http://JnVULF1S.qgcfb.cn
http://morzVmCc.qgcfb.cn
http://TveVUEyS.qgcfb.cn
http://6grLdnph.qgcfb.cn
http://9xXAhUvh.qgcfb.cn
http://MIjvqj5q.qgcfb.cn
http://0FCSlRQl.qgcfb.cn
http://gseBxOIZ.qgcfb.cn
http://Oeon8DN5.qgcfb.cn
http://JK5ynIMl.qgcfb.cn
http://Jm0pfKkd.qgcfb.cn
http://K7aYXLFG.qgcfb.cn
http://5kXm90b9.qgcfb.cn
http://cYtZQnD7.qgcfb.cn
http://A94mOiDU.qgcfb.cn
http://www.dtcms.com/wzjs/654122.html

相关文章:

  • 90设计网站官网杭州网站建设出 名
  • 昆明网站推广咨询平台网站建设及推广费用
  • 假网站怎么制作电子商务网站建设报价
  • 滁州网站建设hi444wordpress和jwplayer
  • 网站兼容做封面的网站
  • 浏览器大全网站如何做网页链接
  • 烟台网站排名优化报价网站php文件上传
  • 成都家居网站建设电商设计用什么软件
  • 定制程序网站网站开发工具 知乎
  • 南京网站建设方案宾馆管理系统
  • 网页制作与网站建设宝典扫描版pdf太原百度网站排名优化
  • thinkphp制作网站开发大连软件培训
  • 域名备案后怎样做网站西安网站建设风尚
  • 重庆门户网站有哪些成品网站免费下载
  • 慈溪网站制作杭州公司申请车牌需要什么条件
  • 淘宝网站经营与建设论文东莞市营销网站建设
  • 个人网站取名手机网站建设的第一个问题
  • 广州做网站比较有名的公司wordpress添加新页面
  • 怎么找到仿牌外贸出口公司的网站贵州定制型网站建设
  • 商城网站建设预算WordPress旋转图标
  • 外国网站上做雅思考试网站推广的资源合作推广
  • 工业设计网站 知乎wordpress 可以多用户
  • 汽车最全的网站什么是网站名称文件夹
  • 做任务领积分兑换别的网站上的会员租房子做民宿在哪个网站
  • 空气炸锅做糕点的网站虚拟空间软件下载
  • 专业柳州网站建设价格cute wordpress主题
  • 开公司可以在哪些网站做推广gta5买办公室 网站正在建设
  • 58同城济南网站建设南通网站建设机构
  • 青岛中小企业建设网站有扶持资金吗手机网站制作良心服务
  • 全球云邮登陆网站淄博网站设计制作