Compare commits
10 Commits
Author | SHA1 | Date |
---|---|---|
|
8a5568de77 | |
|
57cd21060b | |
|
7fa34ff6a6 | |
|
22c0e57947 | |
|
cdea9a26b1 | |
|
50ac48e026 | |
|
3c6840bdd7 | |
|
4c9af68899 | |
|
cc6667c5b1 | |
|
d6ee163a36 |
|
@ -3,8 +3,11 @@
|
|||
const NacosConfigClient = require('nacos').NacosConfigClient;
|
||||
|
||||
const configClient = new NacosConfigClient({
|
||||
serverAddr: '106.14.43.196:8848',
|
||||
serverAddr: 'aliyun.nacos.net:80',
|
||||
namespace: '',
|
||||
// 如果nacos开启了认证鉴权,需要在此处填写用户名密码
|
||||
// username: 'xxx',
|
||||
// password: 'xxx'
|
||||
});
|
||||
|
||||
function sleep(time){
|
||||
|
@ -18,7 +21,7 @@ function sleep(time){
|
|||
(async () => {
|
||||
await configClient.ready();
|
||||
|
||||
const dataId = 'nacos.test.1';
|
||||
const dataId = 'nacos.test.22';
|
||||
const group = 'DEFAULT_GROUP';
|
||||
const str = `example_test_${Math.random()}_${Date.now()}`;
|
||||
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
"name": "nacos-example",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"nacos": "^1.0.0"
|
||||
"nacos": "^2.5.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,5 +16,5 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"version": "2.4.2"
|
||||
"version": "2.6.0"
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"ci": "npm run cov",
|
||||
"build": "lerna run build && cp ./README.md ./packages/nacos/README.md"
|
||||
},
|
||||
"license": "Apache",
|
||||
"license": "Apache-2.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/nacos-group/nacos-sdk-nodejs/issues"
|
||||
},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "nacos-config",
|
||||
"version": "2.4.1",
|
||||
"version": "2.6.0",
|
||||
"description": "nacos config client",
|
||||
"keywords": [
|
||||
"nacos-config",
|
||||
|
|
|
@ -19,6 +19,7 @@ import { ClientOptionKeys, IConfiguration, IServerListManager } from './interfac
|
|||
import * as urllib from 'urllib';
|
||||
import * as crypto from 'crypto';
|
||||
import { encodingParams, transformGBKToUTF8 } from './utils';
|
||||
import * as dns from 'dns';
|
||||
|
||||
export class HttpAgent {
|
||||
|
||||
|
@ -195,6 +196,9 @@ export class HttpAgent {
|
|||
break;
|
||||
}
|
||||
} catch (err) {
|
||||
if (err.code === dns.NOTFOUND) {
|
||||
throw err;
|
||||
}
|
||||
err.url = `${method} ${url}`;
|
||||
err.data = data;
|
||||
err.headers = headers;
|
||||
|
|
|
@ -262,6 +262,8 @@ export interface ClientOptions {
|
|||
serverAddr?: string; // 用于直连,包含端口
|
||||
unit?: string; // 内部单元化用
|
||||
nameServerAddr?: string; // 老的兼容参数,逐步废弃,同 endpoint
|
||||
username?: string; // 认证的用户名
|
||||
password?: string; // 认证的密码
|
||||
cacheDir?: string; // 缓存文件的路径
|
||||
identityKey?: string; // Identity Key
|
||||
identityValue?: string; // Identity Value
|
||||
|
|
|
@ -3,14 +3,35 @@
|
|||
* Create Time: 2021/8/20 9:12
|
||||
*/
|
||||
interface Instance {
|
||||
instanceId: string,
|
||||
ip: string, //IP of instance
|
||||
port: number, //Port of instance
|
||||
healthy: boolean,
|
||||
enabled: boolean,
|
||||
serviceName?: string,
|
||||
weight?: number,
|
||||
ephemeral?: boolean,
|
||||
clusterName?: string
|
||||
}
|
||||
|
||||
type Hosts = string[];
|
||||
export interface Host {
|
||||
instanceId: string;
|
||||
ip: string;
|
||||
port: number;
|
||||
weight: number;
|
||||
healthy: boolean;
|
||||
enabled: boolean;
|
||||
ephemeral: boolean;
|
||||
clusterName: string;
|
||||
serviceName: string;
|
||||
metadata: any;
|
||||
instanceHeartBeatInterval: number;
|
||||
instanceIdGenerator: string;
|
||||
instanceHeartBeatTimeOut: number;
|
||||
ipDeleteTimeout: number;
|
||||
}
|
||||
|
||||
type Hosts = Host[];
|
||||
|
||||
interface SubscribeInfo {
|
||||
serviceName: string,
|
||||
|
@ -18,11 +39,22 @@ interface SubscribeInfo {
|
|||
clusters?: string
|
||||
}
|
||||
|
||||
interface NacosNamingClientConfig {
|
||||
logger: typeof console,
|
||||
serverList: string | string[],
|
||||
namespace?: string,
|
||||
username?: string,
|
||||
password?: string,
|
||||
endpoint?: string,
|
||||
vipSrvRefInterMillis?: number,
|
||||
ssl?: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* Nacos服务发现组件
|
||||
*/
|
||||
export class NacosNamingClient {
|
||||
constructor (config: { logger: typeof console, serverList: string | string[], namespace?: string })
|
||||
constructor (config: NacosNamingClientConfig);
|
||||
|
||||
ready: () => Promise<void>;
|
||||
// Register an instance to service
|
||||
|
@ -44,6 +76,14 @@ export class NacosNamingClient {
|
|||
clusters?: string, //Cluster names
|
||||
subscribe?: boolean //whether subscribe the service, default is true
|
||||
) => Promise<Hosts>;
|
||||
// Select instance list of service.
|
||||
selectInstances: (
|
||||
serviceName: string,
|
||||
groupName?: string,
|
||||
clusters?: string,
|
||||
healthy?: boolean,
|
||||
subscribe?: boolean
|
||||
) => Promise<Hosts>;
|
||||
// Get the status of nacos server, 'UP' or 'DOWN'.
|
||||
getServerStatus: () => 'UP' | 'DOWN';
|
||||
subscribe: (
|
||||
|
@ -54,4 +94,4 @@ export class NacosNamingClient {
|
|||
info: SubscribeInfo | string, //service info, if type is string, it's the serviceName
|
||||
listener: (host: Hosts) => void //the listener function
|
||||
) => void;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ const Base = require('sdk-base');
|
|||
const Constants = require('../const');
|
||||
const ServiceInfo = require('./service_info');
|
||||
const PushReceiver = require('./push_receiver');
|
||||
const equals = require('equals');
|
||||
|
||||
class HostReactor extends Base {
|
||||
constructor(options = {}) {
|
||||
|
@ -92,7 +93,7 @@ class HostReactor extends Base {
|
|||
const key = host.ip + ':' + host.port;
|
||||
newHostMap.set(key, host);
|
||||
|
||||
if (oldHostMap.has(key) && JSON.stringify(host) !== JSON.stringify(oldHostMap.get(key))) {
|
||||
if (oldHostMap.has(key) && !equals(host, oldHostMap.get(key))) {
|
||||
modHosts.push(host);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "nacos-naming",
|
||||
"version": "2.4.2",
|
||||
"version": "2.6.0",
|
||||
"description": "nacos (https://nacos.io/en-us/) nodejs sdk",
|
||||
"main": "index.js",
|
||||
"files": [
|
||||
|
@ -43,6 +43,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"address": "^1.1.0",
|
||||
"equals": "^1.0.5",
|
||||
"mz-modules": "^2.1.0",
|
||||
"sdk-base": "^3.6.0",
|
||||
"urllib": "^2.33.3",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "nacos",
|
||||
"version": "2.4.2",
|
||||
"version": "2.6.0",
|
||||
"description": "nacos client main package",
|
||||
"keywords": [
|
||||
"nacos",
|
||||
|
@ -12,8 +12,8 @@
|
|||
"main": "dist/index.js",
|
||||
"author": "czy88840616@gmail.com",
|
||||
"dependencies": {
|
||||
"nacos-config": "^2.4.1",
|
||||
"nacos-naming": "^2.4.2"
|
||||
"nacos-config": "^2.6.0",
|
||||
"nacos-naming": "^2.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mocha": "^5.2.5",
|
||||
|
|
Loading…
Reference in New Issue