การจัดสรรชาร์ดและการปรับสมดุลใหม่
ทำความเข้าใจว่า Elasticsearch ตัดสินใจวางชาร์ดไว้ที่ใด การรับรู้การจัดสรรกระจายแบบจำลองไปยังฮาร์ดแวร์ต่างกันอย่างไร และวิธีควบคุมการปรับสมดุลใหม่ระหว่างการเพิ่มขนาดและการบำรุงรักษา
การจัดสรรชาร์ดและการปรับสมดุลใหม่ เป็นบทเรียน Elasticsearch & Full Text Search Systems ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Elasticsearch & Full Text Search Systems และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Elasticsearch & Full Text Search Systems มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Where Do Shards Go?
When you create an index or add a node, Elasticsearch must decide which node holds each shard. This process is shard allocation, and keeping it balanced is key to a healthy, performant cluster.
The Allocation Process
The master node runs allocation deciders for every unassigned shard. They check disk space, shard count, awareness rules, and filters before placing a shard. Failing any decider keeps the shard UNASSIGNED.
Primary vs Replica Placement
A replica is never allocated to the same node as its primary. This guarantees that losing one node cannot take out both copies of the same data. With one replica you survive any single-node failure.
Watching Allocation
Use the _cat/shards API to see where each shard sits and its state. STARTED means active; RELOCATING means it is moving.
GET _cat/shards?vExplaining a Stuck Shard
When a shard will not allocate, the _cluster/allocation/explain API tells you exactly which decider blocked it and why. This is the first stop for debugging a yellow or red cluster.
GET _cluster/allocation/explain
{
"index": "my_index",
"shard": 0,
"primary": false
}Allocation Awareness
Allocation awareness spreads copies across physical boundaries like racks or availability zones. You tag nodes with custom attributes and tell the cluster to be aware of them.
cluster.routing.allocation.awareness.attributes: zoneForced Awareness
Forced awareness goes further: it refuses to over-allocate replicas to surviving zones if a zone goes down, preventing one zone from holding all copies. This protects capacity planning during outages.
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2Shard Filtering
You can pin or exclude an index from specific nodes using allocation filters. This is handy for hot/warm architectures where older indices migrate to cheaper hardware.
PUT my_index/_settings
{
"index.routing.allocation.require.box_type": "warm"
}Rebalancing
After nodes join or leave, the cluster rebalances to even out shard counts. This is automatic but generates network and disk I/O, so it should be controlled during sensitive operations.
Pausing Allocation
Before a rolling restart, disable allocation so the cluster does not waste effort relocating shards from a node you are about to bring back. Re-enable it afterward.
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "primaries"
}
}Throttling
Limit concurrent recoveries with cluster.routing.allocation.node_concurrent_recoveries and bandwidth with indices.recovery.max_bytes_per_sec to keep rebalancing from starving live queries.
Quick Check
Test your understanding of shard allocation.
Recap
You learned how shards are placed and balanced:
- Allocation deciders choose shard locations; replicas avoid their primary's node.
- Debug stuck shards with
allocation/explain. - Allocation awareness and forced awareness spread copies across zones.
- Use allocation filters for hot/warm tiers and disable allocation during rolling restarts.
เรียนรู้ Elasticsearch & Full Text Search Systems ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “การจัดสรรชาร์ดและการปรับสมดุลใหม่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดสรรชาร์ดและการปรับสมดุลใหม่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Elasticsearch & Full Text Search Systems ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Elasticsearch & Full Text Search Systems มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดสรรชาร์ดและการปรับสมดุลใหม่”
ทำความเข้าใจว่า Elasticsearch ตัดสินใจวางชาร์ดไว้ที่ใด การรับรู้การจัดสรรกระจายแบบจำลองไปยังฮาร์ดแวร์ต่างกันอย่างไร และวิธีควบคุมการปรับสมดุลใหม่ระหว่างการเพิ่มขนาดและการบำรุงรักษา คุณปฏิบัติ Elasticsearch & Full Text Search Systems ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Elasticsearch & Full Text Search Systems หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Elasticsearch & Full Text Search Systems บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดสรรชาร์ดและการปรับสมดุลใหม่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Elasticsearch & Full Text Search Systems นี้ได้ไหม
ได้ บทเรียน Elasticsearch & Full Text Search Systems ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจการแบ่งส่วนและแบบจำลอง
- สุขภาพและการตรวจสอบคลัสเตอร์
- บทบาทโหนดและสถาปัตยกรรม
- การจัดสรรชาร์ดและการปรับสมดุลใหม่