คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ลักษณะปัญหา
การติดตั้งใช้งานการแก้ไขของพร็อกซี API ผ่าน UI ของ Edge หรือการเรียก API การจัดการของ Edge ล้มเหลวโดยมี
ข้อผิดพลาด "Error while accessing datastore"
ข้อความแสดงข้อผิดพลาด
Error in deployment for environment qa. The revision is deployed, but traffic cannot flow. Error while accessing datastore;Please retry later
สาเหตุที่เป็นไปได้
สาเหตุทั่วไปของปัญหานี้มีดังนี้
-
สาเหตุ รายละเอียด สำหรับ ปัญหาการเชื่อมต่อเครือข่าย ระหว่าง Message Processor กับ Cassandra การสื่อสารระหว่าง Message Processor กับ Cassandra ล้มเหลวเนื่องจากปัญหาการเชื่อมต่อเครือข่าย หรือกฎไฟร์วอลล์ ผู้ใช้ Edge Private Cloud ข้อผิดพลาดในการติดตั้งใช้งานเนื่องจาก การรีสตาร์ท Cassandra โหนด Cassandra ไม่พร้อมใช้งานเนื่องจากมีการรีสตาร์ทเพื่อการบำรุงรักษาตามปกติ ผู้ใช้ Edge Private Cloud ความหน่วงของคำขออ่านเพิ่มขึ้นใน Cassandra หากโหนด Cassandra กำลังอ่านข้อมูลจำนวนมากพร้อมกัน โหนดอาจตอบสนองช้าเนื่องจากความหน่วงของคำขออ่านเพิ่มขึ้น ผู้ใช้ Edge Private Cloud ไฟล์ครีเอทีฟโฆษณาของพร็อกซี API มีขนาดใหญ่กว่า 15 MB Cassandra ได้รับการกำหนดค่าไม่ให้ใช้ไฟล์ครีเอทีฟโฆษณาของพร็อกซี API ที่มีขนาดใหญ่กว่า 15 MB ใน ขนาด ผู้ใช้ Edge Private Cloud ปัญหาการเชื่อมต่อเครือข่ายระหว่าง Message Processor กับ Cassandra
การวินิจฉัย
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge
- ยกเลิกการติดตั้งใช้งานและติดตั้งใช้งานพร็อกซี API อีกครั้ง หากเกิดปัญหาการเชื่อมต่อชั่วคราวระหว่าง Message Processor กับ Cassandra
ข้อผิดพลาดอาจหายไป
คำเตือน: อย่าเลิกติดตั้งใช้งานหากพบข้อผิดพลาดในสภาพแวดล้อมการใช้งานจริง
- หากปัญหายังคงอยู่ ให้เรียกใช้ API การจัดการด้านล่างเพื่อตรวจสอบสถานะการติดตั้งใช้งานและดูว่ามีข้อผิดพลาดในคอมโพเนนต์ใดหรือไม่
curl -u sysadmin@email.com https://management:8080/v1/o/<org>/apis/<api>/deployments
ตัวอย่างเอาต์พุตสถานะการติดตั้งใช้งานที่แสดงข้อผิดพลาดขณะเข้าถึง Datastore ใน Message Processor รายการใดรายการหนึ่ง
{ "environment" : [ { "aPIProxy" : [ { "name" : "simple-python", "revision" : [ { "configuration" : { "basePath" : "/", "steps" : [ ] }, "name" : "1", "server" : [ { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "2acdd9b2-17de-4fbb-8827-8a2d4f3d7ada" }, { "error" : "Error while accessing datastore;Please retry later", "errorCode" : "datastore.ErrorWhileAccessingDataStore", "status" : "error", "type" : [ "message-processor" ], "uUID" : "42772085-ca67-49bf-a9f1-c04f2dc1fce3" } "state" : "error" }
- รีสตาร์ท Message Processor ที่แสดงข้อผิดพลาดในการติดตั้งใช้งาน หากเกิดปัญหาเครือข่ายชั่วคราว
ข้อผิดพลาดควรหายไป
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ทำขั้นตอนที่ 2 ซ้ำเพื่อดูว่าการติดตั้งใช้งานสำเร็จใน Message Processor ที่ รีสตาร์ทหรือไม่ หากไม่พบข้อผิดพลาด แสดงว่าปัญหาได้รับการแก้ไขแล้ว
- ตรวจสอบว่า Message Processor สามารถเชื่อมต่อกับโหนด Cassandra แต่ละโหนดในพอร์ต 9042
และ 9160:
- หาก telnet พร้อมใช้งาน ให้ใช้ telnet ดังนี้
telnet <Cassandra_IP> 9042 telnet <Cassandra_IP> 9160
- หาก telnet ไม่พร้อมใช้งาน ให้ใช้ netcat เพื่อตรวจสอบการเชื่อมต่อดังนี้
nc -vz <Cassandra_IP> 9042 nc -vz <Cassandra_IP> 9160
- หากได้รับคำตอบ "Connection Refused" หรือ "Connection timed out" ให้ติดต่อ ทีมปฏิบัติการเครือข่าย
- หาก telnet พร้อมใช้งาน ให้ใช้ telnet ดังนี้
- หากปัญหายังคงอยู่ ให้ตรวจสอบว่าโหนด Cassandra แต่ละโหนดกำลังรับฟังในพอร์ต 9042 และพอร์ต 9160 หรือไม่ โดยทำดังนี้
netstat -an | grep LISTEN | grep 9042 netstat -an | grep LISTEN | grep 9160
- หากโหนด Cassandra ไม่ได้กำลังรับฟังในพอร์ต 9042 หรือ 9160 ให้รีสตาร์ทโหนด Cassandra ที่เฉพาะเจาะจง โดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- หากปัญหายังคงอยู่ ให้ติดต่อทีมปฏิบัติการเครือข่าย
- ยกเลิกการติดตั้งใช้งานและติดตั้งใช้งานพร็อกซี API อีกครั้ง หากเกิดปัญหาการเชื่อมต่อชั่วคราวระหว่าง Message Processor กับ Cassandra
ข้อผิดพลาดอาจหายไป
ความละเอียด
ทำงานร่วมกับทีมปฏิบัติการเครือข่ายและแก้ไขปัญหาการเชื่อมต่อเครือข่ายระหว่าง Message Processor กับ Cassandra
ข้อผิดพลาดในการติดตั้งใช้งานเนื่องจากการรีสตาร์ท Cassandra
โดยปกติแล้วโหนด Cassandra จะรีสตาร์ทเป็นระยะๆ เพื่อการบำรุงรักษาตามปกติ หากมีการติดตั้งใช้งานพร็อกซี API ในระหว่างการบำรุงรักษา Cassandra การติดตั้งใช้งานจะล้มเหลวเนื่องจาก เข้าถึง Datastore ของ Cassandra ไม่ได้
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge
การวินิจฉัย
- ตรวจสอบว่าโหนด Cassandra รีสตาร์ทในระหว่างการติดตั้งใช้งานหรือไม่ โดยตรวจสอบบันทึก Cassandra หรือบันทึกเวลาเริ่มต้นล่าสุดของโหนด Cassandra ดังนี้
grep"shutdown"/opt/apigee/var/log/apigee-cassandra/system.log
ความละเอียด
- ตรวจสอบว่า Cassandra ทำงานอยู่
- ตรวจสอบว่า Message Processor สามารถเชื่อมต่อกับ Datastore ของ Cassandra ในพอร์ต 9042 และ 9160 ได้หรือไม่
ความหน่วงของคำขออ่านเพิ่มขึ้นใน Cassandra
จำนวนการอ่านข้อมูลใน Cassandra ที่สูงขึ้นจะขึ้นอยู่กับกรณีการใช้งานแต่ละกรณีและรูปแบบการเข้าชม ในพร็อกซีที่มีนโยบายที่ต้องใช้สิทธิ์เข้าถึงแบบอ่านจาก Cassandra
ตัวอย่างเช่น หากมีการเรียกใช้การเรียก GET เพื่อรีเฟรชโทเค็นประเภทการให้สิทธิ์สำหรับนโยบาย OAuth และโทเค็นการรีเฟรชเชื่อมโยงกับโทเค็นเพื่อการเข้าถึงจำนวนมาก การดำเนินการนี้อาจทำให้มีการอ่านข้อมูลจาก Cassandra จำนวนมาก ซึ่งอาจทำให้ความหน่วงของคำขออ่านใน Cassandra เพิ่มขึ้น
การวินิจฉัย
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge

- หากติดตั้งแดชบอร์ดการตรวจสอบเวอร์ชันเบต้าไว้ ให้ดูแดชบอร์ด Cassandra และ ตรวจสอบแผนภูมิ "คำขออ่าน" สำหรับช่วงเวลาที่เกิดปัญหา นอกจากนี้ ให้ตรวจสอบแผนภูมิ "ความหน่วงของคำขออ่าน" ด้วย
- เครื่องมืออีกอย่างที่ใช้ตรวจสอบคำขออ่านและความหน่วงในการอ่านได้คือคำสั่ง
nodetool cfstatsดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้คำสั่งนี้ได้ในเอกสารประกอบของ Cassandra
ความละเอียด
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge
- ลองติดตั้งใช้งานอีกครั้งเมื่อประสิทธิภาพของ Cassandra กลับมาเป็นปกติ ตรวจสอบว่าวงแหวน Cassandra ทั้งหมดเป็นปกติ
- (ไม่บังคับ) รีสตาร์ท Message Processor แบบต่อเนื่องเพื่อให้แน่ใจว่ามีการสร้างการเชื่อมต่อ
- หากต้องการโซลูชันระยะยาว ให้ตรวจสอบรูปแบบการเข้าชม API ที่อาจทำให้มีการอ่านข้อมูลใน Datastore ของ Cassandra มากขึ้น ติดต่อทีมสนับสนุนของ Apigee Edge เพื่อขอความช่วยเหลือในการแก้ปัญหานี้
- หากโหนด Cassandra ที่มีอยู่ไม่เพียงพอที่จะจัดการการเข้าชมที่เข้ามา ให้ เพิ่มความจุของฮาร์ดแวร์หรือจำนวนโหนด Datastore ของ Cassandra ตามความเหมาะสม
ไฟล์ครีเอทีฟโฆษณาของพร็อกซี API มีขนาดใหญ่กว่า 15 MB
ไฟล์ครีเอทีฟโฆษณาของพร็อกซี API มีขนาดไม่เกิน 15 MB ใน Cassandra หากไฟล์ครีเอทีฟโฆษณาของพร็อกซี API มีขนาดใหญ่กว่า 15 MB คุณจะเห็นข้อความ "Error while accessing datastore" เมื่อคุณ พยายามติดตั้งใช้งานพร็อกซี API
การวินิจฉัย
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge
- ตรวจสอบบันทึกของ Message Processor
(
/opt/apigee/var/log/edge-message-processor/logs/system.log) และดูว่ามี ข้อผิดพลาดเกิดขึ้นระหว่างการติดตั้งใช้งานพร็อกซี API ที่เฉพาะเจาะจงหรือไม่ - หากเห็นข้อผิดพลาดที่คล้ายกับที่แสดงในรูปภาพด้านล่าง แสดงว่าข้อผิดพลาดในการติดตั้งใช้งาน
เกิดจากไฟล์ครีเอทีฟโฆษณาของพร็อกซี API มีขนาด > 15 MB
2016-03-23 18:42:18,517 main ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.fetchDynamicCompositeColumns() : Error while querying columnfamily : [api_proxy_revisions_r21, adevegowdat@v1-node-js] for rowkey:{} com.netflix.astyanax.connectionpool.exceptions.TransportException: TransportException: [host=None(0.0.0.0):0, latency=159(486), attempts=3]org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)! at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:197) ~[astyanax-thrift-1.56.43.jar:na] at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) ~[astyanax-thrift-1.56.43.jar:na] ...<snipped> Caused by: org.apache.thrift.transport.TTransportException: Frame size (20211500) larger than max length (16384000)! at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137) ~[libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) ~[libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) ~[libthrift-0.9.1.jar:0.9.1] ...<snipped>
ความละเอียด
ไฟล์ครีเอทีฟโฆษณาของพร็อกซี API จะมีขนาดใหญ่หากมีไฟล์ทรัพยากรมากเกินไป ใช้โซลูชันต่อไปนี้ เพื่อแก้ปัญหานี้
โซลูชันที่ 1: ย้ายไฟล์ทรัพยากรไปยังระดับสภาพแวดล้อมหรือองค์กร
- ย้ายไฟล์ทรัพยากร เช่น ไฟล์และโมดูลสคริปต์ NodeJS, ไฟล์ JavaScript, ไฟล์ JAR ไปยังระดับสภาพแวดล้อมหรือองค์กร ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ทรัพยากรได้ใน เอกสารประกอบของ Edge
- ติดตั้งใช้งานพร็อกซี API และดูว่าข้อผิดพลาดหายไปหรือไม่
หากปัญหายังคงอยู่หรือคุณย้ายไฟล์ทรัพยากรไปยังระดับสภาพแวดล้อมหรือองค์กร ไม่ได้ด้วยเหตุผลบางประการ ให้ใช้โซลูชันที่ 2
โซลูชันที่ 2: เพิ่มขนาดไฟล์ครีเอทีฟโฆษณาของพร็อกซี API ใน Cassandra
หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge
ทำตามขั้นตอนต่อไปนี้เพื่อเพิ่มขนาดพร็อพเพอร์ตี้ thrift frame transport size ของ Cassandra ซึ่งควบคุมขนาดสูงสุดของไฟล์ครีเอทีฟโฆษณาของพร็อกซี API ที่อนุญาตใน Edge
- สร้างไฟล์ต่อไปนี้หากไม่มี
/opt/apigee/customer/application/cassandra.properties
- เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ โดยแทนที่ <size> ด้วยการตั้งค่าขนาดที่จำเป็นสำหรับ
ไฟล์ครีเอทีฟโฆษณาขนาดใหญ่
conf_cassandra_thrift_framed_transport_size_in_mb=<size>
- รีสตาร์ท Cassandra
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- ทำขั้นตอนที่ 1 ถึง 3 ซ้ำในโหนด Cassandra ทั้งหมดในคลัสเตอร์
หากปัญหายังคงอยู่ โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge