Skip to content

Commit 85b9a43

Browse files
authored
Merge pull request #324 from nacos-group/dev
Minor update for 1.3.9
2 parents 0b0dc17 + 86ba5d8 commit 85b9a43

File tree

6 files changed

+27
-6
lines changed

6 files changed

+27
-6
lines changed

samples/App3/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@
4141
o.RefreshPeriod = TimeSpan.FromSeconds(60);
4242
})
4343
.AddConfigurationServiceEndpointProvider()
44-
.AddNacosSrvServiceEndpointProvider();
44+
.AddNacosServiceEndpointProvider();
4545

4646
builder.Services.ConfigureHttpClientDefaults(static http =>
4747
{
4848
http.AddServiceDiscovery();
4949
});
5050

51-
// 使用IHttpClientFactory
51+
// use IHttpClientFactory
5252
builder.Services.AddHttpClient("app1", cfg =>
5353
{
5454
cfg.BaseAddress = new Uri("http://app1");

src/Nacos.Microsoft.Extensions.ServiceDiscovery/NacosServiceDiscoveryExtensions.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ namespace Microsoft.Extensions.Hosting;
88

99
public static class NacosServiceDiscoveryExtensions
1010
{
11-
public static IServiceCollection AddNacosSrvServiceEndpointProvider(this IServiceCollection services)
11+
/// <summary>
12+
/// Configures a service discovery endpoint provider which uses <see cref="T:Nacos.V2.INacosNamingService" /> to resolve endpoints.
13+
/// </summary>
14+
/// <param name="services">The service collection.</param>
15+
/// <returns>The service collection.</returns>
16+
public static IServiceCollection AddNacosServiceEndpointProvider(this IServiceCollection services)
1217
{
1318
ArgumentNullException.ThrowIfNull(services);
1419

src/Nacos.Microsoft.Extensions.ServiceDiscovery/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ builder.Services.AddServiceDiscovery(o =>
88
o.RefreshPeriod = TimeSpan.FromSeconds(60);
99
})
1010
.AddConfigurationServiceEndpointProvider()
11-
.AddNacosSrvServiceEndpointProvider();
11+
.AddNacosServiceEndpointProvider();
1212
```
1313

1414
## Links

src/Nacos/V2/Naming/Remote/Grpc/Redo/NamingGrpcRedoService.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public void InstanceDeregister(string serviceName, string groupName)
100100
if (_registeredInstances.TryGetValue(key, out var data))
101101
{
102102
data.Unregistering = true;
103+
data.ExpectedRegistered = false;
103104
}
104105
}
105106

@@ -125,7 +126,10 @@ public void RemoveInstanceForRedo(string serviceName, string groupName)
125126
{
126127
string key = NamingUtils.GetGroupedName(serviceName, groupName);
127128

128-
_registeredInstances.TryRemove(key, out _);
129+
if (_registeredInstances.TryGetValue(key, out var data) && data != null && !data.ExpectedRegistered)
130+
{
131+
_registeredInstances.TryRemove(key, out _);
132+
}
129133
}
130134

131135
/// <summary>
@@ -190,6 +194,7 @@ public void SubscriberDeregister(string serviceName, string groupName, string cl
190194
if (_subscribes.TryGetValue(key, out var data))
191195
{
192196
data.Unregistering = true;
197+
data.ExpectedRegistered = false;
193198
}
194199
}
195200

@@ -203,7 +208,10 @@ public void RemoveSubscriberForRedo(string serviceName, string groupName, string
203208
{
204209
string key = ServiceInfo.GetKey(NamingUtils.GetGroupedName(serviceName, groupName), cluster);
205210

206-
_subscribes.TryRemove(key, out _);
211+
if (_subscribes.TryGetValue(key, out var data) && data != null && !data.ExpectedRegistered)
212+
{
213+
_subscribes.TryRemove(key, out _);
214+
}
207215
}
208216

209217
/// <summary>

src/Nacos/V2/Naming/Remote/Grpc/Redo/RedoData{T}.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ protected RedoData(string serviceName, string groupName)
77
{
88
this.ServiceName = serviceName;
99
this.GroupName = groupName;
10+
this.ExpectedRegistered = true;
1011
}
1112

1213
public string ServiceName { get; private set; }
1314

1415
public string GroupName { get; private set; }
1516

17+
public bool ExpectedRegistered { get; set; }
18+
1619
public T Data { get; set; }
1720

1821
public bool Registered { get; set; }

src/Nacos/V2/Naming/Remote/Grpc/Redo/RedoScheduledTask.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ private async Task RedoForInstance(InstanceRedoData redoData)
6666
case RedoType.REGISTER:
6767
if (IsClientDisabled()) return;
6868

69+
if (redoData is BatchInstanceRedoData batchInstanceRedoData)
70+
{
71+
await _clientProxy.BatchRegisterServiceAsync(serviceName, groupName, batchInstanceRedoData.Instances).ConfigureAwait(false);
72+
}
73+
6974
await _clientProxy.DoRegisterService(serviceName, groupName, redoData.Data).ConfigureAwait(false);
7075
break;
7176
case RedoType.UNREGISTER:

0 commit comments

Comments
 (0)