Каталог столбцов
- Пришло время обновить преимущества java11-01-jdk11 и опции jdk
- Пора обновить java11-02-Upgrade jdk11 и шагнуть на яму
- Пришло время обновить настройки параметров JVM виртуальной машины java11-03
- Пришло время обновить java11-04 http2 Clear Text (h2c) для связи http2 в микросервисах.
- Пришло время обновить java11 - 05 Препятствие и решение проблем связи h2c внутри микросервисов
предисловие
Студенты, прочитавшие предыдущие статьи, тоже пытаются обновить Jdk до Java11? Сегодня я хочу объяснить внутреннее обновление микросервисов до протокола HTTP/2.0.
Преимущества http2 должны быть известны всем, поэтому я не буду здесь слишком много рассказывать. Говоря о HTTP/2.0, все должны быть знакомы сOver TLS
Версия, реализованы все существующие браузеры, поддерживающие HTTP/2.0Over TLS
Версия,
Сегодня я покажу вам другую версию HTTP/2.0.HTTP/2.0 Clear Text
.
HTTP/2.0 Clear Text
HTTP/2.0 Cleartext
, именуемыйh2c
(Эта аббревиатура будет использоваться позже). Используйте 101, чтобы изменить обновление согласования протокола наHTTP2
соглашение, используяhttp2
Нет шифрования, очень подходит微服务内部
запрос.
наслаждатьсяhttp2
мультиплексирования, сокращенияtls
на серверcpu
давление (шифрование и дешифрование очень сильно загружают ЦП), а внутренние микросервисыtls
Это также увеличивает стоимость обслуживания сертификата.
Обновитьh2c
Я использую загрузочный контейнер SpringUndertow
, используемый шлюзомSpring cloud gateway
, сегодня мы в основном объясняем обновление этих двух компонентов доh2c
.
- Подводное обновление доh2cОткройте официальный сайт Undertow:undertow.io, мы видим, что на главной странице также есть описание:
Google Translate: поддержка обновлений HTTP, позволяющая мультиплексировать несколько протоколов через HTTP-порты.
/**
* Undertow http2 h2c 配置
*
* @author L.cm
*/
@Configuration
@ConditionalOnClass(Undertow.class)
@AutoConfigureBefore(ServletWebServerFactoryAutoConfiguration.class)
public class UndertowHttp2Configuration {
@Bean
public ServletWebServerFactory servletWebServerFactory() {
UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();
// 开启 undertow http2
factory.addBuilderCustomizers(builder -> builder.setServerOption(ENABLE_HTTP2, true));
return factory;
}
}
- обновление весеннего облачного шлюза доh2c
spring cloud gateway
сервер также поддерживаетh2c
Конфигурация относительно проста, просто откройте конфигурацию, и конкретную логику можно просмотреть в исходном коде ниже.
server:
ssl:
enabled: false
http2:
enabled: true
контрольная работаh2c
Выше описано, как запустить серверh2c
, но успешно ли он включается можно узнать только после тестирования.
Самый простой способ основан наjava11
изHttpClient
Приходите проверить это.
public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:8081"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.version()); // HTTP_2
System.out.println(response.body()); // test
}
послесловие
Посмотрите, все ли здесь хотят попробовать это. Конечно, многое не так гладко. Следующая статья продолжит помогать вам идти в яму.
Подождите, кажется, что-то не так, наша колонка неjava11
Какие? как это сталоh2c
?
Не волнуйтесь, следующая статья будет расшифрована для вас Друзья, которым нравятся наши статьи, не забудьте подписаться на нас.
утверждение
Эта серия статей подготовленаСлюда основного компонента микросервисаавтортехнология мечтыорганизовать письмо, Если есть какая-либо ссылка или перепечатка, пожалуйста, сохраните оригинального автора и укажите источник.