รถรับส่ง? ถูกทอดทิ้งเพราะขาดความสนใจ
แม้จะมีความจริงที่ว่าโครงการถูกทอดทิ้งแม้กระทั่งก่อนที่จะเริ่มการพัฒนาที่มีประสิทธิผลคุณสามารถรับสิ่งที่ดีในโครงการนี้ด้วยตัวคุณเอง
โครงการ รถรับส่ง เป็นชุดของไมโครเซิร์ตส่วนใหญ่ใช้สปริงบูตเพื่อควบคุมแท็กซี่อวกาศ ภายในกรอบของโครงการนี้มีการใช้งานฟังก์ชั่นต่าง ๆ สำหรับการทำงานกับเที่ยวบินอวกาศและการโต้ตอบระหว่างไมโครเซิร์ต
วิธีเปิดโครงการ
หากต้องการเปิดโครงการ Shuttle ให้ทำตามขั้นตอนเหล่านี้:
ข้อกำหนดเบื้องต้น
ตรวจสอบให้แน่ใจว่าคุณติดตั้งซอฟต์แวร์ต่อไปนี้ในระบบของคุณ:
- นักเทียบท่าและนักเทียบท่า
- Java 21 หรือใหม่กว่า
- Gradle 6.8 หรือใหม่กว่า
ขั้นตอนที่ 1: การตั้งค่าฐานข้อมูล
โครงการต้องการฐานข้อมูล PostgreSQL และ MongoDB คุณสามารถติดตั้งได้ด้วยตนเองหรือตั้งค่าโดยใช้ Docker
ตัวเลือก A: ติดตั้งฐานข้อมูลด้วยตนเอง
PostgreSQL :
- ดาวน์โหลดและติดตั้ง PostgreSQL จากเว็บไซต์ทางการ
- เริ่มบริการ PostgreSQL
MongoDB :
- ดาวน์โหลดและติดตั้ง MongoDB จากเว็บไซต์ทางการ
- เริ่มบริการ MongoDB
ตัวเลือก B: ใช้ Docker สำหรับฐานข้อมูล
- PostgreSQL :
docker pull postgres:latest
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
- MongoDB :
export MONGODB_VERSION=6.0-ubi8
docker run --name mongodb -d mongodb/mongodb-community-server: $MONGODB_VERSION
ขั้นตอนที่ 2: เรียกใช้ Kafka, Zookeeper, Otel-Collector, Prometheus, Graphana
cd docker
docker compose up
ขั้นตอนที่ 3: เผยแพร่ไปยัง Maven Local
cd shared
./gradlew publishToMavenLocal
ขั้นตอนที่ 4: เรียกใช้การค้นพบและเซิร์ฟเวอร์การกำหนดค่า
cd discovery-server
./gradlew bootRun
cd ../config-server
./gradlew bootRun
ขั้นตอนที่ 5: เรียกใช้ส่วนที่เหลือของ microservices ทีละครั้งตามที่เหมาะสมกับคุณ
ขออภัยในความไม่สะดวกดังกล่าวในอนาคต Microservices ทั้งหมดจะเปิดตัวผ่าน Kybernetes
Microservices
รายการต่อไปนี้แสดงรายการ microservices ของโครงการที่มีสถานะของการใช้งาน (รายการนี้อาจเปลี่ยนแปลงเป็นประจำเนื่องจากการเพิ่มคุณสมบัติใหม่และสถาปัตยกรรม refactoring):
- บริการข้อเสนอแนะนักบินและบริการตอบรับผู้ใช้ (ดำเนินการไม่ผ่านการทดสอบ) ✅
- บริการข้อมูล Shuttle (ไม่ได้ใช้งาน)?
- บริการข้อมูลนักบิน (ไม่ได้ดำเนินการ)?
- บริการข้อมูลผู้ใช้ (ไม่ได้ใช้งาน)?
- บริการอันดับนักบิน (อยู่ระหว่างดำเนินการ)?
- บริการ Trip Pather Finder (อยู่ระหว่างดำเนินการ)?
- บริการคำนวณการเดินทาง (ไม่ได้ดำเนินการ)?
- บริการชำระเงิน (ไม่ได้ดำเนินการ)?
- บริการข้อมูลส่วนบุคคลนักบิน (อยู่ระหว่างดำเนินการ)?
- บริการสั่งซื้อ (ไม่ได้ใช้งาน)?
- บริการข้อมูลสถานี (ไม่ได้ใช้งาน)?
Microservices สื่อสารกันผ่าน Apache Kafka ซึ่งให้การอัปเดตการส่งข้อความและการจัดอันดับ
ฟังก์ชั่น?
- การคำนวณเส้นทางจากดาวเคราะห์ดวงหนึ่งไปยังอีกดาวหนึ่งโดยคำนึงถึงการเคลื่อนไหวของพวกเขาในวงโคจร
- การรวบรวมและประมวลผลข้อเสนอแนะจากผู้ใช้และนักบิน
- การเลือกชั้นเรียนเที่ยวบิน
- ระบบอันดับนักบิน
- การตรวจสอบข้อมูลส่วนบุคคลของนักบิน
- การคำนวณค่าใช้จ่ายของเที่ยวบินเนื่องจากความยาวและความซับซ้อนของเที่ยวบิน
- การดำเนินการตามบริการการชำระเงินโดยคำนึงถึงคณะกรรมาธิการรถรับส่ง (ขอบคุณที่เลือกเรา! ???)
- ตอบสนองแอพสำหรับเอกสารโดยใช้ React Flow (มันสวยงามและยอดเยี่ยมมาก !!!!)
ฟังก์ชั่นที่เป็นไปได้
- การจำลองการพังทลายของรถรับส่ง (โดยไม่ต้องเป็นอันตรายต่อชีวิตของผู้โดยสาร! ???)
- การใช้งานในพื้นที่ 3 มิติเพื่อให้เป็นเหมือนนาซ่า: https://eyes.nasa.gov/apps/solar-system/#/home
สถาปัตยกรรม
โครงการใช้เทคโนโลยีและวิธีการดังต่อไปนี้:
- สปริงบูต สำหรับการสร้างไมโครเซิร์ต (มีข้อยกเว้นเช่นเส้นทางการค้นหา microservice)
- Apache Kafka สำหรับการประมวลผลข้อความ
- Opentelometry, graphana, prometheus สำหรับการตรวจสอบและการติดตาม
- Docker & Kubernetes & GitHub การกระทำ สำหรับการปรับใช้
- PGSQL, MongoDB, Redis, Cassandra เป็นฐานข้อมูล
แผนภูมิและตัวชี้วัด
การสร้างภาพของกระบวนการสั่งซื้อกระสวย
แผนภาพที่แสดงก่อนหน้านี้ที่นี่ไม่ถูกต้อง
ในอนาคตเอกสารทั้งหมดไดอะแกรมการคำนวณตัวชี้วัดเช่น DAU, MAU และอื่น ๆ จะถูกนำไปใช้เป็นแอปพลิเคชันปฏิกิริยาโดยใช้การไหลของปฏิกิริยาจะไม่มีไดอะแกรมที่เลวทรามเช่นนี้อีกต่อไป?
การติดตั้งและข้อกำหนด
ในการเรียกใช้โครงการคุณจะต้องใช้เครื่องมือและการอ้างอิงต่อไปนี้:
- Java 17 หรือใหม่กว่า
- Maven 3.8.1 หรือใหม่กว่า
- Docker (ไม่บังคับสำหรับการทำงานกับคอนเทนเนอร์)
ตรวจสอบให้แน่ใจว่ามีการติดตั้งและกำหนดค่าการพึ่งพาทั้งหมดก่อนเริ่มโครงการ
ใบอนุญาต
อย่าขโมยอะไรโปรด ((((((((((((((((((((((((((((((((((((((((((
ติดต่อ?
หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ คุณสามารถติดต่อฉันผ่านปัญหา GitHub หรือทางอีเมลหรือทางโทรเลข
Shuttle เป็นแท็กซี่อวกาศแห่งอนาคตซึ่งขับเคลื่อนด้วยเทคโนโลยี Microservice ที่ทันสมัย!