เฟรมปลา RPC
ตั้งแต่ 0 ถึง 1 พาคุณไปพัฒนากรอบ RPC ของคุณเอง
Fish Skin Project Project Project Tutorial Series: https://yuyuanweb.feishu.cn/wiki/sepywtc9tipqicktw7uc7kujncd
การแนะนำโครงการ
เฟรมเวิร์ก RPC ที่มีประสิทธิภาพสูงขึ้นอยู่กับ Java + etcd + Vert.x ใช้สแต็กเทคโนโลยีใหม่เพื่อนำไปสู่การพัฒนาล้อตั้งแต่ 0 ถึง 1 บทช่วยสอนมาจากตื้นไปจนถึงลึกและคุณสามารถเรียนรู้ (ซิงเกิลตัน/โรงงาน/นักตกแต่ง ฯลฯ ), การออกแบบโหลดบาลานซ์, กลไกการทนต่อความผิดพลาด, การพัฒนาที่ขับเคลื่อนด้วยคำอธิบายประกอบการเริ่มต้นของสปริงและการพัฒนาความสามารถในการออกแบบสถาปัตยกรรม
โครงการแบ่งออกเป็นรุ่นพื้นฐานและขยาย:
- เวอร์ชันพื้นฐานสามารถเขียนได้ในเวลาเพียงไม่กี่ชั่วโมง ~
- รุ่นขยายจะเป็นโครงการทางเทคนิคที่เต็มไปด้วยไฮไลท์และจะถูกจับคู่กับโครงการธุรกิจเพื่อให้เรซูเม่แข่งขันได้มากขึ้น
เริ่มเรียนรู้หรือเรียนรู้เพิ่มเติม: กรอบ RPC ที่เขียนด้วยลายมือ (24 ปีล่าสุด)
ที่อยู่โอเพ่นซอร์ส: https://github.com/liyupi/yu-rpc
บทที่ 1 ของการสอนสามารถเรียนรู้ได้ฟรี
วิดีโอคำแนะนำ - คำอธิบาย RPC
การแสดงผลโครงการ
โครงสร้างไดเรกทอรี:

การสอนข้อความระดับพี่เลี้ยงโดยละเอียด:

การเลือกทางเทคนิค
ปลายด้านหลัง
เทคโนโลยีแบ็กเอนด์ส่วนใหญ่เป็น Java แต่ความคิดและการออกแบบทั้งหมดสามารถนำกลับมาใช้กับภาษาอื่น ๆ ได้และรหัสนั้นแตกต่างกัน
- ️ vert.x เฟรมเวิร์ก
- etcd etcd Cloud Native Storage Middleware (JetCD Client)
- Zookeeper Distributed Coordination Tool (Curator Client)
- ️กลไก SPI
- serializers หลายตัว
- การทำให้เป็นอนุกรม JSON
- Kryo serialization
- การทำให้เป็นอนุกรมของ Hessian
- ️โหมดการออกแบบหลายโหมด
- ตรวจสอบโหมด Singleton Lock อีกครั้ง
- รูปแบบโรงงาน
- โหมดตัวแทน
- โหมดมัณฑนากร
- ️การพัฒนาสตาร์ทเตอร์สปริง
- การสะท้อนและคำอธิบายประกอบไดรฟ์
- Guava retry retry library
- การทดสอบหน่วย Junit
- ไลบรารีบันทึกการกลับเข้าสู่ระบบ
- Hutool, Lombok Tool Library
ไดเรกทอรีซอร์สโค้ด
- YU-RPC-CORE: Fish Skin RPC Framework Core รหัส
- YU-RPC-Easy: Fish Skin RPC Frame รุ่นง่าย (เหมาะสำหรับผู้เริ่มต้น)
- ตัวอย่าง-คอมมอน: ตัวอย่างรหัสโมดูลทั่วไป
- ตัวอย่างผู้บริโภค: ตัวอย่างผู้บริโภคบริการ
- ตัวอย่างผู้ให้บริการ: ผู้ให้บริการตัวอย่าง
- Example-Springboot-Consumer: ตัวอย่างบริการผู้บริโภค (Framework Spring Boot)
- ตัวอย่าง -SpringBoot-Provider: ผู้ให้บริการตัวอย่าง (Framework Spring Boot)
- YU-RPC-SPRING-BOOT-Starter: กรอบ RPC ที่ขับเคลื่อนด้วยคำอธิบายประกอบ
โครงร่างการสอนโครงการ
โครงการนี้มีเนื้อหามากมายดังนั้นคุณสามารถดูได้ว่าคุณมีจุดรู้ใด ๆ ที่คุณต้องการเรียนรู้หรือไม่
บทที่ 1: RPC Framework เวอร์ชันง่ายๆ
- แนวคิดและฟังก์ชั่นพื้นฐาน RPC
- แนวคิดการใช้งาน RPC Framework | การออกแบบขั้นพื้นฐาน
- แนวคิดการใช้งาน RPC Framework | การออกแบบขยาย
- การพัฒนา RPC เวอร์ชันง่ายๆ | การเริ่มต้นโครงการ
- การพัฒนา RPC เวอร์ชันง่ายๆ | เว็บเซิร์ฟเวอร์
- การพัฒนา RPC เวอร์ชันง่ายๆ | ผู้ลงทะเบียนบริการท้องถิ่น
- การพัฒนา RPC เวอร์ชันง่ายๆ | เครื่องชูชีพ
- การพัฒนา RPC เวอร์ชันง่ายๆ | ขอโปรเซสเซอร์
- การพัฒนา RPC เวอร์ชันง่ายๆ | ตัวแทนผู้บริโภค
- การพัฒนา RPC เวอร์ชันง่ายๆ | ทดสอบการยืนยัน
บทที่ 2: เวอร์ชันส่วนขยายเฟรมเวิร์ก RPC
- การโหลดการกำหนดค่าทั่วโลก การเริ่มต้นโครงการรุ่นขยาย
- การโหลดการกำหนดค่าทั่วโลก การใช้งานการกำหนดค่าการใช้งาน
- การโหลดการกำหนดค่าทั่วโลก รักษาวัตถุการกำหนดค่าทั่วโลก
- การออกแบบและการใช้งานอินเทอร์เฟซ
- Serializer การเปรียบเทียบ serializers กระแสหลัก
- Serializer การใช้งาน serializer หลายรายการ
- Serializer กลไก SPI
- Serializer การใช้งาน Serializer Extensible (โหมด SPI + โรงงาน)
- ศูนย์ทะเบียน ศูนย์การลงทะเบียนความสามารถหลัก
- ศูนย์ทะเบียน การเลือกทางเทคนิคของศูนย์ลงทะเบียน
- ศูนย์ทะเบียน เริ่มต้นด้วยมิดเดิลแวร์ ETCD Cloud Native Middleware
- ศูนย์ทะเบียน การดำเนินการของศูนย์ลงทะเบียนตาม ETCD
- ศูนย์ทะเบียน การใช้งานศูนย์ทะเบียน Extensible (โหมด SPI + โรงงาน)
- การเพิ่มประสิทธิภาพศูนย์การลงทะเบียน กลไกการตรวจจับการเต้นของหัวใจและการต่ออายุ
- การเพิ่มประสิทธิภาพศูนย์การลงทะเบียน กลไกโหนดบริการออฟไลน์
- การเพิ่มประสิทธิภาพศูนย์การลงทะเบียน แคชบริการผู้บริโภค
- การเพิ่มประสิทธิภาพศูนย์การลงทะเบียน การอัปเดตแคช (กลไกการฟัง ETCD)
- การเพิ่มประสิทธิภาพศูนย์การลงทะเบียน การใช้งานศูนย์ลงทะเบียน Zookeeper
- โปรโตคอลที่กำหนดเอง การวิเคราะห์ข้อกำหนดและการออกแบบโซลูชัน
- โปรโตคอลที่กำหนดเอง การออกแบบโครงสร้างข้อความ (อ้างอิงจาก Dubbo)
- โปรโตคอลที่กำหนดเอง การออกแบบการส่งสัญญาณเครือข่าย (การใช้เซิร์ฟเวอร์ TCP ตาม Vert.x)
- โปรโตคอลที่กำหนดเอง เครื่องเข้ารหัส/ตัวถอดรหัส
- โปรโตคอลที่กำหนดเอง โปรเซสเซอร์คำขอ TCP
- โปรโตคอลที่กำหนดเอง ไคลเอนต์คำขอ TCP
- โปรโตคอลที่กำหนดเอง การวิเคราะห์ปัญหาครึ่งแพ็กคอกเหนียว
- โปรโตคอลที่กำหนดเอง ใช้ vert.x เพื่อแก้ปัญหาแพ็คเกจครึ่งเหนียว
- โปรโตคอลที่กำหนดเอง การเพิ่มประสิทธิภาพรหัสไคลเอนต์ (โหมดมัณฑนากร)
- โหลดบาลานซ์ | แนวคิดโหลดบาลานซ์และอัลกอริทึมทั่วไป
- โหลดบาลานซ์ | แฮชที่สอดคล้องกัน
- โหลดบาลานซ์ | อุปกรณ์บาลานซ์หลายตัว
- โหลดบาลานซ์ | การใช้งาน Load Balancer ที่ปรับขนาดได้ (โหมด SPI + โรงงาน)
- กลไกการลองใหม่ ลองใช้นโยบายรออีกครั้ง
- กลไกการลองใหม่ การออกแบบโซลูชันลองลองใหม่
- กลไกการลองใหม่ การดำเนินการตามกลยุทธ์การลองหลายครั้ง
- กลไกการลองใหม่ การใช้นโยบายการลองใหม่ที่ขยายได้ (โหมด SPI + โรงงาน)
- กลไกความผิดพลาด นโยบายที่ทนต่อความผิดพลาดและวิธีการดำเนินการ
- กลไกความผิดพลาด การออกแบบโซลูชันที่ทนต่อความผิดพลาด
- กลไกความผิดพลาด การดำเนินการตามกลยุทธ์ที่ทนต่อความผิดพลาดหลายประการ
- กลไกความผิดพลาด การใช้นโยบายที่ทนต่อความผิดพลาดที่ปรับขนาดได้ (SPI + แบบจำลองโรงงาน)
- กลไกการเริ่มต้น เฟรมเวิร์กคลาสเริ่มต้นอย่างรวดเร็ว
- กลไกการเริ่มต้น การออกแบบที่ขับเคลื่อนด้วยคำอธิบายประกอบ
- กลไกการเริ่มต้น การติดตั้งไดรเวอร์คำอธิบายประกอบของสปริงบู๊ตสตาร์ทเตอร์
- แนวคิดการขยายโครงการ
การศึกษาการสอนโครงการที่สมบูรณ์
คลิกเพื่อเข้าร่วมการนำทางการเขียนโปรแกรมและโครงการดั้งเดิมทั้งหมดในอดีตสามารถเรียนรู้ได้