docs: public void addNotificationHandler(String serviceName, NotificationHandler handler) {
  
          ServiceInstanceUtils.validateServiceName(serviceName);
          if (handler == null) {
              throw new ServiceException(ErrorCode.SERVICE_DIRECTORY_NULL_ARGUMENT_ERROR,
                      ErrorCode.SERVICE_DIRECTORY_NULL_ARGUMENT_ERROR.getMessageTemplate(),
                      "NotificationHandler");
          }
  
          List<InstanceChangeListener<ModelServiceInstance>> listeners = changeListenerMap.get(serviceName);
          if (listeners != null) {
              for (InstanceChangeListener<ModelServiceInstance> listener : listeners) {
                  if (listener instanceof NotificationHandlerAdapter
                          && ((NotificationHandlerAdapter) listener).getAdapter() == handler) {
                      //exist, log error and return
                      LOGGER.error("Try to register a handler {} that has already been registered.", handler);
                      return;
                  }
              }
          }
          addInstanceChangeListener(serviceName, new NotificationHandlerAdapter(handler));
      }