Jetty และ Netty ต่างกันอย่างไร


143

อะไรคือความแตกต่างที่สำคัญระหว่าง Jetty และ Netty?

Netty เป็นส่วนหนึ่งของ Jboss แต่เป็นคอนเทนเนอร์ของเว็บเซิร์ฟเวอร์เริ่มต้นหรือไม่

Netty รองรับ Servlets 3.0 หรือไม่

คำตอบ:


199

ท่าเทียบเรือเป็นภาชนะ servlet น้ำหนักเบาง่ายต่อการฝังภายในแอปพลิเคชันจาวานอกจากนี้ยังมีลูกค้าท่าเทียบเรือที่ใช้งานง่าย

Nettyเป็นเฟรมเวิร์กแอปพลิเคชันเครือข่ายที่ขับเคลื่อนด้วยเหตุการณ์แบบอะซิงโครนัส คุณสามารถเขียน servlet container ของคุณเองหรือแอพ http ไคลเอ็นต์ด้วยความช่วยเหลือของ Netty framework

แก้ไข:

ลืมที่จะพูดถึงว่า Jetty 8 และ Apache Tomcat 7 รองรับข้อมูลจำเพาะ servlet 3.0 แต่ netty ไม่ได้ เพราะมันไม่ใช่คอนเทนเนอร์ servlet


8
ท่าเทียบเรือยังเป็นเซิร์ฟเวอร์ HTTP มันรวม ทั้ง Http Server และ Application Server / Servlet Container
KyelJmD

6
ฉันยังไม่เห็นความสัมพันธ์ระหว่างคนทั้งสอง Netty สำหรับตรรกะของเลเยอร์การขนส่งในขณะที่ Jetty ใช้สำหรับตรรกะของเลเยอร์แอปพลิเคชันหรือไม่
Sridhar Sarnobat

15
@ Sridhar-Sarnobat ใช่แล้ว Netty ใช้สำหรับเลเยอร์การขนส่งในขณะที่ท่าเทียบเรือนั้นมีไว้สำหรับแอปพลิเคชันที่มุ่งเน้น http เป็นพิเศษ ด้วย Netty คุณสามารถเพิ่มประสิทธิภาพการจัดเฟรมข้อความของคุณและเข้ารหัส / ถอดรหัสอย่างแม่นยำมากในขณะที่คุณติดอยู่กับ HTTP ด้วย Jetty
laughing_man

1
นี่เป็นเพียงแค่ให้แท็กไลน์ในแต่ละเว็บไซต์
สบถ

49

ฉันคิดว่าเมื่อเวลาผ่านไปการทับซ้อนเพิ่มขึ้นเมื่อทั้งสองโครงการเพิ่มคุณสมบัติใหม่

นี่คือมาตรฐาน: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

ท่าเทียบเรือเป็นเว็บเซิร์ฟเวอร์ (HTTP) คล้ายกับไลค์ของ Tomcat และเช่นนั้น แต่เบากว่าคอนเทนเนอร์ servlet ส่วนใหญ่ สิ่งนี้อยู่ใกล้กับวิธี Java แบบดั้งเดิมในการทำแอปพลิเคชันเซิร์ฟเวอร์ (servlets, ไฟล์ WAR) เช่น Netty มันเบาพอที่จะฝังลงในแอปพลิเคชัน Java

Nettyเป็นเฟรมเวิร์กเซิร์ฟเวอร์ไคลเอ็นต์ NIOซึ่งช่วยให้การพัฒนาแอปพลิเคชั่นเครือข่ายอย่างรวดเร็วและง่ายดายเช่นโปรโตคอลเซิร์ฟเวอร์และไคลเอนต์ ช่วยลดความยุ่งยากและเพิ่มความคล่องตัวในการเขียนโปรแกรมเครือข่ายเช่นซ็อกเก็ตเซิร์ฟเวอร์ TCP และ UDP ดังนั้น Netty จึงให้ความสำคัญกับการช่วยเขียนโปรแกรมเครือข่าย NIO / ไม่บล็อกโปรแกรมอะซิงโครนัส

หากคุณทำข้อตกลงกับเครือข่ายโปรโตคอลจำนวนมากและต้องการให้มันไม่ใช่การปิดกั้นให้ใช้ Netty (โดยปกติจะเป็นกรณีที่มีประสิทธิภาพสูง) หากคุณต้องการให้ภาชนะเซิร์ฟเล็ต HTTP อ่อนใช้ท่าเทียบเรือ


19

นี่คือการทำให้เข้าใจง่าย แต่ช่วยให้เข้าใจความแตกต่างได้ง่าย:

Nettyเป็นกรอบในการเขียนแอปพลิเคชันTCP

Jettyเป็นเฟรมเวิร์กสำหรับเขียนแอ็พพลิเคชันHTTP


2
รวบรัดพอสมควร
Syed Danish Ali
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.