ServiceComb常见配置项解析

ServiceComb常见配置项

APPLICATION_ID: blog
service_description:
  name: comment-service
  version: 2.0.11
  properties:
    allowCrossApp: false
  environment: production  #production, development,在开发的时候配置成开发模式,修改契约可以不变更版本
servicecomb:
  service:
    registry:
      address: http://10.21.208.113:30100
      instance:
        healthCheck:
          interval: 30          # 健康检查间隔时间,默认30秒,可选
          times: 3              # 健康检查检测次数,默认3次,可选
        watch: true             # watch机制可以快速感知实例变化
        preferIpAddress: false #是否选用ip地址作为实例名称,true表示使用ip,否则使用hostname
        diagnose:
          interval: 12
  config:                      
    client:
      serverUri: http://10.21.208.113:30103  #如果没有配置,则表示不连接配置中心
      refreshMode: 1       #配置刷新方式,0表示服务端push监听的机制,1表示客户端主动pull,通过LB(例如逻辑多租)只能配置成1
      refresh_interval: 5000    #刷新间隔时间
      first_refresh_interval: 5000   #首次刷新延迟时间
  monitor:
    client:
      enabled: true       # 是否开启,如果不需要对接,请设置成false
  rest:
    address: 0.0.0.0:18082?sslEnabled=false&protocol=http2  #sslEnabled表示是否开启tls,protocol表示支持协议,默认为http
    client:
      thread-count: 8
      connection:
        maxPoolSize: 10
        idleTimeoutInSeconds: 30   #单位秒
        keepAlive: true            #是否为长连接
    server:
      thread-count: 8
      compression: false          #支持服务端压缩
      maxHeaderSize: 8192         #单位byte
      timeout: 3000               #单位毫秒,使用rest over servlet方式时生效
      connection:
        idleTimeoutInSeconds: 60  # 服务端连接超时时间,一个连接在指定时间内没有接收到请求
  uploads:
    directory: /home/upload  # 文件上传
    maxSize: 1024            #上传文件body大小,也可以作为传输数据的大小限制
    maxFileSize: 3           #文件个数限制
    fileSizeThreshold: 0     #磁盘大小阈值
  request:
    timeout: 1000            #请求超时时间,支持全局、微服务、契约、方法四个级别
  accesslog:
    enabled: true
    pattern: "%h %{dd/MMM/yyyy:HH:mm:ss.SSSZ|GMT+0008|en_US}t %r %s %B %D"
  metrics:
    enabled: true
    window_time: 600000
    publisher:
      defaultLog:
        enabled: true
  handler:
    chain:
      Provider:
        default: qps-flowcontrol-provider,bizkeeper-provider
      Consumer:
        default: qps-flowcontrol-consumer,loadbalance,bizkeeper-consumer
  # 数据中心,用于服务做亲缘性选择,优先调用本az服务
  datacenter:
    name: myDC               #数据中心名称,
    region: my-Region        #数据中心区域,比如华南soutchchina、华北northchina
    availableZone: my-Zone   #数据中心可用取sz
  isolation:
    Consumer:
      maxConcurrentRequests: 20
  #限流相关配置
  flowcontrol:
    Provider:   #服务端限流
      qps:
        global:
          limit: 1000  #全局限流,默认是最大值
        limit:
          service1: 500 #对单个consuer服务进行限流,默认无,如果有要求需要添加
    Consumer:
      qps:
        limit:
          serivce2:   #对服务级别限流500
            schema1:  #对服务的schema级别进行限流500
              operation1: 100  #对服务的schema的操作级别进行限流
  #服务容错
  fallback: #容错策略支持全局、微服务和方法级别
    Consumer:
      springmvc:
        codeFirst:
          fallbackForce:
            enabled: true  #是否开启容错机制,默认为false
            force: true   #是否强制开启容错机器
            maxConcurrentRequests: 10  #隔离时最大的并发数,默认为10,客户端调用时
            
  fallbackpolicy:  #容错策略,默认提供returnNull throwException fromCache三种策略,用户可以自己实现org.apache.servicecomb.bizkeeper.FallbackPolicy接口, policy支持全局、微服务和方法级别
    Consumer:
      springmvc:
        codeFirst:
          fallbackFromCache:
            policy: fromCache  # 从缓存中获取上一次成功的数据, 
          fallbackReturnNull:
            policy: returnNull    #服务降级返回null,用户需要对该值进行处理,不能抛出空指针异常
          fallbackThrowException:
            policy: throwException  #服务降级抛出的异常为org.apache.servicecomb.core.exception.CseException,降级时,用户需要捕获该异常做自己的逻辑
          fallbackForce:
            policy: mycustom
  #熔断策略支持全局、微服务和方法级别
  circuitBreaker:
    Consumer:
      springmvc:
        codeFirst:
          fallbackFromCache:
            enabled: true    #是否开启熔断
            forceOpen: true  #强制开启熔断
            forceClosed: false  #强制关闭熔断,和forceOpen互斥
            sleepWindowInMilliseconds: 15000  #熔断时间,默认15000毫秒
            requestVolumeThreshold: 20        #统计时间窗内最少请求次数,如果没有达到该请求次数不会进行熔断,即使失败率达到熔断要求
            errorThresholdPercentage: 50      #失败率,统计时间窗内请求错误率,达到该限制后会进行熔断,默认50%
  #负载均衡、路由策略,重试机制支持全局和微服务两个级别
  loadbalance:
    bservice:
      retryEnabled: true  #是否开启重试机制
      retryOnSame: 1      #在同一个机器上重试次数,默认为0,重试需要保证可重入性、幂等性
      retryOnNext: 2      #在另外实例上重试次数,默认为0,如果是无状态的请求,建议选择在下一个节点上行进行重试
      retryHandler: default  #重试handler,默认为default,对应com.netflix.client.DefaultLoadBalancerRetryHandler,也可以实现自己的重试机制。可选
      transactionControl:
        options:
          tag0: value0  #过滤器的属性,到时候只选择实例也有同样的属性的实例
        policy: org.apache.servicecomb.loadbalance.filter.SimpleTransactionControlFilter  #分流策略,默认使用简单的分流策略,选择properties包含filter的所有options的所有实例,即filter的options为所选实例的properties的一个子集
      isolation:    # 支持服务级别和全局
        enabled: true                 #开启隔离机制
        errorThresholdPercentage: 20  #隔离错误率
        enableRequestThreshold: 20    #隔离门槛
        singleTestTime: 10000         #隔离后有机会重试的时间
      strategy:
        name: RoundRobin #现在支持RoundRobin轮询 Random随机 WeightedResponse返回值权重 SessionStickiness会话粘滞,默认为RoundRobin
      SessionStickinessRule: #当会话粘滞策略开启后生效
        sessionTimeoutInSeconds: 30    #会话粘滞的时间,默认30s,可选
        successiveFailedTimes: 5       #会话 粘滞最大错误数,默认5次,可选
  references:
    version-rule: 0+  #对所有服务的版本依赖范围
    abcservice:
      version-rule: 1.0.1+ #对特定的服务版本依赖范围
      transport: rest      #当服务端开启多种协议是,显示指定传输协议,默认为空,可设置为“”、rest、highway
  executor:
    default:
      thread-per-group: 200   # 同步开发模式下面的默认工作线程数
ssl:
  engine: openssl
  protocols: TLSv1.2
  authPeer: false
  checkCN.host: false
  trustStore: trust.jks
  trustStoreType: JKS
  trustStoreValue: ********
  keyStore: server.p12
  keyStoreType: PKCS12
  keyStoreValue: ********
  crl: revoke.crl
  sslCustomClass: com.service.comment.DemoSSLCustom

2、性能相关配置

1、同步开发模式下,根据业务接口调整默认工作线程,默认为CPU个数
thread-per-group: 200
2、同步开发模式下,根据业务需要,动态调整thread-count,默认为1,一般建议配置成cpu*2
thread-count: 8
3、根据接口时延,调整Http连接池大小,但是不建议连接数配置过大。按经验不要超过50,最好是进行压力测试得出一个比较合理的值。
maxPoolSize: 10
4、同步开发转成全异步开发模式,参考CSE开发文档Reactive

5、调整虚拟机启动参数

6、如果使用Https连接,建议使用openssl作为SSLEngine
ssl:
engine: openssl

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352