---
servicecomb:
  protocols:
    grpc:
      listenAddress: 192.168.88.64:40101
    http:
      listenAddress: 192.168.88.64:30101
    rest-admin:
      listenAddress: 192.168.88.64:30102 # listen addr use to adminAPI
  service:
    registry:
      address: http://127.0.0.1:30100 # uri of service center
      #address: https://cse.cn-north-1.myhuaweicloud.com:443 # uri of service center
      scope: full #set full to be able to discover other app's service
      watch: false # set if you want to watch instance change event
      autoIPIndex: true # set to true if u want to resolve source IP to microservice
  #  config:
  #    client:
  #      serverUri: https://cse.cn-north-1.myhuaweicloud.com:443 #uri of config center
  #      refreshMode: 1 # 1: only pull config.
  #      refreshInterval: 30 # unit is second
  #  monitor: #Send monitoring data to CSE monitor Server
  #    client:
  #      serverUri: https://cse.cn-north-1.myhuaweicloud.com:443   # monitor server url
  handler:
    chain:
      Consumer:
        outgoing:  #consumer handlers
        #If registry type is pilot then to make sure traffic goes through mesher provider new handler needs to be added to consumer after loadbalance handler
        #ex: router, ratelimiter-consumer, bizkeeper-consumer, loadbalance, port-selector, transport
      Provider:
        incoming:   #provider handlers
#  loadbalance:
#    strategy:
#      name: Random  # Random|RoundRobin|SessionStickiness
#    retryEnabled: false # if there is error, retry request or not
#    retryOnNext: 2      # times to switch to another instance based on strategy
#    retryOnSame: 3      # times to retry on the same instance
#    backoff:            # backoff policy of retried request
#      kind: constant    # jittered/constant/zero
#      MinMs: 200        # millisecond, Minimum duration to backoff
#      MaxMs: 400        # millisecond, Maximum duration to backoff
## circuit breaker configurations
#  isolation:
#    Consumer:
#      timeout:
#        enabled: true
#      timeoutInMilliseconds: 1000
#      maxConcurrentRequests: 1
#  circuitBreaker:
#    Consumer:
#      enabled: true
#      forceOpen: false
#      forceClosed: false
#      sleepWindowInMilliseconds: 10000
#      requestVolumeThreshold: 1
#      errorThresholdPercentage: 1
#  fallback:
#    Consumer:
#      enabled: true
#      maxConcurrentRequests: 1
#  fallbackpolicy:
#    Consumer:
#      policy: returnnull
#  flowcontrol:
#    Consumer: # for consumer
#      qps:
#        enabled: true  # enable rate limiting or not
#        global:
#          limit: 100   # default limit of consumer
#        limit:
#          Server: 100  # rate limit for request to a provider,it represents 100 request per second
#    Provider:
#      qps:
#        enabled: true  # enable rate limiting or not
#        global:
#          limit: 100   # default limit of provider
#        limit:
#          Server: 100  # rate limit for request from a provider, it represents 100 request per second

#ssl:
## Set those config to make mesher as https service
#  mesher.Provider.cipherPlugin: default
#  mesher.Provider.verifyPeer: false
#  mesher.Provider.cipherSuits: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
#  mesher.Provider.protocol: TLSv1.2
#  mesher.Provider.caFile:
#  mesher.Provider.certFile:
#  mesher.Provider.keyFile:
#  mesher.Provider.certPwdFile:
## Mesher TLS is base on Go Chassis TLS config
## If users wan't to use transparent, ssl config for consumer and provider must be supplied.
## The provider is the service which run in the same host/pod with mesher. for example the service name of provider is AccountService, then the ssl tag is AccountService.rest.Provider
## if u set this , no need to consider about expose your own service as https service,
## your service can only listen on 127.0.0.1, mesher wil expose https and use http to communicate with your service
#  AccountService.rest.Provider.cipherPlugin: default
#  AccountService.rest.Provider.verifyPeer: false
#  AccountService.rest.Provider.cipherSuits: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
#  AccountService.rest.Provider.protocol: TLSv1.2
#  AccountService.rest.Provider.caFile:
#  AccountService.rest.Provider.certFile:
#  AccountService.rest.Provider.keyFile:
#  AccountService.rest.Provider.certPwdFile:
## If a service want to use transparent tls to call other services, it must supplies consumer ssl config for these services.
## for example StoreWeb want to communicate with Account service the  config is like below
#  AccountService.rest.Consumer.cipherPlugin: default
#  AccountService.rest.Consumer.verifyPeer: false
#  AccountService.rest.Consumer.cipherSuits: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
#  AccountService.rest.Consumer.protocol: TLSv1.2
#  AccountService.rest.Consumer.caFile:
#  AccountService.rest.Consumer.certFile:
#  AccountService.rest.Consumer.keyFile:
#  AccountService.rest.Consumer.certPwdFile:
tracing:
  enabled: true #enable distribution tracing
  collectorType: zipkin       #zipkin: Send tracing info to zipkin server
#                              #namedPipe: Write tracing info to linux named pipe.
  collectorTarget: http://127.0.0.1:9411/api/v1/spans #If the collectorType is "zipkin", the target is a zipkin server url, if the collecterType is "file" or "namedPipe", the target is a file path.
  batchSize: 1
  batchInterval: 2s