sofastack / sofa-rpc-node

SOFARPC Node is a high-performance, high-extensibility, production-level Nodejs RPC framework.
MIT License
612 stars 64 forks source link

egg的rpc.server支持customMeta配置,用于支持自定义元数据; #67

Closed ChangedenCZD closed 4 years ago

ChangedenCZD commented 4 years ago

因为最近发现nacos服务在元数据的release字段不匹配时会报以下内容(特别是为Java spring boot提供服务时) en: When a nacos service is found not to match the [release] field of metadata, the following will be print (especially when providing services for Java spring boot project)

No provider available from registry for service on consumer ** use dubbo version 2.7.4.1, please check status of providers(disabled, not registered or in blacklist).

因此加入了对egg的config.rpc.server.customMeta的兼容,使用实例如下: en: so, this cl support eggjs framework config file filled [config.rpc.server.customMeta]:

module.exports => {
  rpc: {
    registry: {
      type: 'nacos',
      address: '192.168.1.100:8848',
      namespace: 'public'
    },
    server: {
      port: 12200,
      namespace: 'com.chansos.nodejs.service.TestService',
      version: '1.0.0',
      group: '',
      customMeta: {
        release: '2.7.4.1'
      }
    }
  }
}

nacos中对应服务的元数据如下: en: nacos service can found this metadata:

{
    "accepts": "100000",
    "appName": "chansos-nodejs-service",
    "release": "2.7.4.1",
    "weight": "100",
    "pid": "27040",
    "language": "nodejs",
    "interface": "com.chansos.nodejs.service.TestService",
    "version": "1.0.0",
    "timeout": "3000",
    "serialization": "hessian2",
    "protocol": "dubbo",
    "startTime": "1590998139678",
    "dynamic": "true",
    "uniqueId": "",
    "rpcVer": "50400",
    "group": ""
}
fengmk2 commented 4 years ago

如果 release 是标准的,先直接支持?

fengmk2 commented 4 years ago

@ChangedenCZD 将注释和 commit log 都换成英文吧,方便海外开发者一起参与。

ChangedenCZD commented 4 years ago

@fengmk2 release目前不知道是不是标准,spring boot好像有影响,单独引用dubbo(实例git@github.com:gxcsoccer/dubbo-demo.git)好像没问题

直接做成自定义可能会更好。另外发现java发布的dubbo服务的元数据字段比目前nodejs的丰富很多,所以考虑到以后的拓展性,设置为自定义应该是最好的解决方案。

ChangedenCZD commented 4 years ago

@gxcsoccer

killagu commented 4 years ago

改动需要加上对应的单测

codecov-commenter commented 4 years ago

Codecov Report

Merging #67 into master will increase coverage by 0.00%. The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master      #67   +/-   ##
=======================================
  Coverage   98.31%   98.32%           
=======================================
  Files          38       38           
  Lines        1962     1971    +9     
=======================================
+ Hits         1929     1938    +9     
  Misses         33       33           
Impacted Files Coverage Δ
lib/server/service.js 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 314bccf...4c7bf74. Read the comment docs.

ChangedenCZD commented 4 years ago

这样就好了?

server: {
      port: 12200,
      namespace: 'com.chansos.nodejs.service.TestService',
      version: '1.0.0',
      group: '',
      meta: {
         release: '2.7.4.1',
      },
    }

改了

server: {
  customMeta: {
    release: '2.7.4.1'
  }
}