code: func (r *Router) Route(
  	ctx context.Context,
  	rpcType protos.RPCType,
  	svType string,
  	route *route.Route,
  	msg *message.Message,
  ) (*cluster.Server, error) {
  	if r.serviceDiscovery == nil {
  		return nil, constants.ErrServiceDiscoveryNotInitialized
  	}
  	serversOfType, err := r.serviceDiscovery.GetServersByType(svType)
  	if err != nil {
  		return nil, err
  	}
  	if rpcType == protos.RPCType_User {
  		server := r.defaultRoute(serversOfType)
  		return server, nil
  	}
  	routeFunc, ok := r.routesMap[svType]
  	if !ok {
  		logger.Log.Debugf("no specific route for svType: %s, using default route", svType)
  		server := r.defaultRoute(serversOfType)
  		return server, nil
  	}
  	return routeFunc(ctx, route, msg.Data, serversOfType)
  }
docs: // Route gets the right server to use in the call