Merge pull request #8241 from dashevchenko/WS_Message_queue_per_session_size
Changed default for wsMsgQueueLimitPerSession
This commit is contained in:
		
						commit
						2f0eb0beb7
					
				@ -84,6 +84,8 @@ public class TbWebSocketHandler extends TextWebSocketHandler implements WebSocke
 | 
			
		||||
    private long sendTimeout;
 | 
			
		||||
    @Value("${server.ws.ping_timeout:30000}")
 | 
			
		||||
    private long pingTimeout;
 | 
			
		||||
    @Value("${server.ws.max_queue_messages_per_session:1000}")
 | 
			
		||||
    private int wsMaxQueueMessagesPerSession;
 | 
			
		||||
 | 
			
		||||
    private final ConcurrentMap<String, WebSocketSessionRef> blacklistedSessions = new ConcurrentHashMap<>();
 | 
			
		||||
    private final ConcurrentMap<String, TbRateLimits> perSessionUpdateLimits = new ConcurrentHashMap<>();
 | 
			
		||||
@ -143,9 +145,11 @@ public class TbWebSocketHandler extends TextWebSocketHandler implements WebSocke
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            var tenantProfileConfiguration = getTenantProfileConfiguration(sessionRef);
 | 
			
		||||
            int wsTenantProfileQueueLimit = tenantProfileConfiguration != null ?
 | 
			
		||||
                    tenantProfileConfiguration.getWsMsgQueueLimitPerSession() : wsMaxQueueMessagesPerSession;
 | 
			
		||||
            internalSessionMap.put(internalSessionId, new SessionMetaData(session, sessionRef,
 | 
			
		||||
                    tenantProfileConfiguration != null && tenantProfileConfiguration.getWsMsgQueueLimitPerSession() > 0 ?
 | 
			
		||||
                            tenantProfileConfiguration.getWsMsgQueueLimitPerSession() : 500));
 | 
			
		||||
                    (wsTenantProfileQueueLimit > 0 && wsTenantProfileQueueLimit < wsMaxQueueMessagesPerSession) ?
 | 
			
		||||
                            wsTenantProfileQueueLimit : wsMaxQueueMessagesPerSession));
 | 
			
		||||
 | 
			
		||||
            externalSessionMap.put(externalSessionId, internalSessionId);
 | 
			
		||||
            processInWebSocketService(sessionRef, SessionEvent.onEstablished());
 | 
			
		||||
 | 
			
		||||
@ -65,6 +65,7 @@ server:
 | 
			
		||||
      max_per_user: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER:10}"
 | 
			
		||||
    max_entities_per_data_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION:10000}"
 | 
			
		||||
    max_entities_per_alarm_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION:10000}"
 | 
			
		||||
    max_queue_messages_per_session: "${TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION:1000}"
 | 
			
		||||
  rest:
 | 
			
		||||
    server_side_rpc:
 | 
			
		||||
      # Minimum value of the server side RPC timeout. May override value provided in the REST API call.
 | 
			
		||||
 | 
			
		||||
@ -25,6 +25,7 @@ import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.queue.ProcessingStrategy;
 | 
			
		||||
import org.thingsboard.server.common.data.queue.SubmitStrategy;
 | 
			
		||||
import org.thingsboard.server.common.data.queue.SubmitStrategyType;
 | 
			
		||||
import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration;
 | 
			
		||||
import org.thingsboard.server.common.data.tenant.profile.TenantProfileQueueConfiguration;
 | 
			
		||||
import org.thingsboard.server.dao.exception.DataValidationException;
 | 
			
		||||
import org.thingsboard.server.dao.service.DataValidator;
 | 
			
		||||
 | 
			
		||||
@ -410,6 +410,9 @@
 | 
			
		||||
            <mat-error *ngIf="defaultTenantProfileConfigurationFormGroup.get('wsMsgQueueLimitPerSession').hasError('min')">
 | 
			
		||||
              {{ 'tenant-profile.too-small-value-one' | translate}}
 | 
			
		||||
            </mat-error>
 | 
			
		||||
            <mat-hint>
 | 
			
		||||
              {{ 'tenant-profile.queue-size-is-limited-by-system-configuration' | translate}}
 | 
			
		||||
            </mat-hint>
 | 
			
		||||
          </mat-form-field>
 | 
			
		||||
          <div fxFlex></div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
@ -3600,6 +3600,7 @@
 | 
			
		||||
        "incorrect-pattern-for-rate-limits": "The format is comma separated pairs of capacity and period (in seconds) with a colon between, e.g. 100:1,2000:60",
 | 
			
		||||
        "too-small-value-zero": "The value must be bigger than 0",
 | 
			
		||||
        "too-small-value-one": "The value must be bigger than 1",
 | 
			
		||||
        "queue-size-is-limited-by-system-configuration": "The size of the queue is also limited by the system configuration.",
 | 
			
		||||
        "cassandra-tenant-limits-configuration": "Cassandra query for tenant",
 | 
			
		||||
        "ws-limit-max-sessions-per-tenant": "Sessions per tenant maximum number",
 | 
			
		||||
        "ws-limit-max-sessions-per-customer": "Sessions per customer maximum number",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user