修改代码

This commit is contained in:
ChenYi 2025-04-17 13:35:08 +08:00
parent fa18377f10
commit 6c8ffb3ae5
6 changed files with 49 additions and 15 deletions

View File

@ -89,7 +89,9 @@
"SecurityProtocol": "SaslPlaintext", "SecurityProtocol": "SaslPlaintext",
"SaslMechanism": "Plain", "SaslMechanism": "Plain",
"SaslUserName": "lixiao", "SaslUserName": "lixiao",
"SaslPassword": "lixiao1980" "SaslPassword": "lixiao1980",
"KafkaReplicationFactor": 3,
"NumPartitions": 30
//"Topic": { //"Topic": {
// "ReplicationFactor": 3, // "ReplicationFactor": 3,
// "NumPartitions": 1000 // "NumPartitions": 1000
@ -130,9 +132,7 @@
"OpenDebugMode": true, "OpenDebugMode": true,
"UseTableSessionPoolByDefault": false "UseTableSessionPoolByDefault": false
}, },
"ServerTagName": "JiSheCollectBus3", "ServerTagName": "JiSheCollectBus3",
"KafkaReplicationFactor": 3,
"NumPartitions": 30,
"Cassandra": { "Cassandra": {
"ReplicationStrategy": { "ReplicationStrategy": {
"Class": "NetworkTopologyStrategy", //NetworkTopologyStrategySimpleStrategy "Class": "NetworkTopologyStrategy", //NetworkTopologyStrategySimpleStrategy

View File

@ -1,6 +1,7 @@
using JiShe.CollectBus.IoTDBProvider.Context; using JiShe.CollectBus.IoTDBProvider.Context;
using JiShe.CollectBus.IoTDBProvider.Interface; using JiShe.CollectBus.IoTDBProvider.Interface;
using JiShe.CollectBus.IoTDBProvider.Provider; using JiShe.CollectBus.IoTDBProvider.Provider;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -8,6 +9,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using static Thrift.Server.TThreadPoolAsyncServer;
namespace JiShe.CollectBus.IoTDBProvider namespace JiShe.CollectBus.IoTDBProvider
{ {
@ -15,7 +17,12 @@ namespace JiShe.CollectBus.IoTDBProvider
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.Configure<IoTDBOptions>(context.Services.GetConfiguration().GetSection(nameof(IoTDBOptions)));
var configuration = context.Services.GetConfiguration();
Configure<IoTDBOptions>(options =>
{
configuration.GetSection(nameof(IoTDBOptions)).Bind(options);
});
// 注册上下文为Scoped // 注册上下文为Scoped
context.Services.AddScoped<IoTDBRuntimeContext>(); context.Services.AddScoped<IoTDBRuntimeContext>();

View File

@ -1,4 +1,5 @@
using Confluent.Kafka; using Confluent.Kafka;
using JiShe.CollectBus.Common.Consts;
using JiShe.CollectBus.Kafka.Consumer; using JiShe.CollectBus.Kafka.Consumer;
using JiShe.CollectBus.Kafka.Producer; using JiShe.CollectBus.Kafka.Producer;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
@ -17,14 +18,23 @@ namespace JiShe.CollectBus.Kafka
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
var kafkaSection = configuration.GetSection("Kafka"); //var kafkaSection = configuration.GetSection(CommonConst.Kafka);
KafkaOptionConfig kafkaOptionConfig = new KafkaOptionConfig (); //KafkaOptionConfig kafkaOptionConfig = new KafkaOptionConfig ();
kafkaSection.Bind(kafkaOptionConfig); //kafkaSection.Bind(kafkaOptionConfig);
if (configuration["ServerTagName"] != null) //if (configuration[CommonConst.ServerTagName] != null)
//{
// kafkaOptionConfig.ServerTagName = configuration[CommonConst.ServerTagName]!;
//}
//context.Services.AddSingleton(kafkaOptionConfig);
context.Services.Configure<KafkaOptionConfig>(context.Services.GetConfiguration().GetSection(CommonConst.Kafka));
Configure<KafkaOptionConfig>(options =>
{ {
kafkaOptionConfig.ServerTagName = configuration["ServerTagName"]!; configuration.GetSection(CommonConst.Kafka).Bind(options);
} });
context.Services.AddSingleton(kafkaOptionConfig);
// 注册Producer // 注册Producer
context.Services.AddSingleton<IProducerService, ProducerService>(); context.Services.AddSingleton<IProducerService, ProducerService>();
// 注册Consumer // 注册Consumer

View File

@ -12,4 +12,8 @@
<PackageReference Include="Volo.Abp.Core" Version="8.3.3" /> <PackageReference Include="Volo.Abp.Core" Version="8.3.3" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" />
</ItemGroup>
</Project> </Project>

View File

@ -19,6 +19,16 @@ namespace JiShe.CollectBus.Kafka
/// </summary> /// </summary>
public string ServerTagName { get; set; }= "KafkaFilterKey"; public string ServerTagName { get; set; }= "KafkaFilterKey";
/// <summary>
/// kafka主题副本数量
/// </summary>
public int KafkaReplicationFactor { get; set; }
/// <summary>
/// kafka主题分区数量
/// </summary>
public int NumPartitions { get; set; }
/// <summary> /// <summary>
/// 是否开启过滤器 /// 是否开启过滤器
/// </summary> /// </summary>

View File

@ -1,8 +1,10 @@
using Confluent.Kafka; using Confluent.Kafka;
using JiShe.CollectBus.Common.Consts;
using JiShe.CollectBus.Kafka.AdminClient; using JiShe.CollectBus.Kafka.AdminClient;
using JiShe.CollectBus.Kafka.Attributes; using JiShe.CollectBus.Kafka.Attributes;
using JiShe.CollectBus.Kafka.Consumer; using JiShe.CollectBus.Kafka.Consumer;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -95,12 +97,13 @@ namespace JiShe.CollectBus.Kafka
.Select(m => new { Method = m, Attribute = m.GetCustomAttribute<KafkaSubscribeAttribute>() }) .Select(m => new { Method = m, Attribute = m.GetCustomAttribute<KafkaSubscribeAttribute>() })
.Where(x => x.Attribute != null) .Where(x => x.Attribute != null)
.ToArray(); .ToArray();
var configuration = provider.GetRequiredService<IConfiguration>();
int threadCount = 0; int threadCount = 0;
foreach (var sub in subscribedMethods) foreach (var sub in subscribedMethods)
{ {
var adminClientService = provider.GetRequiredService<IAdminClientService>(); int partitionCount = configuration.GetValue<int>(CommonConst.NumPartitions);
int partitionCount = sub.Attribute!.TaskCount==-1?adminClientService.GetTopicPartitionsNum(sub.Attribute!.Topic) : sub.Attribute!.TaskCount; //var adminClientService = provider.GetRequiredService<IAdminClientService>();
//int partitionCount = sub.Attribute!.TaskCount==-1?adminClientService.GetTopicPartitionsNum(sub.Attribute!.Topic) : sub.Attribute!.TaskCount;
if (partitionCount <= 0) if (partitionCount <= 0)
partitionCount = 1; partitionCount = 1;
for (int i = 0; i < partitionCount; i++) for (int i = 0; i < partitionCount; i++)