UNPKG

whale-nest-nacos

Version:

If you are a nest micro service architecture, you can use the SDK, so as to realize service discovery based on nacos, distributed load balancing strategy

36 lines (35 loc) 2.45 kB
import { ClientGrpc } from '@nestjs/microservices'; import { NacosConfigClient } from 'nacos'; import { WhaleNacosClient } from '../baseNacos/WhaleNacosClient'; import { NacosInstance, LoadBalanceServiceOptions, AllowUndefined, Connection, NacosGrpcOptions } from '../interface'; export default class LoadBalanceService { nacosNamingClient: any; nacosConfigClient: AllowUndefined<NacosConfigClient>; serviceClusterName: AllowUndefined<string>; group: string; serviceName: string; packageName: NacosGrpcOptions['packageName']; protoPath: NacosGrpcOptions['protoPath']; loadBalance: (arg0: Connection[]) => ClientGrpc; connectionPool: Connection[]; instancePool: NacosInstance[]; singleClientGrpc: AllowUndefined<ClientGrpc>; proxyClientGrpc: AllowUndefined<ClientGrpc>; hasInstance: AllowUndefined<boolean>; grpcOptions: Partial<NacosGrpcOptions>; nacosClientInstance: WhaleNacosClient; constructor({ group, serviceName, packageName, protoPath, loadBalance, ...grpcOptions }: LoadBalanceServiceOptions); ready(): Promise<void>; buildConnectioPool(serviceName: string, packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): Promise<void>; selectHealthyInstances(serviceName: string, group: AllowUndefined<string>): Promise<NacosInstance[]>; createClientGrpc(ip: string, packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): import("@nestjs/microservices").ClientGrpcProxy; batchCreateClientGrpc(instanceList: NacosInstance[], packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): Connection[]; selectOneConnectionByLoadbalance(): ClientGrpc; subscribe(serviceName: string, packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): void; getGrpcProxyConfig(packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): Promise<void>; subscribeProxyConfig(): void; getConfig(service: string, packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath']): Promise<void>; subscribeConfig(serviceName: string, packageName: NacosGrpcOptions['packageName'], protoPath: NacosGrpcOptions['protoPath'], group?: string): void; setServiceClusterName(instanceList: NacosInstance[]): void; formatInstanceList(instanceList: NacosInstance[]): NacosInstance[]; }