[Д2] 1. Разделить URL-адрес на структурные части. Для этого используйте java.net.URL
.
2. Кодируйте каждую структурную часть правильно!
3. Использовать IDN.toASCII(putDomainNameHere)
- Punycode кодировать имя хоста!
4. Используйте java.net.URI.toASCIIString()
для процентного кодирования, кодированного в кодировке NFC unicode - (лучше было бы NFKC!). Для получения дополнительной информации см.: Как правильно закодировать этот URL
URL url= new URL("http://example.com/query?q=random word £500 bank $");
URI uri = new URI(url.getProtocol(), url.getUserInfo(), IDN.toASCII(url.getHost()), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
String correctEncodedURL=uri.toASCIIString();
System.out.println(correctEncodedURL);
Печать
http://example.com/query?q=random%20word%20%C2%A3500%20bank%20$
Развертывания и ReplicationControllers предназначены для использования без гражданства и являются довольно легкими. StatefulSets используются, когда состояние должно сохраняться. Поэтому последние используют volumeClaimTemplates
/ претензий к постоянным томам, чтобы гарантировать, что они смогут сохранить состояние через перезагрузки компонентов.
Итак, если ваше приложение имеет статус stateful или если вы хотите развернуть хранилище с сохранением состояния поверх Kubernetes, используйте StatefulSet.
Если ваше приложение не имеет статуса или если состояние может быть создано из бэкэнд-систем во время старта, используйте Deployments.
Более подробную информацию можно найти здесь и здесь .
Используйте «StatefulSet» с распределенным приложением, которое требует, чтобы каждый узел имел постоянное состояние и возможность настраивать произвольное количество узлов через конфигурацию (replicas = 'X').
Все узлы в конфигурации мастер-мастер и подчиненные узлы в конфигурации ведущий-ведомый может использовать StatefulSet вместе с Сервисом. Главные узлы (например, master, master-secondary) могут представлять собой Pod с некоторым постоянным объемом вместе с Сервисом, поскольку эти узлы не нуждаются в масштабировании вверх или вниз. Они также могут быть StatefulSet с репликами = 1.
Примеры StatefulSet: - Datanodes (slaves) в кластере Hadoop (master-slave) - узлы базы данных (мастер-мастер) в кластере Cassandra
Каждая Pod (копия) в StatefulSet имеет - Уникальное и стабильное сетевое удостоверение - Kubernetes создает один PersistentVolume для каждого VolumeClaimTemplate https://kubernetes.io/docs/concepts/workloads/controllers/ statefulset /
«Развертывание», с другой стороны, подходит для приложений и служб без состояния, где узлы не требуют какой-либо специальной идентификации (балансировщик нагрузки может достигать любого выбранного узла) и число узлов может быть произвольным числом.
deployment
с простой спецификацией для установки 1-на-узел (daemonset), реплики или упорядочение по состоянию. – Mani Gandham 2 October 2017 в 18:52