Sticky Session กับ Docker Swarm (CE) บน CentOS 7

บทนำ

Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้เป็นคลัสเตอร์ของคอมพิวเตอร์อำนวยความสะดวกในการปรับขนาดความพร้อมใช้งานสูงและการทำโหลดบาลานซ์ Swarm load-balancer ใช้กลยุทธ์ load-balancing round-robin และสิ่งนี้อาจรบกวนการทำงานที่ถูกต้องของแอพพลิเคชั่น stateful (แบบดั้งเดิม) ซึ่งต้องการเซสชันเหนียวบางรูปแบบเพื่ออนุญาตให้มีการติดตั้งที่มีความพร้อมใช้งานสูง Docker Enterprise Edition รองรับเซสชั่นเหนียว Layer-7 แต่ในคู่มือนี้เราจะมุ่งเน้นไปที่ Docker รุ่นฟรี (CE) ในการใช้งานเซสชันที่ติดหนึบเราจะใช้ Traefik

ข้อกำหนดเบื้องต้น

  • อย่างน้อยสองอินสแตนซ์ CentOS 7 ที่ปรับใช้ใหม่และอัพเดตในซับเน็ตเดียวกันกับเครือข่ายส่วนตัวที่เปิดใช้งาน
  • Docker CE ติดตั้งในอินสแตนซ์เหล่านี้
  • อินสแตนซ์ควรเป็นส่วนหนึ่งของ Swarm เดียวกันและควรสามารถสื่อสารระหว่างกันผ่านเครือข่ายส่วนตัว
  • ความรู้เดิมของ Docker และ Docker Swarm
  • ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบที่มีสิทธิ์ sudo (เป็นทางเลือก แต่ขอแนะนำอย่างยิ่งให้อย่าใช้ผู้ใช้รูท)

ในบทช่วยสอนนี้เราจะใช้ Vultr สองอินสแตนซ์ที่มีที่อยู่ IP ส่วนตัว 192.168.0.100 และ 192.168.0.101 ทั้งคู่เป็นโหนดตัวจัดการ Docker Swarm (ซึ่งไม่เหมาะสำหรับการผลิต แต่เพียงพอสำหรับการสอนนี้)

ฉันเป็นใคร

บทช่วยสอนนี้ใช้jwilder/whoamiอิมเมจนักเทียบท่าเป็นแอปพลิเคชันสาธิต คอนเทนเนอร์แบบง่ายนี้จะตอบสนองต่อการเรียกส่วนที่เหลือด้วยชื่อของคอนเทนเนอร์ที่ตอบสนองทำให้ง่ายต่อการทดสอบว่าเซสชันที่ติดหนึบทำงานอยู่หรือไม่ รูปภาพนี้ใช้สำหรับวัตถุประสงค์ในการสาธิตเท่านั้นและจะต้องแทนที่ด้วยรูปภาพของแอปพลิเคชันของคุณเอง whoami-serviceมีการกำหนดค่าดังต่อไปนี้:

sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

ถ้าเราจะต่อมาปลายทาง REST ที่เราสามารถมองเห็นรอบโรบินดุลการโหลดของหาง Swarm ในที่ทำงานcurlwhoamihttp://192.168.0.100/

curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3

มันไม่มีประโยชน์ที่จะทดสอบสิ่งนี้กับเบราว์เซอร์สมัยใหม่เช่น Chrome หรือ Firefox เพราะมันถูกออกแบบมาเพื่อให้การเชื่อมต่อยังคงอยู่ (เปิด) และตัวโหลดบาลานซ์ของ Docker Swarm จะเปลี่ยนไปที่คอนเทนเนอร์อื่นในแต่ละการเชื่อมต่อใหม่เท่านั้น หากคุณต้องการทดสอบสิ่งนี้ด้วยเบราว์เซอร์คุณจะต้องรออย่างน้อย 30 วินาทีก่อนที่การเชื่อมต่อจะปิดก่อนที่จะรีเฟรชอีกครั้ง

การตั้งค่า Traefik

Traefik รองรับหรือไม่โดยเฉพาะกับ Docker Swarm สามารถตรวจจับและลงทะเบียนหรือยกเลิกการลงทะเบียนภาชนะบรรจุได้ทันทีและสื่อสารกับแอพพลิเคชั่นของคุณผ่านเครือข่ายโอเวอร์เลย์ภายใน Traefik ต้องการข้อมูลบางอย่างเกี่ยวกับแอปพลิเคชันของคุณก่อนที่จะสามารถเริ่มจัดการคำขอ ข้อมูลนี้ให้แก่ Traefik โดยการเพิ่มป้ายกำกับในบริการ Swarm ของคุณ

sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service

รายการด้านล่างอธิบายความหมายของฉลากแต่ละรายการ:

  • traefik.docker.network: เครือข่ายโอเวอร์เลย์ Docker ที่ Traefik จะสื่อสารกับบริการของคุณ
  • traefik.port: พอร์ตที่บริการของคุณกำลังรับฟัง (นี่คือพอร์ตที่เปิดเผยภายในไม่ใช่พอร์ตที่เผยแพร่)
  • traefik.frontend.rule: PathPrefix:/ผูกรูทบริบท/กับบริการนี้
  • traefik.backend.loadbalancer.stickiness: เปิดใช้งานเซสชันที่ติดหนึบสำหรับบริการนี้

ตอนนี้whoami-serviceการกำหนดค่าด้วยป้ายกำกับที่ต้องการเราสามารถเพิ่มบริการ Traefik ไปยังฝูง:

sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG

คำสั่งนี้ทำหลาย ๆ อย่างพร้อมกัน รายการด้านล่างจะอธิบายรายละเอียดเพิ่มเติม:

  • --name traefik: ชื่อบริการใหม่ของ Docker คือ traefik
  • -p8080:80: เราเผยแพร่พอร์ตของ Traefik 80ไปยังพอร์ต8080(พอร์ต80ถูกใช้โดยเราแล้วwhoami-service)
  • -p9090:8080: เราเผยแพร่เว็บอินเตอร์เฟสของ Traefik ไปยังพอร์ต 9090
  • --mount ...: เราติดตั้ง Docker Socket ลงในคอนเทนเนอร์เพื่อให้ Traefik สามารถเข้าถึงรันไทม์ของ Docker ของโฮสต์ได้
  • --global: เราต้องการคอนเทนเนอร์ Traefik บนแต่ละโหนดของผู้จัดการเพื่อความพร้อมใช้งานสูง
  • --constraint 'node.role == manager': เราต้องการให้ Traefik ทำงานบนโหนดผู้จัดการเท่านั้นเนื่องจากโหนดผู้ปฏิบัติงานไม่สามารถให้ข้อมูลที่จำเป็นกับ Traefik ได้ ตัวอย่างเช่นdocker service lsบนโหนดงานไม่ทำงานดังนั้น Traefik จะไม่สามารถค้นพบว่าบริการใดกำลังทำงานอยู่
  • --network whoaminet: เชื่อมต่อ Traefik กับเครือข่ายเดียวกันกับเราwhoami-serviceไม่เช่นนั้นจะไม่สามารถเชื่อมต่อได้ ก่อนหน้านี้เราบอก Traefik ให้เชื่อมต่อกับบริการของเราผ่านเครือข่ายนี้พร้อมกับtraefik.docker.networkฉลาก
  • traefik: บอกนักเทียบท่าให้ใช้อิมเมจ Trafik docker ล่าสุดสำหรับบริการนี้
  • --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG: อาร์กิวเมนต์บรรทัดคำสั่งส่งโดยตรงไปยัง Traefik เพื่อให้สามารถทำงานในโหมด Docker Swarm ( --loglevel=DEBUGเป็นตัวเลือกที่นี่ แต่น่าสนใจระหว่างการติดตั้งและสำหรับบทช่วยสอนนี้)

สิ่งที่เหลืออยู่ที่ต้องทำคือเปิดพอร์ตที่จำเป็นในไฟร์วอลล์ CentOS:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload

มันทำงานอย่างไร

ทันทีที่ Traefik เริ่มต้นขึ้นคุณจะเห็นในบันทึกที่ Traefik ค้นพบwhoamiภาชนะทั้งสอง นอกจากนี้ยังแสดงชื่อคุกกี้ซึ่งจะใช้เพื่อจัดการกับเซสชันเหนียว

time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"

หากเราขดตัวhttp://192.168.0.100:8080เราจะเห็นว่า_a49bcมีการตั้งค่าคุกกี้ใหม่:

curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
*   Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact

หากในการโทรครั้งต่อไปเราส่งคุกกี้นี้ไปยัง Traefik เราจะถูกส่งต่อไปยังคอนเทนเนอร์เดียวกันเสมอ:

curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3

คุกกี้ไม่มีอะไรนอกจากที่อยู่ภายใน (โอเวอร์เลย์) ที่อยู่ IP ของคอนเทนเนอร์ที่ Traefik ควรส่งไปขอ หากคุณเปลี่ยนค่าคุกกี้http://10.0.0.4:8000เป็นคำขอจะถูกส่งต่อไปยังคอนเทนเนอร์อื่นอย่างมีประสิทธิภาพ หากคุกกี้ไม่เคยถูกส่งไปที่ Traefik อีกครั้งเซสชันที่ติดหนึบจะไม่ทำงานและการร้องขอจะมีความสมดุลระหว่างคอนเทนเนอร์ของแอปพลิเคชันและคอนเทนเนอร์ Traefik

นั่นคือทั้งหมดที่จำเป็นในการตั้งค่า Layer 7 Sticky Sessions ใน Docker CE บน CentOS 7



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง TestLink บน CentOS 7

วิธีการติดตั้ง TestLink บน CentOS 7

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

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์

การติดตั้ง Netdata บน CentOS 7

การติดตั้ง Netdata บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วยหนึ่งหรือหมอ

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง

ติดตั้ง dotProject บน CentOS 7

ติดตั้ง dotProject บน CentOS 7

แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ

ติดตั้ง TaskServer (taskd) บน CentOS 7

ติดตั้ง TaskServer (taskd) บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade

วิธีการติดตั้ง Kanboard บน CentOS 7

วิธีการติดตั้ง Kanboard บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true