ข้ามไปที่เนื้อหาหลัก

Apache Kafka Architecture: เจาะลึกโครงสร้างภายในและกลไกการทำงาน


1. Apache Kafka คืออะไร?

Apache Kafka คือแพลตฟอร์มสำหรับรับ จัดเก็บ และส่งต่อข้อมูลเหตุการณ์แบบกระจายศูนย์ โดยออกแบบมาเพื่อรองรับข้อมูลปริมาณมากและการประมวลผลแบบต่อเนื่อง

Kafka ไม่ได้เป็นเพียง Message Queue แต่สามารถทำหน้าที่เป็น Distributed Event Log ซึ่งเก็บข้อมูลไว้ตามนโยบายที่กำหนด และเปิดโอกาสให้ Consumer อ่านข้อมูลย้อนหลังได้ตราบเท่าที่ข้อมูลยังคงอยู่

ตัวอย่างการใช้งาน ได้แก่

  • ระบบซื้อขายสินค้าออนไลน์
  • ระบบติดตามธุรกรรมทางการเงิน
  • ระบบวิเคราะห์ข้อมูลแบบ Real-time
  • ระบบรวบรวม Log จากเซิร์ฟเวอร์
  • ระบบ Data Pipeline
  • ระบบส่งข้อมูลจากฐานข้อมูลไปยัง Data Warehouse
  • ระบบ Event Streaming สำหรับ AI และ Machine Learning

แนวคิดสำคัญของ Kafka คือการแยกผู้ผลิตข้อมูลออกจากผู้บริโภคข้อมูล โดยมี Kafka Cluster เป็นโครงสร้างพื้นฐานกลางสำหรับรับและจัดเก็บ Event Streams

2. ภาพรวมสถาปัตยกรรม Kafka

สถาปัตยกรรม Kafka ประกอบด้วยองค์ประกอบหลายส่วนที่ทำงานร่วมกัน

                    DATA PRODUCERS

                          |

                          v

                 +-------------------+

                 | Kafka Producers  |

                 +-------------------+

                          |

                          v

              +-------------------------+

              |      Kafka Cluster      |

              |                         |

              |  Broker 1               |

              |  Broker 2               |

              |  Broker 3               |

              |                         |

              |  Topics / Partitions    |

              |  Replication / Storage  |

              +-------------------------+

                          |

                          v

                 +-------------------+

                 | Kafka Consumers  |

                 +-------------------+

                          |

              +-----------+-----------+

              |           |           |

              v           v           v

          Database    Analytics    AI Pipeline

ในระบบจริง Producer และ Consumer สามารถทำงานบนเครื่องหรือบริการที่แยกจาก Kafka Cluster ได้

ภายใน Cluster นั้น Broker ทำหน้าที่จัดเก็บและให้บริการข้อมูล ขณะที่กลไกควบคุม Cluster ทำหน้าที่จัดการ Metadata และการประสานงานตามสถาปัตยกรรมของ Kafka รุ่นที่ใช้งาน

3. Kafka Broker: โหนดหลักของระบบ

Broker คือเซิร์ฟเวอร์ที่เป็นส่วนหนึ่งของ Kafka Cluster

หน้าที่หลักของ Broker ได้แก่

  1. รับข้อมูลจาก Producer
  2. จัดเก็บ Record ลง Partition
  3. ให้บริการอ่านข้อมูลแก่ Consumer
  4. จัดการ Replica ของ Partition
  5. ประสานงานตามสถานะและ Metadata ของ Cluster

ตัวอย่าง Cluster ที่มี Broker 3 เครื่อง

Kafka Cluster


+------------------+

| Broker 1         |

| Partition 0      |

| Partition 1      |

+------------------+


+------------------+

| Broker 2         |

| Partition 1      |

| Partition 2      |

+------------------+


+------------------+

| Broker 3         |

| Partition 0      |

| Partition 2      |

+------------------+

แผนภาพนี้เป็นตัวอย่างการกระจาย Partition และ Replica โดยไม่ได้ระบุว่าแต่ละชุดเป็น Leader หรือ Follower

การกระจายข้อมูลไปยังหลาย Broker ช่วยให้ระบบสามารถใช้ทรัพยากรหลายเครื่องร่วมกัน และรองรับการทำ Replication ได้

อย่างไรก็ตาม การเพิ่ม Broker ไม่ได้ทำให้ประสิทธิภาพเพิ่มขึ้นโดยอัตโนมัติ เพราะต้องพิจารณาการกระจาย Partition, Network, Disk I/O และภาระของ Producer และ Consumer ด้วย

4. Topic: การจัดหมวดหมู่เหตุการณ์

Topic คือชื่อเชิงตรรกะที่ใช้จัดกลุ่ม Record ซึ่งมีลักษณะหรือวัตถุประสงค์ร่วมกัน

ตัวอย่าง Topic ในระบบอีคอมเมิร์ซ

Topic

ข้อมูลที่จัดเก็บ

orders

เหตุการณ์คำสั่งซื้อ

payments

เหตุการณ์การชำระเงิน

inventory

เหตุการณ์สต็อกสินค้า

shipments

เหตุการณ์การจัดส่ง

user-events

เหตุการณ์จากผู้ใช้งาน

การแยก Topic ช่วยให้สามารถกำหนดนโยบายการเก็บข้อมูลและสิทธิ์การเข้าถึงให้เหมาะกับข้อมูลแต่ละประเภทได้

ตัวอย่างเช่น Topic orders อาจเก็บข้อมูลไว้ 7 วัน ขณะที่ Topic สำหรับเหตุการณ์ทางธุรกิจบางประเภทอาจต้องเก็บไว้นานกว่านั้น โดยขึ้นอยู่กับข้อกำหนดของระบบ

ทั้งนี้ Retention ของ Kafka ไม่ใช่กลไกทดแทนการจัดเก็บข้อมูลถาวรหรือข้อกำหนดด้านการเก็บรักษาข้อมูลทางกฎหมายทั้งหมด

5. Partition: หน่วยจัดเก็บข้อมูลภายใน Topic

Topic สามารถแบ่งออกเป็นหลาย Partition ได้

ตัวอย่าง Topic orders ที่มี 3 Partition

Topic: orders


Partition 0

Offset 0 -> Order A

Offset 1 -> Order D

Offset 2 -> Order G


Partition 1

Offset 0 -> Order B

Offset 1 -> Order E

Offset 2 -> Order H


Partition 2

Offset 0 -> Order C

Offset 1 -> Order F

Offset 2 -> Order I

แต่ละ Partition เป็น Log ที่มีลำดับของตัวเอง

ประโยชน์ของ Partition ได้แก่

  • กระจายข้อมูลไปยังหลาย Broker
  • รองรับการอ่านและเขียนแบบขนาน
  • เพิ่มขีดความสามารถในการประมวลผล
  • แบ่งขอบเขตของการเรียงลำดับข้อมูล

Kafka รับประกันลำดับ Record ภายใน Partition แต่ไม่รับประกันลำดับรวมระหว่างทุก Partition

หากต้องการรักษาลำดับของเหตุการณ์คำสั่งซื้อเดียวกัน อาจกำหนด order_id เป็น Partition Key เพื่อให้เหตุการณ์ของคำสั่งซื้อเดียวกันถูกส่งไปยัง Partition เดียวกันตามกลยุทธ์การเลือก Partition

ข้อควรระวังคือ การเพิ่มจำนวน Partition อาจเปลี่ยนการกระจาย Key สำหรับ Record ใหม่ จึงควรวางแผนการขยายระบบโดยคำนึงถึงข้อกำหนดด้าน Ordering ด้วย

6. Producer: ระบบที่ส่งข้อมูลเข้าสู่ Kafka

Producer เป็น Client ที่ส่ง Record ไปยัง Topic

ตัวอย่างข้อมูลคำสั่งซื้อ:

{

  "event_id": "evt-1001",

  "event_type": "OrderCreated",

  "order_id": "ORD-1001",

  "amount": 1500,

  "currency": "THB"

}

เมื่อ Producer ส่ง Record ไปยัง Kafka จะมีกระบวนการสำคัญ ได้แก่

  1. เลือก Topic ปลายทาง
  2. กำหนด Key และ Value
  3. เลือก Partition ตามกลยุทธ์ที่ใช้
  4. ส่ง Record ไปยัง Broker ที่เป็น Leader ของ Partition
  5. รับผลการยืนยันตามการตั้งค่า Producer

Producer สามารถส่งข้อมูลเป็นชุด หรือ Batching เพื่อช่วยลดต้นทุนการส่งข้อมูลและเพิ่ม Throughput ได้

6.1 Producer Acknowledgment

การตั้งค่า acks มีผลต่อการยืนยันการเขียนข้อมูล

ค่า

ความหมายโดยสรุป

acks=0

Producer ไม่รอการยืนยันจาก Broker

acks=1

รอการยืนยันจาก Leader

acks=all

รอการยืนยันตามเงื่อนไขของ Replica ที่กำหนด

acks=all ไม่ได้หมายความว่าต้องรอทุก Replica ที่มีอยู่เสมอ แต่ขึ้นอยู่กับ In-Sync Replicas และการตั้งค่าที่เกี่ยวข้อง

หากต้องการความทนทานต่อความล้มเหลว ควรพิจารณา acks, min.insync.replicas, Replication Factor และนโยบาย Retry ร่วมกัน

7. Consumer: ระบบที่อ่านข้อมูลจาก Kafka

Consumer เป็น Client ที่อ่าน Record จาก Topic แล้วนำไปประมวลผล

ตัวอย่าง:

Kafka Topic: orders

          |

          v

      Consumer

          |

          v

   Validate Event

          |

          v

   Process Business

          |

          v

   Save to Database

Consumer สามารถอ่านข้อมูลเพื่ออัปเดตฐานข้อมูล ส่งการแจ้งเตือน คำนวณข้อมูลวิเคราะห์ หรือส่งต่อไปยังระบบอื่นได้

สิ่งสำคัญคือ Kafka ไม่ได้กำหนดให้ Consumer ต้องลบ Record หลังอ่านเสร็จ ข้อมูลจะยังคงอยู่ตามนโยบาย Retention หรือ Compaction ที่กำหนด

7.1 Consumer Group

Consumer Group ช่วยให้ Consumer หลายตัวแบ่งกันอ่าน Partition ของ Topic เดียวกัน

ตัวอย่าง:

Topic: orders

  |

  +-- Partition 0 ---> Consumer A

  |

  +-- Partition 1 ---> Consumer B

  |

  +-- Partition 2 ---> Consumer C

ภายใน Consumer Group เดียวกัน แต่ละ Partition จะถูกจัดสรรให้ Consumer ได้ไม่เกินหนึ่งตัวในช่วงเวลาที่ Assignment นั้นมีผล

หากมี 3 Partition และ 5 Consumers ใน Group เดียวกัน จะมี Consumer บางตัวที่ไม่ได้รับ Partition ในช่วงนั้น

อย่างไรก็ตาม สามารถสร้าง Consumer Group หลายกลุ่มเพื่อให้ระบบคนละชุดอ่าน Topic เดียวกันได้อย่างอิสระ เช่น กลุ่มหนึ่งประมวลผลคำสั่งซื้อ อีกกลุ่มหนึ่งวิเคราะห์ยอดขาย

8. Kafka Offset: ติดตามตำแหน่งการอ่านข้อมูล

Offset คือหมายเลขตำแหน่งของ Record ภายใน Partition

ตัวอย่าง:

Partition 0


Offset 0 -> OrderCreated

Offset 1 -> PaymentRequested

Offset 2 -> PaymentCompleted

Offset 3 -> OrderShipped

Consumer สามารถบันทึก Offset ที่อ่านไปถึง เพื่อให้กลับมาอ่านข้อมูลต่อได้หลังหยุดทำงาน

อย่างไรก็ตาม ต้องแยกระหว่างตำแหน่งที่อ่านข้อมูลแล้วกับสถานะที่ประมวลผลธุรกิจสำเร็จแล้ว

หาก Consumer Commit Offset ก่อนบันทึกผลลัพธ์ลงฐานข้อมูลสำเร็จ อาจเกิดกรณีที่ข้อมูลถูกข้ามเมื่อกลับมาทำงานใหม่

ในทางกลับกัน หากบันทึกผลลัพธ์สำเร็จแล้วแต่ยังไม่ได้ Commit Offset ก็อาจประมวลผลเหตุการณ์เดิมซ้ำได้

แนวทางแก้ไข ได้แก่

  • ใช้ Idempotency Key
  • ออกแบบการประมวลผลซ้ำให้ปลอดภัย
  • จัดลำดับการ Commit Offset ให้เหมาะสม
  • ใช้ Transaction หรือ Outbox Pattern เมื่อจำเป็น

9. Replication: การทำสำเนา Partition

Kafka สามารถสร้าง Replica ของ Partition เพื่อเพิ่มความทนทานต่อความล้มเหลวได้

ตัวอย่าง:

Partition 0


Broker 1: Leader

Broker 2: Follower

Broker 3: Follower

Leader รับผิดชอบการอ่านและเขียนตามกลไกของ Kafka ส่วน Follower จะติดตามข้อมูลจาก Leader

หาก Leader ล้มเหลว Kafka สามารถเลือก Leader ใหม่จาก Replica ที่มีสิทธิ์ตามเงื่อนไขของระบบได้

9.1 Replication Factor

Replication Factor

จำนวนสำเนา

1

1 ชุด

2

2 ชุด

3

3 ชุด

การใช้ Replication Factor เท่ากับ 3 หมายถึงมี Replica 3 ชุดต่อ Partition แต่ไม่ได้หมายความว่าทุกชุดต้องอยู่คนละเครื่องหรือคนละ Availability Zone โดยอัตโนมัติ

จึงควรจัดวาง Replica ให้เหมาะสมกับรูปแบบความล้มเหลวที่ต้องการรองรับ

10. Controller และ KRaft

Kafka ต้องมีกลไกควบคุม Metadata และสถานะของ Cluster เช่น การจัดการ Partition, Leader Election และการเปลี่ยนแปลงโครงสร้างระบบ

Kafka รุ่นใหม่ใช้สถาปัตยกรรม KRaft (Kafka Raft) ซึ่งใช้กลุ่ม Controller ทำงานร่วมกันเพื่อจัดการ Metadata โดยไม่ต้องพึ่ง ZooKeeper แบบสถาปัตยกรรมรุ่นเก่า

องค์ประกอบหลัก ได้แก่

  • Broker: ให้บริการรับส่งและจัดเก็บ Record
  • Controller: ดูแลการเปลี่ยนแปลง Metadata และการประสานงานของ Cluster
  • KRaft Quorum: กลุ่ม Controller ที่ทำงานร่วมกันเพื่อจัดการ Metadata ผ่านกลไกฉันทามติ

ใน Production สามารถกำหนดบทบาท Broker และ Controller ให้เหมาะกับขนาดระบบและความต้องการด้านความพร้อมใช้งาน

การออกแบบต้องคำนึงถึงจำนวน Controller การกระจายโหนด และการรับมือกับความล้มเหลวของ Quorum

11. Kafka Storage Engine: ข้อมูลถูกจัดเก็บอย่างไร?

Kafka จัดเก็บ Record ของแต่ละ Partition เป็น Log โดยแบ่งข้อมูลออกเป็น Segment เพื่อให้บริหารจัดการข้อมูลขนาดใหญ่ได้สะดวกขึ้น

โครงสร้างเชิงแนวคิด:

Kafka Partition

       |

       v

+------------------+

| Segment 0        |

| Older Records    |

+------------------+

       |

       v

+------------------+

| Segment 1        |

| Recent Records   |

+------------------+

       |

       v

+------------------+

| Active Segment   |

| New Records      |

+------------------+

เมื่อมีข้อมูลใหม่เข้ามา Record จะถูกเพิ่มเข้า Log ตามกลไกของ Partition และ Segment

การแบ่ง Segment ช่วยให้ Kafka จัดการ Retention, Index และการลบข้อมูลเก่าได้มีประสิทธิภาพมากขึ้น

Kafka ยังใช้กลไก Index เพื่อช่วยค้นหาตำแหน่งของ Record โดยไม่จำเป็นต้องอ่านข้อมูลทั้งหมดตั้งแต่ต้นทุกครั้ง

ในระบบจริง รายละเอียดการจัดเก็บขึ้นอยู่กับเวอร์ชัน Kafka และการตั้งค่าที่ใช้งาน

12. Kafka Data Flow: ตั้งแต่ Producer ถึง Consumer

ตัวอย่างการไหลของข้อมูลคำสั่งซื้อ

ขั้นตอนที่ 1: ลูกค้าสั่งซื้อสินค้า

Order Service สร้างเหตุการณ์ OrderCreated

ขั้นตอนที่ 2: Producer ส่งเหตุการณ์

Producer ส่ง Record ไปยัง Topic orders

ขั้นตอนที่ 3: Kafka จัดเก็บข้อมูล

Broker ที่เป็น Leader ของ Partition รับ Record และจัดเก็บตามกลไกของ Kafka

ขั้นตอนที่ 4: Replica ติดตามข้อมูล

Follower Replica ดึงหรือรับข้อมูลตามกลไก Replication ของ Kafka

ขั้นตอนที่ 5: Consumer อ่านข้อมูล

Consumer Group อ่าน Record ตาม Offset ของแต่ละ Partition

ขั้นตอนที่ 6: ระบบปลายทางประมวลผล

Consumer นำเหตุการณ์ไปอัปเดตฐานข้อมูลหรือดำเนินการอื่นตามหน้าที่

ขั้นตอนที่ 7: Consumer ติดตามความคืบหน้า

ระบบจัดการ Offset เพื่อให้สามารถกลับมาอ่านข้อมูลต่อหรือจัดการการประมวลผลซ้ำได้อย่างเหมาะสม

13. Kafka กับระบบ Data Engineering

Kafka สามารถทำหน้าที่เป็นศูนย์กลางของ Data Pipeline ที่รับข้อมูลจากหลายแหล่งและส่งต่อไปยังระบบประมวลผล

ตัวอย่างสถาปัตยกรรม:

Database / API / Application

             |

             v

       Data Producers

             |

             v

       Apache Kafka

             |

       +-----+------+

       |            |

       v            v

 Apache Flink   Kafka Consumers

       |            |

       v            v

 Real-Time DB   Data Storage

       |

       v

 Analytics / Dashboard

บทบาทของเทคโนโลยีในสถาปัตยกรรมนี้แตกต่างกัน

  • Kafka รับและกระจาย Event Streams
  • Flink ประมวลผลข้อมูลแบบ Stream
  • Consumer Services ทำงานตามเหตุการณ์
  • Database และ Data Storage เก็บผลลัพธ์ตามวัตถุประสงค์
  • Analytics และ Dashboard ใช้ข้อมูลที่ผ่านการประมวลผลแล้ว

การเลือกใช้เครื่องมือควรพิจารณาจาก Latency, Throughput, ความซับซ้อนของการประมวลผล และต้นทุนในการดูแลระบบ

14. การออกแบบ Kafka สำหรับ Production

ก่อนนำ Kafka ไปใช้งานจริง ควรวางแผนเรื่องสำคัญดังต่อไปนี้

ประเด็น

สิ่งที่ต้องพิจารณา

Partitioning

จำนวน Partition และการกระจาย Key

Replication

จำนวน Replica และการจัดวางโหนด

Durability

acks, min.insync.replicas และเงื่อนไขการยืนยัน

Consumer Processing

Offset, Retry และ Idempotency

Retention

ระยะเวลาเก็บข้อมูลและพื้นที่จัดเก็บ

Schema

ความเข้ากันได้ของรูปแบบข้อมูล

Security

Authentication, Authorization และ Encryption

Monitoring

Throughput, Latency, Consumer Lag และ Disk Usage

Recovery

การรับมือกับ Broker และระบบปลายทางที่ล้มเหลว

การตั้งค่าเหล่านี้ต้องพิจารณาร่วมกัน เพราะการปรับปรุงด้านหนึ่งอาจส่งผลต่อ Latency, Throughput, Durability หรือค่าใช้จ่ายของระบบในอีกด้านหนึ่ง

15. สรุป

Apache Kafka เป็นแพลตฟอร์ม Distributed Event Streaming ที่นำแนวคิด Distributed Log มาใช้จัดเก็บและกระจายข้อมูล

องค์ประกอบสำคัญ ได้แก่ Broker, Topic, Partition, Producer, Consumer, Offset, Replication และ Controller

การเข้าใจองค์ประกอบเหล่านี้ช่วยให้สามารถออกแบบระบบ Event-Driven Architecture, Data Pipeline และ Real-Time Analytics ได้อย่างมีประสิทธิภาพมากขึ้น

อย่างไรก็ตาม การสร้างระบบ Production ที่เชื่อถือได้ไม่ได้ขึ้นอยู่กับ Kafka เพียงอย่างเดียว แต่ยังต้องออกแบบการจัดการธุรกรรม การประมวลผลซ้ำ ความปลอดภัย การ Monitoring และการกู้คืนระบบ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

อะไรคือ NPU (Neural Processing Unit) มีความสำคัญอย่างไร แนวคิดมาจากไหน

ความหมาของคำว่า NPU (Neural Processing Unit)  NPU (Neural Processing Unit) คือ หน่วยประมวลผลโครงข่ายประสาทที่สร้างมาเพื่อใช้งานด้านปัญญาประดิษฐ์ เป็นหน่วยประมวลผลพิเศษที่ออกแบบมาเพื่อใช้ในแนวคิดของการเรียนรู้ของเครื่อง (Machine Learning) ของคอมพิวเตอร์โดยเฉพาะ ทำให้การประมวลผล AI ทรงประสิทธิภาพเพิ่มขึ้นจากเดิมของ TPU GPU และ CPU เช่น การจดจำภาพ, วิเคราะห์เสียง, หรือการแปลภาษา ทำได้รวดเร็วและประหยัดพลังงานกว่า CPU/GPU ทั่วไป โดยทำงานคล้ายโครงข่ายประสาทของมนุษย์ และพบได้ทั้งในสมาร์ตโฟน, คอมพิวเตอร์ (PC), และอุปกรณ์ AI อื่นๆ ในอนาคต เพื่อเร่งความเร็วของการทำงานของ AI สามารถจัดการงานและปัญหาที่ซับซ้อนได้อย่างมีประสิทธิภาพ  ประวัติความเป็นมาของ NPU (Neural Processing Unit)  ตั้งแต่ปี 1970 เป็นต้นมาเราได้ใช้เริ่มมีการใช้หน่วยการประมวลผลแบบดั้งเดิม คือ หน่วยประมวลผลกลาง (CPU) ถือเป็น "สมอง" และเป็นกลไกการทำงานของคอมพิวเตอร์ ดังนั้นซีพียู CPU ประมวลผลงานคำนวณแบบดั้งเดิมส่วนใหญ่มีหน้าที่รับผิดชอบการทำงานของแอปพลิเคชันให้มีศักยภาพหลากหลายเพิ่มมาเรื่อย แม้ว่าจะมีหลายประเภท แต่โดยทั่...

Micro SaaS "ขนาดพอดีคำ" สร้างธุรกิจเริ่มต้นอย่างง่ายด่าย จากไอเดียสู่สร้างรายได้ โดยใช้ AI Agent ตอบสนองความต้องการซอฟต์แวร์ที่เล็ก ง่าย และทรงพลัง

ผลิตภัณฑ์ Micro SaaS กำลังได้รับความนิยมมากขึ้นกว่าที่เคย เป็นผลมาจากความต้องการซอฟต์แวร์เฉพาะทางที่เพิ่มสูงขึ้น ผู้ประกอบการกำลังสร้างเครื่องมือน้ำหนักเบาที่ตอบโจทย์ความต้องการเฉพาะด้าน ตั้งแต่เครื่องมือสร้างเนื้อหาที่ขับเคลื่อนด้วย AI และ CRM เฉพาะกลุ่ม ไปจนถึงแอปพลิเคชันการออกใบแจ้งหนี้และแพลตฟอร์มการจัดการโครงการที่ใช้งานง่าย โซลูชันที่มุ่งเน้นเฉพาะด้านเหล่านี้กำลังได้รับความนิยมในอุตสาหกรรมต่างๆ เช่น การศึกษา ฟิตเนส บริการ และการตลาด ไม่ว่าจะเป็นการช่วยให้ธุรกิจขนาดเล็กปรับปรุงกระบวนการทำงาน หรือการนำเสนอเครื่องมือที่ชาญฉลาดยิ่งขึ้นให้กับผู้สร้างสรรค์ แนวคิด SaaS ขนาดเล็กกำลังเปิดโอกาสใหม่ๆ ให้กับผลิตภัณฑ์ที่ทำกำไรได้และดูแลรักษาง่าย Micro SaaS คืออะไร? Micro SaaS (ไมโครซาส) เป็นรูปแบบซอฟต์แวร์ออนไลน์ที่ให้บริการผ่านเว็บ (Software as a Service) แต่มี ขนาดเล็ก, เน้นแก้ปัญหาเฉพาะด้าน (Niche), ทีมพัฒนาเล็กมากถึงขั้น ผู้พัฒนาคนเดียวก็ทำได้, ต้นทุนต่ำ และมักสร้างรายได้แบบ Subscription รายเดือน/รายปี วิเคราห์ตลาดของ Micro SaaS  Micro SaaS มีการเติบโตอย่างมีนัยสำคัญภายในตลาดเทคโทนโลย...

TomCat สำหรับติดตั้ง แก้ไข คอนฟิก ใช้งาน JSP

Apache Tomcat เป็น  HTTP Server ที่มีความสามารถนำภาษาจาวามาใช้งานได้  สามารถใช้เทคโนโลยีของภาษาจาวาที่เรียกว่า Java Servlet  และ Java Server Page (JSP)  Tomcat เป็นโปรแกรม Open-Source  อยู่ภายใต้การดูแลของ Apache Software Foundation  (ซึ่งเป็นผู้สร้าง Apache HTTP Server ที่เป็นที่นิยมใช้กันอย่างแพร่หลาย)  สามารถอ่านรายละเอียดของ Tomcat ได้ที่  http://tomcat.apache.org  โดยเลือกหัวข้อ “ Documentation”  และเลือก “Tomcat 7.0” ขั้นตอนการติดตั้ง Tomcat เรียงลำดับดังนี้