func NewRequestRetrier(uris []string, retrier retry.Retrier, maxAttempts int) *RequestRetrier {
	offset := 0
	return &RequestRetrier{
		currentURI:    uris[offset],
		retrier:       retrier,
		uris:          uris,
		offset:        offset,
		relocatedURIs: map[string]struct{}{},
		failedURIs:    map[string]struct{}{},
		maxAttempts:   maxAttempts,
		attemptCount:  0,
	}
}
NewRequestRetrier creates a new request retrier.
Regardless of maxAttempts, mesh URIs will never be retried.
package internal
import (
	"net/http"
	"net/url"
	"strings"
	"github.com/palantir/pkg/retry"
)
const (
	meshSchemePrefix = "mesh-"
)
type RequestRetrier struct {
	currentURI    string
	retrier       retry.Retrier
	uris          []string
	offset        int
	relocatedURIs map[string]struct{}
	failedURIs    map[string]struct{}
	maxAttempts   int
	attemptCount  int
}