เมื่อทดลองกับ Cassandra ฉันสังเกตเห็นว่า Cassandra ฟังพอร์ตต่อไปนี้:
- TCP *: 8080
- TCP *: 8888
- TCP *: 57311
- TCP *: 57312
- TCP 127.0.0.1:7000
- TCP 127.0.0.1:9160
- UDP 127.0.0.1:700
Cassandra ใช้แต่ละพอร์ตในรายการอย่างไร?
เมื่อทดลองกับ Cassandra ฉันสังเกตเห็นว่า Cassandra ฟังพอร์ตต่อไปนี้:
Cassandra ใช้แต่ละพอร์ตในรายการอย่างไร?
คำตอบ:
@Schildmeijer นั้นถูกต้องเป็นส่วนใหญ่อย่างไรก็ตามยังคงใช้พอร์ต 7001 เมื่อใช้การสื่อสาร TLS Encrypted Internode
ดังนั้นรายการทั้งหมดของฉันจะเป็นของ Cassandra เวอร์ชันปัจจุบัน:
สำหรับ Apache Cassandra 2.0 คุณต้องคำนึงถึงพอร์ตTCPต่อไปนี้: (ดูการกำหนดค่ากลุ่มความปลอดภัย EC2และคำถามที่พบบ่อยเกี่ยวกับ Apache Cassandra )
com.sun.management.jmxremote.rmi.port
คุณสมบัติสถาปัตยกรรมที่เป็นไปได้ด้วย Cassandra + OpsCenter บน EC2 อาจมีลักษณะดังนี้:
8080 - JMX (รีโมท)
8888 - ตัวดีบักระยะไกล (ลบออกใน 0.6.0)
7000 - ใช้ภายในโดย Cassandra
(7001 - ล้าสมัยลบออกใน 0.6.0 ใช้สำหรับการสื่อสารแบบสมาชิกหรือที่เรียกว่าซุบซิบ)
9160 - API ไคลเอนต์ Thrift
คำถามที่พบบ่อยCassandra Cassandra ใช้พอร์ตอะไร?
ตอนนี้ JMX ใช้พอร์ต 7199 แทนพอร์ต 8080 (เหมือน Cassandra 0.8.xx)
สิ่งนี้สามารถกำหนดค่าได้ในไฟล์ cassandra-env.sh ของคุณ แต่ค่าเริ่มต้นคือ 7199
พอร์ต 57311 และ 57312 เป็นพอร์ตที่กำหนดแบบสุ่มที่ใช้สำหรับการสื่อสาร RMI พอร์ตเหล่านี้จะเปลี่ยนทุกครั้งที่ Cassandra เริ่มทำงาน แต่จำเป็นต้องเปิดในไฟร์วอลล์พร้อมกับ 8080/7199 (ขึ้นอยู่กับเวอร์ชัน) เพื่อให้สามารถเข้าถึง JMX ระยะไกลได้ สิ่งที่ดูเหมือนจะไม่ได้รับการบันทึกไว้เป็นอย่างดีโดยเฉพาะ แต่ทำให้ฉันสะดุดในอดีต
นอกเหนือจากคำตอบข้างต้นซึ่งเป็นส่วนหนึ่งของการกำหนดค่าไฟร์วอลล์ของคุณหากคุณใช้ SSH ให้ใช้พอร์ต 22
ฉันแก้ไขปัญหาโดยใช้ขั้นตอนด้านล่าง:
หยุดบริการ Cassandara
sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse
สำรองข้อมูลและเปลี่ยนพอร์ตจาก 9042 เป็น 9035
cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
Vi /opt/dse/resources/cassandra/conf/cassandra.yaml
native_transport_port: 9035
เริ่มบริการ Cassandra
systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse
สร้างไฟล์ cqlshrc
vi /root/.cassandra/cqlshrc
[connection]
hostname = 198.168.1.100
port = 9035
ขอบคุณ Mahesh