Scala SDK

Module Info

需要在项目中添加如下依赖:

sbt
libraryDependencies += "com.akka-fusion.fusion" %% "discoveryx-client" % "0.1.0"
Gradle
dependencies {
  compile group: 'com.akka-fusion.fusion', name: 'discoveryx-client_2.13', version: '0.1.0'
}
Maven
<dependency>
  <groupId>com.akka-fusion.fusion</groupId>
  <artifactId>discoveryx-client_2.13</artifactId>
  <version>0.1.0</version>
</dependency>

使用

gRPC Client配置

Fusion DiscoveryX Client for Scala SDK 使用 akka-grpc 开发,使用时需要配置 akka.grpc.client 指定 DiscoveryX Server 地址。

akka.grpc.client {
  // DiscoveryX 配置管理服务
  "fusion.discoveryx.grpc.ConfigService" {
    // 是否使用 tls
    use-tls = false
    host = "127.0.0.1"
    port = 48000
  }
  // DiscoveryX 服务注册、发现管理服务
  "fusion.discoveryx.grpc.NamingService" {
    // 是否使用 tls
    use-tls = false
    host = "127.0.0.1"
    port = 48000
  }
}
Note

gRPC服务全限定名在HOCON配置里需要使用英文双引号括起来,因为HOCON默认使用英文点号来区分配置层级。

测试时可以把use-tls参数设置为false,但在生产环境中建议使用默认值true

自动注册服务

若需要把服务自动注册到 DiscoveryX Server,需要配置 discoveryx.client.naming.auto-registration = true 。同时,还需要设置namespaceservice-nameipport,其中ip可通过自动检测获取(当不指定或设置为空字符串时,若发现自动检测到的IP地址不正确请手动指定)。

discoveryx.client {
  naming {
    // 自动注册服务。default: false
    #auto-registration = false

    // 心跳间隔
    heartbeat-interval = 10.seconds

    // 查询服务实例时只返回一个健康实例(轮询)
    one-healthy = true

    // 查询服务实例时返回所有健康实例(若 one-healthy 设置为 true,则 all-healthy 不进行判断)
    all-healthy = false

    // 名称空间
    #namespace = ""

    // 注册的服务实例名
    #service-name = "discoveryx"

    // 注册的服务实例IP地址
    #ip = "127.0.0.1"

    // 注册的服务实例网络端口
    #port = 8000

    // 是否启用。default: true
    #enable = true

    // 设置为true服务注册后立即可用,否则等一次心跳消息后可用。default: true
    #health = true

    // 注册的服务实例权重。default: 1.0
    #weight = 1.0

    // 注册的服务实例元数据
    #  env = test
    #  application = web-backend
    #}

    // 健康检查方法,支持:CLIENT_REPORT, SERVER_SNIFF。default:CLIENT_REPORT
    #healthy-check-method = CLIENT_REPORT

    // 健康检查间隔(秒),当 healthy-check-method = SERVER_SNIFF 时有效。default:15
    #healthy-check-interval = 15

    // 几次健康检查失败设置服务实例为不健康状态。default:1
    #unhealthy-check-count = 1

    // 健康检查协议,支持:UDP、TCP、HTTP(当 healthy-check-method = SERVER_SNIFF 时有效 )。default:HTTP
    #protocol = HTTP

    // 健康检查是否使用 TLS。default: false
    # use-tls = false

    // protocol 设置为 HTTP 或 HTTPS 时指定的GET请求URI PATH路径
    // 对于HTTP(HTTPS)检测,当HTTP响应状态值为 [200, 299] 范围内时认为服务实例状态为 healthy。

    // 调用NamingClient.generateUri默认超时时间。default: 5 seconds
    #query-timeout = 5.seconds
  }
}
在此文档中发现错误?该页面的源代码可以在 这里 找到。欢迎随时编辑并提交Pull Request。