ข้ามไปยังเนื้อหา

เริ่มต้นอย่างรวดเร็วบน Java

ในอีกไม่กี่นาที บริการ Java ของคุณจะประเมิน feature flag ในโปรเซส — ไม่มีการวิ่งข้ามเครือข่ายต่อการตรวจสอบ ไม่มีเวลาหน่วงในเส้นทางคำขอของคุณ การ poll หนึ่งครั้งรับใช้ทุกคำขอที่โปรเซสของคุณจัดการ

ไม่มี dependency — รวมถึง JSON SDK มี parser เล็ก ๆ ของตัวเอง จึงไม่มีอะไรใหม่เข้ามาใน dependency tree ของคุณ มันทำงานบน Java 17 ขึ้นไป

SDK อยู่ในรีโพซิทอรีสาธารณะบน GitHub — โคลนที่แท็กรีลีส build แล้วรวมเข้ากับ build ของคุณ — เช่น เป็น Gradle included build หรือโดยเผยแพร่ jar ไปยังรีโพซิทอรีภายในของคุณ

Terminal window
git clone --branch v1.0.0 https://github.com/FortressFlag/FortressFlag_SDK_java
cd FortressFlag_SDK_java && ./gradlew build

SDK นี้ใช้ คีย์เซิร์ฟเวอร์ (ffs_…) และมันตรงข้ามกับคีย์ไคลเอนต์ที่ SDK มือถือและเว็บฝังไป มันดาวน์โหลด ruleset ทั้งชุดของคุณได้ รวมกฎการเจาะกลุ่ม ปฏิบัติกับมันเหมือนรหัสผ่านฐานข้อมูลทุกประการ — ตัวแปรสภาพแวดล้อมหรือ secret manager ไม่ใช่โค้ด ไม่ใช่รีโพซิทอรี ไม่ใช่ log เด็ดขาด คีย์สองคลาส เทียบกันข้าง ๆ

import com.fortressflag.server.Client;
import com.fortressflag.server.Configuration;
import com.fortressflag.server.FortressFlag;
import java.time.Duration;
Client client = FortressFlag.create(
Configuration.builder(System.getenv("FF_SERVER_KEY")).build());
// ^ ที่เดียวที่ SDK throw คือคีย์ที่ผิดรูป ก่อนที่จะมีอะไรให้บริการ
client.start(Duration.ofSeconds(15)); // คืนค่าเมื่อ ruleset ชุดแรกมาถึง (หรือถึงกำหนดเวลา)
// ... บริการของคุณทำงาน การตรวจสอบ flag ตอนนี้คือการเรียกเมธอดในหน่วยความจำ

start ไม่มีวัน throw — ถ้าการดึงครั้งแรกมาไม่ทันเวลา client จะพยายามต่อบนเธรดเบื้องหลังของมัน และผู้เรียกของคุณได้ค่า fallback ไปพลาง ตัว poll ทำงานบน daemon thread มันไม่มีวันขวางไม่ให้ JVM ของคุณออก

import com.fortressflag.server.Context;
import java.util.Map;
boolean enabled = client.boolValue(
"new-checkout",
new Context(
"user-42", // คีย์บริบทที่คงที่ของคุณ จะเป็น user id หรือ session id ก็แล้วแต่คุณ
Map.of("cohort", "beta")),
false); // ค่า fallback ถ้าไม่รู้จัก flag หรือไม่เคยดึงอะไรมาเลย

client.stringValue และ client.numberValue ทำงานแบบเดียวกัน คีย์บริบทคือสิ่งที่ rollout ตามเปอร์เซ็นต์ใช้จัดกลุ่ม — ส่งตัวระบุเดิมอย่างสม่ำเสมอ แล้วผู้ใช้แต่ละคนจะได้กลุ่มที่คงที่ มันคือข้อมูลของคุณ SDK ไม่มีวันตรวจสอบ เก็บ หรือ log มัน

แค่นั้น — บริการของคุณกำลังประเมิน flag ในเครื่องแล้ว การเปลี่ยนแปลงในแดชบอร์ดไปถึงทุกโปรเซสภายในราวหนึ่งนาที

boolValue stringValue และ numberValue ตอบเสมอและไม่มีวัน throw — ปัญหาเรื่อง flag ต้องไม่ทำให้บริการของคุณล่มเด็ดขาด โปรเซสที่รีสตาร์ตให้บริการค่า fallback ณ จุดเรียกของคุณจนกว่าการดึงครั้งแรกจะมาถึง (หรือตั้ง cachePath บน builder เพื่อบันทึก ruleset ล่าสุดลงไฟล์ที่คุณเลือก แล้วการรีสตาร์ตจะกลับมาจากมันทันที) แม้แต่คีย์ที่ถูกเพิกถอนก็ไม่ทำให้อะไรพัง SDK ประเมินต่อด้วย ruleset ล่าสุดที่มันดาวน์โหลดมา จนกว่าคุณจะให้คีย์ใหม่