public EurekaUpdatingListenerBuilder leaseDuration(Duration leaseDuration) {
        requireNonNull(leaseDuration, "leaseDuration");
        checkArgument(!leaseDuration.isZero() &&
                      !leaseDuration.isNegative(),
                      "renewalInterval: %s (expected: > 0)",
                      leaseDuration);

        final int leaseDurationSeconds = Ints.saturatedCast(
                leaseDuration.getSeconds() +
                (leaseDuration.getNano() != 0 ? 1 : 0));

        instanceInfoBuilder.leaseDurationSeconds(leaseDurationSeconds);
        return this;
    }
Sets the lease duration. {@value DEFAULT_LEASE_DURATION_SECONDS} seconds is used by default and it's
not recommended to modify this value. Eureka protocol stores this value in seconds internally, and thus
this method will convert the given duration into seconds, rounding up its sub-second part. See
<a href="https://github.com/Netflix/eureka/wiki/Understanding-eureka-client-server-communication#renew">
renew</a>.
eureka/src/main/java/com/linecorp/armeria/server/eureka/EurekaUpdatingListenerBuilder.java