国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優化

詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優化

2020-12-28 09:23尊少 Java教程

本篇文章主要介紹了詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優化,具有一定的參考價值,有興趣的可以了解一下

1.介紹

SpringBoot的Web項目中,默認采用的是內置Tomcat,當然也可以配置支持內置的jetty,內置有什么好處呢?

1. 方便微服務部署。
2. 方便項目啟動,不需要下載Tomcat或者Jetty

在目前的公司已經把內置的Jetty部署到了線上項目中,目前來說并無太大問題,內置就算有一些性能損失,但是通過部署多臺機器,

其實也能夠很輕松的解決這樣的問題,內置容器之后其實是方便部署和遷移的。

1.1 優化策略

針對目前的容器優化,目前來說沒有太多地方,需要考慮如下幾個點

  • 線程數
  • 超時時間
  • jvm優化

針對上述的優化點來說,首先線程數是一個重點,初始線程數和最大線程數,初始線程數保障啟動的時候,如果有大量用戶訪問,能夠很穩定的接受請求, 而最大線程數量用來保證系統的穩定性,而超時時間用來保障連接數不容易被壓垮,如果大批量的請求過來,延遲比較高,不容易把線程打滿。這種情況在生產中是比較常見的

一旦網絡不穩定,寧愿丟包也不愿意把機器壓垮。

jvm優化一般來說沒有太多場景,無非就是加大初始的堆,和最大限制堆,當然也不是無限增大,根據的情況進行調節

2. 快速開始

3.1 Tomcat SSL

tomcat的SSL配置很簡單,先通過JDK的方式生成.keystore,這種方式的證書一般來說不太被認可的,最好的方式去網上申請,阿里云和騰訊云都可以免費申請, 這種方式配置出來的https,google瀏覽器會提示https不受認證

?
1
keytool -genkey -alias tomcat -keyalg RSA

application-tomcat.yaml

這塊對tomcat進行了一個優化配置,最大線程數是100,初始化線程是20,超時時間是5000ms

?
1
2
3
4
5
6
7
8
9
10
11
server:
 tomcat:
 max-threads: 100
 min-spare-threads: 20
 connection-timeout: 5000
 ssl:
 key-store: classpath:.keystore
 key-store-type: JKS
 key-password: qq123456
 key-alias: tomcat
 port: 8443

啟動類

啟動類這塊加上了一個httpConnector,為了支持https訪問和http訪問

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@SpringBootApplication
public class AppApplication {
 public static void main(String args[]) {
  SpringApplication.run(AppApplication.class, args);
 }
 
 @Bean
 public EmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() throws IOException {
  TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
  tomcat.addAdditionalTomcatConnectors(httpConnector());
  return tomcat;
 }
 
 public Connector httpConnector() throws IOException {
  Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  Http11NioProtocol http11NioProtocol = (Http11NioProtocol) connector.getProtocolHandler();
  connector.setPort(8080);
  //設置最大線程數
  http11NioProtocol.setMaxThreads(100);
  //設置初始線程數 最小空閑線程數
  http11NioProtocol.setMinSpareThreads(20);
  //設置超時
  http11NioProtocol.setConnectionTimeout(5000);
  return connector;
 }
 
}

上述就完成了https的配置,如果啟動成功可以發現tomcat啟動時候監聽了兩個端口

?
1
2
3
4
5
6
2016-11-21 10:53:15.247 INFO 42382 --- [   main] com.start.AppApplication     : Starting AppApplication on elemebjdeMacBook-Pro.local with PID 42382 (/Users/wangkang/code/SpringBoot-Learn/springboot-9/target/classes started by wangkang in /Users/wangkang/code/SpringBoot-Learn)
2016-11-21 10:53:15.251 INFO 42382 --- [   main] com.start.AppApplication     : No active profile set, falling back to default profiles: default
2016-11-21 10:53:15.426 INFO 42382 --- [   main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@489115ef: startup date [Mon Nov 21 10:53:15 CST 2016]; root of context hierarchy
2016-11-21 10:53:19.164 INFO 42382 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8443 (https) 8080 (http)
2016-11-21 10:53:19.193 INFO 42382 --- [   main] o.apache.catalina.core.StandardService : Starting service Tomcat
2016-11-21 10:53:19.194 INFO 42382 --- [   main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.5

3.2 jvm優化

這塊主要不是談如何優化,jvm優化是一個需要場景化的,沒有什么太多特定參數,一般來說在server端運行都會指定如下參數
初始內存和最大內存基本會設置成一樣的,具體大小根據場景設置,我們線上環境一般都是4G,因為機器是16G的,-server是一個必須要用的參數, 至于收集器這些使用默認的就可以了,除非有特定需求

?
1
java -Xms4g -Xmx4g -Xmn768m -server -jar springboot-9-1.4.1.RELEASE.jar

4 jetty配置

pom.xml

springboot增加了一個starter針對jetty的,給pom增加一個依賴即可

?
1
2
3
4
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

下面是針對jetty的線程優化,進行了一個配置,當然不配置也是可以使用的,在線上環境中最好配置一下,進行優化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Profile("jetty")
  @Bean
  public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(
    JettyServerCustomizer jettyServerCustomizer) {
   JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
   factory.addServerCustomizers(jettyServerCustomizer);
   return factory;
  }
 
 
  @Bean
  public JettyServerCustomizer jettyServerCustomizer() {
   return server -> {
    // Tweak the connection config used by Jetty to handle incoming HTTP
    // connections
    final QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class);
    threadPool.setMaxThreads(100);
    threadPool.setMinThreads(20);
   };
  }

4.1 jetty https配置

application-jetty.yaml

https配置和tomcat的沒有太多差別,這塊是統一配置,SpringBoot做了一個抽象化而已

?
1
2
3
4
5
6
7
8
server:
 connection-timeout: 5000
 ssl:
 key-store: classpath:.keystore
 key-store-type: JKS
 key-password: qq123456
 key-alias: tomcat
 port: 8444

3 總結

一般來說在生產環境中不會用tomcat配置https,因為在我們的生產環境中,tomcat是一個統一的模板,只能夠改線程數。一般的做法都是通過

nginx配置https,配置方式也比較簡單,而且也方便重啟

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/king_is_everyone/article/details/53257815

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久网页 | 亚洲国产高清在线 | 处女一级片 | 欧美精品一区二区久久婷婷 | 久久久久久亚洲 | 91.成人天堂一区 | 日韩精品一区二区三区视频播放 | 成人黄色短视频在线观看 | 在线观看一区二区精品 | 免费观看一级特黄欧美大片 | 久久大伊人 | 欧美在线综合 | 久久青青 | 久久国产精品久久喷水 | 国产精品一卡二卡 | 亚洲一区二区三区高清 | 精品免费 | 亚洲欧美在线一区 | av免费一区二区 | www.av在线| 亚洲激情久久 | 中文字幕一区二区三区精彩视频 | 国产在线观看一区 | 中文字幕在线一区二区三区 | 免费成人高清在线视频 | 国产一区二区三区不卡在线观看 | 久久久中文 | 国产精品久久久久久久久久久免费看 | 久久国产精品系列 | 狠狠躁夜夜躁人人爽天天天天97 | 一本一道久久a久久精品综合 | a资源在线观看 | av大片在线观看 | 91精品国产一区二区三区 | 成人国产精品免费观看 | 午夜免费小视频 | 久久网站热最新地址 | 日本激情网 | 日本一区二区高清视频 | 羞羞的视频| 欧美成人高清视频 |