类 IoGameGlobalConfig

java.lang.Object
com.iohao.game.bolt.broker.core.common.IoGameGlobalConfig

public class IoGameGlobalConfig extends Object
ioGame 全局默认配置
作者:
渔民小镇
日期:
2022-11-11
  • 字段详细资料

    • brokerPort

      public int brokerPort
      broker (游戏网关)默认端口
    • timeoutMillis

      public int timeoutMillis
      bolt 消息发送超时时间
    • gossipListenPort

      public int gossipListenPort
      集群默认监听端口 Gossip listen port
    • openLog

      public boolean openLog
      true 开启日志
    • requestResponseLog

      public boolean requestResponseLog
      true 开启请求响应相关日志,默认为 false
    • externalLog

      public boolean externalLog
      true 开启对外服相关日志,默认为 false
    • broadcastLog

      public boolean broadcastLog
      true 开启广播相关日志,默认为 false
    • brokerSniperToggleAK47

      public boolean brokerSniperToggleAK47
      Broker(游戏网关)转发消息容错配置
           游戏逻辑服与游戏对外服通信时,如果没有明确指定要通信游戏对外服,游戏网关则会将消息转发到所有的游戏对外服上。
           如果指定了游戏对外服的,游戏网关则会将消息转发到该游戏对外服上,而不会将消息转发到所有的对外服上。
      
           当为 true 时,开启容错机制
               表示开发者在发送消息时,如果指定了游戏对外服的,
               但【游戏网关】中没有找到所指定的【游戏对外服】,则会将消息转发到所有的游戏对外服上,
               这么做的目的是,即使开发者填错了指定的游戏对外服,也能保证消息可以送达到游戏对外服。
      
           当为 false 时,关闭容错机制
               表示在【游戏网关】中找不到指定的【游戏对外服】时,则不管了。
      
           支持的通讯方式场景
               广播、推送
               获取游戏对外服的数据与扩展
       
      另一种叙述版本
           作用:
               在游戏逻辑服发送广播时,支持指定游戏对外服来广播;
               如果你能事先知道所要广播的游戏对外服,那么在广播时通过指定游戏对外服,可以避免一些无效的转发。
      
               为了更好的理解的这个配置的作用,这里将作一些比喻:
               1. 将广播时指定的游戏对外服,看作是目标
               2. 将发送广播的游戏逻辑服,看作是命令
               3. 而 Broker(游戏网关)职责是对消息做转发,可看成是一名射击员;射击员手上有两把枪,分别是狙击枪和 AK47。
      
               狙击枪的作用是单点目标,而 AK47 的作用则是扫射多个目标(就是所有的游戏对外服)。
      
           场景一:
               当设置为 true 时,表示射击员可以将手中的狙击切换为 AK47,什么意思呢?
               意思就是如果在【游戏网关】中没有找到所指定的【游戏对外服】,则将广播数据发送给【所有的游戏对外服】。(换 AK 来扫射)
               这么做的目的是,即使开发者填错了指定的游戏对外服,也能保证消息可以送达到游戏对外服。
      
           场景二:
               当设置为 false 时,表示找不到指定的【游戏对外服】时,则不管了。
       
    • brokerClusterLog

      public boolean brokerClusterLog
      true 开启集群相关日志
    • brokerClusterFixedRateLog

      public boolean brokerClusterFixedRateLog
      true 使用调度器打印集群信息,默认 30 秒打印一次(目前不提供打印频率设置)
    • openTraceId

      public boolean openTraceId
      true 表示开启 traceId 特性
    • userProcessorExecutorStrategy

      public UserProcessorExecutorStrategy userProcessorExecutorStrategy
      UserProcessor 构建 Executor 的策略
           默认使用 DefaultUserProcessorExecutorStrategy 实现类,
           内容使用 Executors.newVirtualThreadPerTaskExecutor()
       
      另请参阅:
      • DefaultUserProcessorExecutorStrategy
      • VirtualThreadUserProcessorExecutorStrategy
    • userProcessorExecutorSelectorStrategy

      public UserProcessorExecutorSelectorStrategy userProcessorExecutorSelectorStrategy
  • 构造器详细资料

    • IoGameGlobalConfig

      public IoGameGlobalConfig()
  • 方法详细资料

    • getExecutor

      public Executor getExecutor(UserProcessorExecutorAware userProcessorExecutorAware)
    • enableUserProcessorExecutorSelector

      public void enableUserProcessorExecutorSelector()
    • getExecutorSelector

      public UserProcessorExecutorSelectorStrategy getExecutorSelector()
    • isExternalLog

      public boolean isExternalLog()
    • isBrokerClusterLog

      public boolean isBrokerClusterLog()
    • isBrokerClusterFixedRateLog

      public boolean isBrokerClusterFixedRateLog()
    • setEventBusLog

      public void setEventBusLog(boolean eventBusLog)