最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優(yōu)化

 更新時(shí)間:2017年09月05日 14:35:20   作者:尊少  
本篇文章主要介紹了詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優(yōu)化,具有一定的參考價(jià)值,有興趣的可以了解一下

1.介紹

在SpringBoot的Web項(xiàng)目中,默認(rèn)采用的是內(nèi)置Tomcat,當(dāng)然也可以配置支持內(nèi)置的jetty,內(nèi)置有什么好處呢?

1. 方便微服務(wù)部署。
2. 方便項(xiàng)目啟動(dòng),不需要下載Tomcat或者Jetty

在目前的公司已經(jīng)把內(nèi)置的Jetty部署到了線上項(xiàng)目中,目前來(lái)說(shuō)并無(wú)太大問(wèn)題,內(nèi)置就算有一些性能損失,但是通過(guò)部署多臺(tái)機(jī)器,

其實(shí)也能夠很輕松的解決這樣的問(wèn)題,內(nèi)置容器之后其實(shí)是方便部署和遷移的。

1.1 優(yōu)化策略

針對(duì)目前的容器優(yōu)化,目前來(lái)說(shuō)沒(méi)有太多地方,需要考慮如下幾個(gè)點(diǎn)

  • 線程數(shù)
  • 超時(shí)時(shí)間
  • jvm優(yōu)化

針對(duì)上述的優(yōu)化點(diǎn)來(lái)說(shuō),首先線程數(shù)是一個(gè)重點(diǎn),初始線程數(shù)和最大線程數(shù),初始線程數(shù)保障啟動(dòng)的時(shí)候,如果有大量用戶訪問(wèn),能夠很穩(wěn)定的接受請(qǐng)求, 而最大線程數(shù)量用來(lái)保證系統(tǒng)的穩(wěn)定性,而超時(shí)時(shí)間用來(lái)保障連接數(shù)不容易被壓垮,如果大批量的請(qǐng)求過(guò)來(lái),延遲比較高,不容易把線程打滿。這種情況在生產(chǎn)中是比較常見(jiàn)的

一旦網(wǎng)絡(luò)不穩(wěn)定,寧愿丟包也不愿意把機(jī)器壓垮。

jvm優(yōu)化一般來(lái)說(shuō)沒(méi)有太多場(chǎng)景,無(wú)非就是加大初始的堆,和最大限制堆,當(dāng)然也不是無(wú)限增大,根據(jù)的情況進(jìn)行調(diào)節(jié)

2. 快速開(kāi)始

3.1 Tomcat SSL

tomcat的SSL配置很簡(jiǎn)單,先通過(guò)JDK的方式生成.keystore,這種方式的證書一般來(lái)說(shuō)不太被認(rèn)可的,最好的方式去網(wǎng)上申請(qǐng),阿里云和騰訊云都可以免費(fèi)申請(qǐng), 這種方式配置出來(lái)的https,google瀏覽器會(huì)提示https不受認(rèn)證

keytool -genkey -alias tomcat -keyalg RSA

application-tomcat.yaml

這塊對(duì)tomcat進(jìn)行了一個(gè)優(yōu)化配置,最大線程數(shù)是100,初始化線程是20,超時(shí)時(shí)間是5000ms

 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

啟動(dòng)類

啟動(dòng)類這塊加上了一個(gè)httpConnector,為了支持https訪問(wèn)和http訪問(wèn)

 @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);
   //設(shè)置最大線程數(shù)
   http11NioProtocol.setMaxThreads(100);
   //設(shè)置初始線程數(shù) 最小空閑線程數(shù)
   http11NioProtocol.setMinSpareThreads(20);
   //設(shè)置超時(shí)
   http11NioProtocol.setConnectionTimeout(5000);
   return connector;
  }

 }

上述就完成了https的配置,如果啟動(dòng)成功可以發(fā)現(xiàn)tomcat啟動(dòng)時(shí)候監(jiān)聽(tīng)了兩個(gè)端口

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優(yōu)化

這塊主要不是談如何優(yōu)化,jvm優(yōu)化是一個(gè)需要場(chǎng)景化的,沒(méi)有什么太多特定參數(shù),一般來(lái)說(shuō)在server端運(yùn)行都會(huì)指定如下參數(shù)
初始內(nèi)存和最大內(nèi)存基本會(huì)設(shè)置成一樣的,具體大小根據(jù)場(chǎng)景設(shè)置,我們線上環(huán)境一般都是4G,因?yàn)闄C(jī)器是16G的,-server是一個(gè)必須要用的參數(shù), 至于收集器這些使用默認(rèn)的就可以了,除非有特定需求

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

4 jetty配置

pom.xml

springboot增加了一個(gè)starter針對(duì)jetty的,給pom增加一個(gè)依賴即可

  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jetty</artifactId>
  </dependency>

下面是針對(duì)jetty的線程優(yōu)化,進(jìn)行了一個(gè)配置,當(dāng)然不配置也是可以使用的,在線上環(huán)境中最好配置一下,進(jìn)行優(yōu)化

@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的沒(méi)有太多差別,這塊是統(tǒng)一配置,SpringBoot做了一個(gè)抽象化而已

server:
 connection-timeout: 5000
 ssl:
 key-store: classpath:.keystore
 key-store-type: JKS
 key-password: qq123456
 key-alias: tomcat
 port: 8444

3 總結(jié)

一般來(lái)說(shuō)在生產(chǎn)環(huán)境中不會(huì)用tomcat配置https,因?yàn)樵谖覀兊纳a(chǎn)環(huán)境中,tomcat是一個(gè)統(tǒng)一的模板,只能夠改線程數(shù)。一般的做法都是通過(guò)

nginx配置https,配置方式也比較簡(jiǎn)單,而且也方便重啟

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決java idea新建子目錄時(shí)命名不是樹(shù)形結(jié)構(gòu)的問(wèn)題

    解決java idea新建子目錄時(shí)命名不是樹(shù)形結(jié)構(gòu)的問(wèn)題

    這篇文章主要介紹了解決java idea新建子目錄時(shí)命名不是樹(shù)形結(jié)構(gòu)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • SpringBoot?MCP?入門使用步驟詳解

    SpringBoot?MCP?入門使用步驟詳解

    這篇文章主要介紹了SpringBoot?MCP?入門使用,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2015-09-09
  • Java mybatis-plus詳解

    Java mybatis-plus詳解

    MyBatis-Plus是一個(gè)MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增強(qiáng)不做修改,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,本文給大家詳細(xì)講解一下MyBatis-Plus,需要的朋友參考下吧
    2021-09-09
  • Java scala模式匹配機(jī)制詳解

    Java scala模式匹配機(jī)制詳解

    模式匹配語(yǔ)法中,采用match關(guān)鍵字聲明,每個(gè)分支采用case關(guān)鍵字進(jìn)行聲明,當(dāng)需要匹配時(shí),會(huì)從第一個(gè)case分支開(kāi)始,如果匹配成功,那么執(zhí)行對(duì)應(yīng)的邏輯代碼,如果匹配不成功,繼續(xù)執(zhí)行下一個(gè)分支進(jìn)行判斷
    2023-02-02
  • 一文帶你解讀所有HashMap的面試題

    一文帶你解讀所有HashMap的面試題

    HashMap在面試的時(shí)候,是非常容易被問(wèn)到的。因?yàn)樵贘DK8出來(lái)之后,非常容易被問(wèn)到關(guān)于HashMap的知識(shí)點(diǎn),而如果對(duì)于沒(méi)有研究過(guò)他的源代碼的同學(xué)來(lái)說(shuō),這個(gè)可能只是說(shuō)出一部分來(lái)。本文就把HashMap上面大部分會(huì)被在面試中問(wèn)到的內(nèi)容,做個(gè)總結(jié),希望有所幫助
    2022-09-09
  • LinkedHashMap如何保證有序問(wèn)題

    LinkedHashMap如何保證有序問(wèn)題

    這篇文章主要介紹了LinkedHashMap如何保證有序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot之?dāng)r截器與過(guò)濾器解讀

    SpringBoot之?dāng)r截器與過(guò)濾器解讀

    這篇文章主要介紹了SpringBoot之?dāng)r截器與過(guò)濾器解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中注解@Async實(shí)現(xiàn)異步及導(dǎo)致失效原因分析

    Java中注解@Async實(shí)現(xiàn)異步及導(dǎo)致失效原因分析

    Async注解用于聲明一個(gè)方法是異步的,當(dāng)在方法上加上這個(gè)注解時(shí)將會(huì)在一個(gè)新的線程中執(zhí)行該方法,而不會(huì)阻塞原始線程,這篇文章主要給大家介紹了關(guān)于Java中注解@Async實(shí)現(xiàn)異步及導(dǎo)致失效原因分析的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查

    JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查

    本篇文章主要介紹了JavaWeb應(yīng)用實(shí)例:用servlet實(shí)現(xiàn)oracle 基本增刪改查,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-01-01
  • IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯(cuò)誤問(wèn)題

    IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯(cuò)誤問(wèn)題

    這篇文章主要介紹了IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException問(wèn)題 ,本文內(nèi)容簡(jiǎn)短給大家介紹的好,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

清水县| 常德市| 龙游县| 买车| 弥渡县| 克什克腾旗| 平安县| 新巴尔虎左旗| 扎兰屯市| 莱州市| 比如县| 德阳市| 瑞丽市| 江油市| 长乐市| 遂宁市| 盖州市| 翁牛特旗| 城步| 南川市| 郁南县| 农安县| 县级市| 攀枝花市| 鄂尔多斯市| 克什克腾旗| 嘉黎县| 肃宁县| 新乡县| 西青区| 嘉善县| 南岸区| 根河市| 河源市| 自贡市| 深水埗区| 灵宝市| 芒康县| 区。| 徐水县| 本溪市|