千万级秒杀系统-3.基础设施层Consul注册落地

千万级秒杀系统-3.基础设施层Consul注册落地

项目架构

在这里插入图片描述

基础设施层创建

引入nuget包因为使用abp改造基础实施层所以引入abp相关及consul注册

在这里插入图片描述

    <PackageReference Include="Consul" Version="1.6.10.9" />
    <PackageReference Include="Volo.Abp.Autofac" Version="4.4.3" />
    <PackageReference Include="Volo.Abp.Core" Version="4.4.3" />

创建consul服务注册及发现通用代码。(由于代码有点多所以这里贴上gitee仓库地址)

WBC.Products gitee地址

在这里插入图片描述

创建InfrastructureModule

在这里插入图片描述

/*----------------------------------------------------------------
 * 创建者:WangBenChi
 * 创建时间:2023/4/15 15:16:24
 *----------------------------------------------------------------*/

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Volo.Abp.Autofac;
using Volo.Abp.Modularity;
using WBC.Microservices.Infrastructure.Registry.Extentions;

namespace WBC.Microservices.Infrastructure
{
    [DependsOn(typeof(AbpAutofacModule))]
    public class InfrastructureModule : AbpModule
    {
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            var configuration = context.Services.GetConfiguration();
            IHostEnvironment hostEnvironment = context.Services.GetSingletonInstance<IHostEnvironment>();
            context.Services.AddServiceRegistry();

            //base.ConfigureServices(context);
        }
    }
}

以用户微服务为例进行注册其他微服务同理

1、添加项目引用

在这里插入图片描述

2、在UserHttpApiHostModule中使用

在这里插入图片描述

3、服务注册

在这里插入图片描述


            // consul注册
            Configure<ServiceRegistryOptions>(options =>
            {
                options.ServiceId = Guid.NewGuid().ToString();
                options.ServiceName = configuration["ConsulRegistry:ServiceName"];
                options.ServiceAddress = Environment.GetEnvironmentVariable("ASPNETCORE_URLS") != null ? Environment.GetEnvironmentVariable("ASPNETCORE_URLS") : configuration["ConsulRegistry:ServiceAddress"];
                options.HealthCheckAddress = configuration["ConsulRegistry:HealthCheckAddress"];
                options.RegistryAddress = configuration["ConsulRegistry:RegistryAddress"];//"http://localhost:8500";
            });
            //心跳检测
            context.Services.AddHealthChecks();

4、开启心跳检测中间件

在这里插入图片描述

//心跳检测
app.UseHealthChecks("/HealthCheck");

5、appsettings.json配置Consul信息

在这里插入图片描述

"ConsulRegistry": {
    "ServiceName": "userservices",
    "RegistryAddress": "http://localhost:8500",
    "HealthCheckAddress": "/HealthCheck"
  }

6、重新生成项目并执行进行测试是否能够注册成功及注销

在这里插入图片描述
在这里插入图片描述

其他微服务同理进行注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值