1. บทนำ
ด้วยการพัฒนาระบบองค์กรแอปพลิเคชันส่วนใหญ่ใช้โครงสร้างแบบกระจายซึ่งขึ้นอยู่กับความมั่นคงของเครือข่ายเป็นอย่างมาก อย่างไรก็ตามเนื่องจากความไม่แน่นอนโดยธรรมชาติของเครือข่ายจึงจำเป็นต้องพิจารณาวิธีการตรวจสอบความทนทานของแอปพลิเคชันในกรณีของความไม่แน่นอนของเครือข่ายในระหว่างการพัฒนาระบบ การตั้งค่าการหมดเวลาเครือข่ายเป็นหนึ่งในวิธีการเพื่อให้แน่ใจว่าแอปพลิเคชันมีความทนทาน หลังจากตั้งค่าการตั้งค่าการหมดเวลาเครือข่ายคำขอจะถูกบังคับให้ยุติหากไม่สามารถกำหนดเวลาที่กำหนดให้เสร็จสมบูรณ์เพื่อให้แน่ใจว่าโปรแกรมไม่มีการอุดตันเธรดไม่ จำกัด การปรับปรุงความพร้อมใช้งานของแอปพลิเคชันได้อย่างมีประสิทธิภาพ
ฉันจะไม่พูดด้านล่างมากนักลองมาดูการแนะนำรายละเอียดด้วยกัน
2. การเปรียบเทียบระหว่างการหมดเวลาไม่ได้ตั้งค่าและการตั้งค่าการหมดเวลา
1. คำสั่งคำขอเครือข่าย:
กรณีการหมดเวลาคำขอเครือข่าย
2. หลังจากตั้งเวลาหมดเวลาขอตำนาน:
กรณีการหมดเวลาการร้องขอเครือข่าย - ตั้งค่าหมดเวลา
3. การตั้งค่าการหมดเวลาเครือข่ายทั่วไป
1. การตั้งค่าการหมดเวลา httpClient (ถั่วสปริง)
การกำหนดค่า
<bean id = "multithreadedhttpconnectionManager"> <property name = "params"> <bean> <property name = "maxtotalConnections" value = "$ {maxtotalConnections: 300}" /> <property name = "defaultMaxConnections มิลลิวินาที -> <property name = "ConnectionTimeOut" value = "$ {ConnectTimeOut: 100000}" /> <!-ซ็อกเก็ตหมดเวลา, มิลลิวินาที -> <property name = "sotimeout" value = "$ {readtimeout: 600000}"/> <property name = "stalecheckingEnabled" value = "$ {stalecheckingEnabled: true}"/> </ebean> </property> Bean = "MultithreadedHttpConnectionManager"/> </constructor-Arg> </ebean>สถานการณ์การใช้งาน httpinvoker
กำหนดค่า httpinvokerrequestexecutor แทนที่ simplehttpinvokerrequestexecutor ที่ใช้โดยค่าเริ่มต้นใน httpinvokerproxyfactorybean และกำหนดค่าการหมดเวลาเครือข่าย ดู "การกำหนดค่า"
<bean id = "httpinvokerrequestexecutor"> <cressructor-arg> <ref bean = "httpClient" /> < /constructor-Arg> </ebean> <bean id = "xxxxservice"> <property name = "serviceurl value = "com.xxxxservice" /> <property name = "httpinvokerrequestexecutor" ref = "httpinvokerrequestexecutor" /> </ebean> "
2. การตั้งค่าการหมดเวลา httpClient (รหัสยาก)
ตัวอย่าง
requestconfig config = requestconfig.custom () .setsockettimeout (1*1000) // ซ็อกเก็ตหมดเวลาหมดเวลามิลลิวินาที .SetConnectionRequestTimeOut (1*1,000) // เมื่อใช้พูลการเชื่อมต่อเพื่อจัดการการเชื่อมต่อรับเวลาหมดเวลาการเชื่อมต่อมิลลิวินาทีจากกลุ่มการเชื่อมต่อ .SetConnectTimeOut (5*1,000) // หมดเวลาการเชื่อมต่อการหมดเวลามิลลิวินาที .สร้าง(); closeablehttpClient httpClient = httpClients.custom () .setDefaulTrequestConfig (config) // .build (); closeablehttpresponse httpresponse = httpClient.execute (httpget); // ดำเนินการตามคำขอ
3. การตั้งค่าการหมดเวลาทางไปรษณีย์
โครงการที่พัฒนาขึ้นตามกรอบฤดูใบไม้ผลิสามารถใช้งานได้ง่ายมาก
org.springframework.mail.javamail.javamailsenderimpl ใช้การแจ้งเตือนอีเมลและฟังก์ชั่นอื่น ๆ
การกำหนดค่า
<bean id = "mailsender" p: host = "$ {mailsender.host}" p: username = "$ {mailsender.username}" p: password = "$ {mailsender.passedword}"> <property name = "javamailproperties" </prop> <prop key = "mail.smtp.timeout"> $ {mailsender.smtp.timeout: 10,000} </prop> <prop key = "mail.smtp.connectiontimeout"> $ {mailsender.smtp.connectiontime: 10000} </prop>คำอธิบาย Javamailproperties
หมายเหตุ: รายการชื่อพารามิเตอร์คุณสมบัติสามารถสอบถามเอกสาร Javamail API ได้
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com
อ้างถึง