Εγκαταστήστε το Plesk στο CentOS 7
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων
Το RabbitMQ είναι ένας μεσίτης μηνυμάτων ανοιχτού κώδικα που υποστηρίζει AMQP, STOMP και άλλες τεχνολογίες επικοινωνίας. Χρησιμοποιείται ευρέως σε εταιρικές εφαρμογές και σύγχρονες αρχιτεκτονικές μικροϋπηρεσιών όπου λειτουργεί ως ασύγχρονο κανάλι μηνυμάτων μεταξύ διαφορετικών μικροϋπηρεσιών. Αυτός ο οδηγός θα περιγράψει πώς μπορείτε να ομαδοποιήσετε το RabbitMQ σε πολλούς διακομιστές CentOS 7 για να σχηματίσετε έναν μεσίτη μηνυμάτων υψηλής διαθεσιμότητας. Σε αυτό το σεμινάριο, ένας διακομιστής θα λειτουργεί ως κύριος διακομιστής και οι άλλοι διακομιστές θα λειτουργούν ως διακομιστές κατοπτρισμού σε περίπτωση που ο κύριος διακομιστής καταστεί μη διαθέσιμος.
Το τείχος προστασίας CentOS, ( firewalld
), δεν επιτρέπει καμία εισερχόμενη κίνηση από προεπιλογή. Για να διαθέσουμε το RabbitMQ για άλλα συστήματα εντός και εκτός του δικτύου και για να μας επιτραπεί η πρόσβαση στην κονσόλα διαχείρισης, πρέπει πρώτα να ανοίξουμε ορισμένες θύρες.
Η κονσόλα διαχείρισης διεπαφής web του RabbitMQ ακούει από προεπιλογή στη θύρα 15672
. Θα θέλαμε να κάνουμε την κονσόλα διαχείρισης δημόσια διαθέσιμη, ώστε να έχουμε πρόσβαση σε αυτήν από τον υπολογιστή μας. Επομένως, θα σας ζητήσουμε firewalld
να ανοίξετε μόνιμα τη θύρα 15672
στη δημόσια ζώνη (η οποία είναι η προεπιλεγμένη και ενεργή ζώνη σε μια παρουσία Vultr).
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
Οι κόμβοι RabbitMQ πρέπει να μπορούν να επικοινωνούν μεταξύ τους. Θα θέλαμε να ανοίξουμε τις απαραίτητες θύρες, αλλά μόνο μέσω του εσωτερικού δικτύου. Δεν θέλουμε κανένας στο Διαδίκτυο να μπορεί να διαχειρίζεται ή να επικοινωνεί απευθείας με τους διακομιστές μας. Οι ακόλουθες εντολές υποθέτουν ότι οι διακομιστές μας βρίσκονται στο 192.168.0.100/24
υποδίκτυο.
Η πρώτη υπηρεσία είναι η epmd
υπηρεσία εντοπισμού ομοτίμων που ακούει από προεπιλογή στη θύρα 4369
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="4369" accept'
Για επικοινωνία μεταξύ κόμβων και CLI, το RabbitMQ πρέπει να μπορεί να επικοινωνεί μέσω θύρας 25672
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="25672" accept'
Τα εργαλεία CLI επικοινωνούν στην περιοχή των θυρών 35672-35682
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="35672-35682" accept'
Εάν οι εφαρμογές σας χρειάζονται το πρωτόκολλο AMQP, θα χρειαστεί επίσης να ανοίξετε θύρες 5671
και 5672
. Εάν χρειάζεται να μπορείτε να επικοινωνείτε μέσω άλλου πρωτοκόλλου, μπορείτε να βρείτε τις απαραίτητες πληροφορίες σχετικά με τις απαιτήσεις δικτύωσης του RabbitMQ στην επίσημη τεκμηρίωση του RabbitMQ .
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5672" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5671" accept'
Τώρα που firewalld
έχει ρυθμιστεί, πρέπει να του δώσουμε εντολή να φορτώσει ξανά τη διαμόρφωση.
sudo firewall-cmd --reload
Επαναλάβετε τα βήματα από αυτήν την ενότητα σε όλους τους διακομιστές.
rabbitmqadmin
Το πρόσθετο διαχείρισης συνοδεύεται από ένα εργαλείο Python που ονομάζεται και το rabbitmqadmin
οποίο μπορεί εύκολα να εγκατασταθεί στο σύστημα μόλις ενεργοποιηθεί το πρόσθετο διαχείρισης.
sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin
Πρέπει να χρησιμοποιήσετε τα ονόματα κεντρικών υπολογιστών του διακομιστή για να προσδιορίσετε τους διακομιστές κατά την ομαδοποίηση. Από προεπιλογή, στους διακομιστές δεν έχει εκχωρηθεί εγγραφή DNS και η σύνδεση θα αποτύχει. Για να το ξεπεράσετε γρήγορα, προσθέστε το όνομα του κύριου και του κατοπτρικού κεντρικού υπολογιστή στο /etc/hosts
αρχείο χρησιμοποιώντας τον αγαπημένο σας επεξεργαστή.
Για παράδειγμα, το αρχείο hosts του πλοιάρχου σας μπορεί να μοιάζει με το ακόλουθο. Παρατηρήστε τις δύο τελευταίες εγγραφές, οι οποίες επιτρέπουν στους διακομιστές να αναγνωρίζουν ο ένας τον άλλον με το όνομα κεντρικού υπολογιστή τους. Φροντίστε να αλλάξετε τις διευθύνσεις IP στις δικές σας.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 guest
::1 guest
127.0.0.1 YOUR_MASTER_SERVER_HOST_NAME
::1 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.101 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.102 YOUR_MIRROR_SERVER_HOST_NAME
Προϋπόθεση εισαγωγής για να επιτραπεί στους κόμβους να ενωθούν μεταξύ τους είναι τα cookie Erlang όλων των κόμβων να είναι πανομοιότυπα. Από προεπιλογή, σε κάθε κόμβο θα εκχωρηθεί ένα μοναδικό cookie Erlang, επομένως πρέπει να το ρυθμίσετε εκ νέου σε όλους τους κόμβους.
Η ακόλουθη εντολή θα ορίσει το cookie Erlang σε " WE<3COOKIES
", αλλά μη διστάσετε να το αλλάξετε σύμφωνα με τις προτιμήσεις σας. Κάντε αυτό σε όλους τους διακομιστές.
sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"
Επανεκκινήστε το RabbitMQ σε όλους τους διακομιστές για να βεβαιωθείτε ότι το cookie Erlang έχει επαναφορτωθεί σωστά.
sudo systemctl restart rabbitmq-server.service
Εκτελέστε τις ακόλουθες εντολές σε όλους τους διακομιστές εκτός από τον κύριο διακομιστή. Αυτό θα αφήσει τους κόμβους να ενωθούν στον κύριο διακομιστή και να σχηματίσουν ένα σύμπλεγμα.
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app
Επαληθεύστε ότι οι κόμβοι έχουν ενταχθεί στο σύμπλεγμα εκτελώντας την ακόλουθη εντολή.
sudo rabbitmqctl cluster_status
Όλοι οι κόμβοι σας θα εμφανιστούν στην ενότητα nodes
και running_nodes
της εξόδου. Από εδώ και στο εξής, δεν χρειάζεται πλέον να επαναλαμβάνετε τα βήματα σε κάθε διακομιστή, η διαμόρφωση θα αντικατοπτρίζεται αυτόματα στους άλλους κόμβους.
Τώρα που έχουμε ένα σύμπλεγμα κόμβων RabbitMQ, μπορούμε να το χρησιμοποιήσουμε για να δημιουργήσουμε ουρές και ανταλλαγές υψηλής διαθεσιμότητας δημιουργώντας μια νέα πολιτική. Αυτή η πολιτική μπορεί να προστεθεί μέσω της κονσόλας διαχείρισης RabbitMQ ή χρησιμοποιώντας τη διεπαφή της γραμμής εντολών.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
Η παρακάτω λίστα θα εξηγήσει τι σημαίνει κάθε μέρος της εντολής.
-p "/"
: Χρησιμοποιήστε αυτήν την πολιτική στο "/"
vhost (η προεπιλογή μετά την εγκατάσταση)--priority 1
: Η σειρά με την οποία εφαρμόζονται οι πολιτικές --apply-to "all"
: Μπορεί να είναι "queues"
, "exchanges"
ή"all"
ha
: Το όνομα που δίνουμε στην πολιτική μας ".*"
: Η τυπική έκφραση που χρησιμοποιείται για να αποφασίσει σε ποιες ουρές ή ανταλλαγές εφαρμόζεται αυτή η πολιτική. ".*"
θα ταιριάζει με οτιδήποτε'{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
: Η αναπαράσταση JSON της πολιτικής. Αυτό το έγγραφο περιγράφει ότι θέλουμε - ακριβώς 2 κόμβους στους οποίους τα δεδομένα συγχρονίζονται αυτόματαΕν ολίγοις, αυτή η πολιτική θα διασφαλίσει ότι θα έχουμε πάντα 2 αντίγραφα των δεδομένων σε μια ουρά ή ανταλλαγή, εφόσον έχουμε τουλάχιστον 2 κόμβους σε λειτουργία. Εάν έχετε περισσότερους κόμβους, μπορείτε να αυξήσετε την τιμή του ha-params
. Συνιστάται απαρτία, ( N/2 + 1
), κόμβων. Η κατοχή περισσότερων αντιγράφων των δεδομένων σας θα είχε ως αποτέλεσμα υψηλότερη χρήση δίσκου, εισόδου/εξόδου και δικτύου που θα μπορούσε να οδηγήσει σε υποβαθμισμένη απόδοση.
Εάν θέλετε να αντικατοπτρίσετε τα δεδομένα σε όλους τους κόμβους του συμπλέγματος, μπορείτε να χρησιμοποιήσετε το ακόλουθο έγγραφο JSON.
'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'
Εάν θέλετε να αντικατοπτρίσετε τα δεδομένα μόνο σε συγκεκριμένους κόμβους, (για παράδειγμα: node-1
και node-2
), μπορείτε να χρησιμοποιήσετε τα ακόλουθα.
'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'
Μπορείτε να αλλάξετε την τυπική έκφραση για να εκχωρήσετε διαφορετικές πολιτικές σε διαφορετικές ουρές. Ας υποθέσουμε ότι έχουμε τους ακόλουθους τρεις κόμβους:
Στη συνέχεια, μπορούμε να δημιουργήσουμε δύο πολιτικές που θα έχουν ως αποτέλεσμα οι ουρές να έχουν ένα όνομα που ξεκινά με "πελάτης" για να αντικατοπτρίζεται στον rabbit@client-ha
κόμβο και όλες οι ουρές που έχουν ένα όνομα που ξεκινά με "προϊόν" να αντικατοπτρίζονται στον rabbit@product-ha
κόμβο.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-client "client.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@client-ha"], "ha-sync-mode": "automatic"}
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-product "product.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@product-ha"], "ha-sync-mode": "automatic"}
Μια μικρή παρατήρηση εδώ: οι αποκλειστικές ουρές δεν αντικατοπτρίζονται ποτέ ή είναι ανθεκτικές στο RabbitMQ, ακόμα κι αν αυτή η πολιτική ταιριάζει με τέτοιες ουρές. Οι αποκλειστικές ουρές καταστρέφονται αυτόματα μόλις αποσυνδεθεί ένας πελάτης και, ως εκ τούτου, δεν θα ήταν χρήσιμο να αναπαραχθεί σε άλλο διακομιστή. Εάν ο διακομιστής αποτύγχανε, ο πελάτης θα αποσυνδεόταν από αυτόν και η ουρά θα καταστρεφόταν αυτόματα. Θα καταστρέφονταν και οι αντικατοπτρισμένες περιπτώσεις.
Προκειμένου να δοκιμάσουμε την εγκατάσταση σε συμπλέγματα, μπορούμε να δημιουργήσουμε μια νέα ουρά χρησιμοποιώντας τη διεπαφή γραμμής εντολών μέσω της κονσόλας διαχείρισης.
sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true
Αυτό θα δημιουργήσει μια ανθεκτική ουρά στον προεπιλεγμένο /
vhost με το όνομα my-ha-queue
.
Εκτελέστε την ακόλουθη εντολή και επαληθεύστε στην έξοδο ότι η ουρά έχει εκχωρηθεί η πολιτική μας "ha" και έχει pid στην κύρια και σε έναν κόμβο καθρέφτη.
sudo rabbitmqctl list_queues name policy state pid slave_pids
Μπορούμε τώρα να δημοσιεύσουμε ένα μήνυμα στην ουρά από τον κύριο κόμβο και να σταματήσουμε το RabbitMQ στον κύριο κόμβο.
sudo rabbitmqadmin -u user_name -p password publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown
Τώρα πάρτε το πίσω συνδέοντας τον κόμβο καθρέφτη.
sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue
Τέλος, μπορούμε να επανεκκινήσουμε τον κύριο κόμβο μας.
sudo systemctl start rabbitmq-server.service
Όπως αναφέρθηκε προηγουμένως, το RabbitMQ δημιουργεί αυτόματα έναν επισκέπτη χρήστη με έναν προεπιλεγμένο κωδικό πρόσβασης επισκέπτη. Θα ήταν κακή πρακτική να αφήσετε αυτόν τον προεπιλεγμένο χρήστη σε ένα δημόσια εκτεθειμένο σύστημα.
sudo rabbitmqctl delete_user guest
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων
Το Squid είναι ένα δημοφιλές, δωρεάν πρόγραμμα Linux που σας επιτρέπει να δημιουργήσετε έναν διακομιστή μεσολάβησης web προώθησης. Σε αυτόν τον οδηγό, θα δείτε πώς να εγκαταστήσετε το Squid στο CentOS για να σας μετατρέψει
Εισαγωγή Το Lighttpd είναι ένα πιρούνι του Apache που έχει ως στόχο να είναι πολύ λιγότερο εντάσεως πόρων. Είναι ελαφρύ, εξ ου και το όνομά του, και είναι αρκετά απλό στη χρήση. Εγκατάσταση
Το Icinga2 είναι ένα ισχυρό σύστημα παρακολούθησης και όταν χρησιμοποιείται σε μοντέλο master-client, μπορεί να αντικαταστήσει την ανάγκη για ελέγχους παρακολούθησης που βασίζονται σε NRPE. Ο κύριος-πελάτης
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Microweber είναι ένα ανοικτού κώδικα μεταφοράς και απόθεσης CMS και ηλεκτρονικό κατάστημα. Ο πηγαίος κώδικας Microweber φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Mattermost είναι μια εναλλακτική λύση ανοιχτού κώδικα, που φιλοξενείται από τον εαυτό της στην υπηρεσία ανταλλαγής μηνυμάτων Slack SAAS. Με άλλα λόγια, με το Mattermost, μπορείτε περίπου
Ο πίνακας ελέγχου Plesk διαθέτει μια πολύ ωραία ενσωμάτωση για το Lets Encrypt. Το Lets Encrypt είναι ένας από τους μόνους παρόχους SSL που εκδίδει πιστοποιητικά πλήρως
Το Lets Encrypt είναι μια αρχή έκδοσης πιστοποιητικών αφιερωμένη στην παροχή πιστοποιητικών SSL δωρεάν. Το cPanel έχει δημιουργήσει μια τακτοποιημένη ενοποίηση για εσάς και τον πελάτη σας
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Concrete5 είναι ένα CMS ανοιχτού κώδικα που προσφέρει πολλές χαρακτηριστικές και χρήσιμες λειτουργίες για να βοηθήσει τους συντάκτες να παράγουν περιεχόμενο εύκολα και
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Review Board είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο για την ανασκόπηση του πηγαίου κώδικα, της τεκμηρίωσης, των εικόνων και πολλών άλλων. Είναι λογισμικό που βασίζεται στο web
Σε αυτόν τον οδηγό, θα μάθετε πώς να ρυθμίζετε τον έλεγχο ταυτότητας HTTP για έναν διακομιστή web Nginx που εκτελείται σε CentOS 7. Απαιτήσεις Για να ξεκινήσετε, θα χρειαστείτε
Το YOURLS (Your Own URL Shortener) είναι μια εφαρμογή συντόμευσης διευθύνσεων URL και ανάλυσης δεδομένων ανοιχτού κώδικα. Σε αυτό το άρθρο, θα καλύψουμε τη διαδικασία εγκατάστασης
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το ArangoDB είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα με ένα ευέλικτο μοντέλο δεδομένων για έγγραφα, γραφήματα και κλειδιά-τιμές. είναι
Εισαγωγή Ο κατάλογος /etc/ παίζει κρίσιμο ρόλο στον τρόπο λειτουργίας ενός συστήματος Linux. Ο λόγος για αυτό είναι επειδή σχεδόν κάθε διαμόρφωση συστήματος
Πολλοί διαχειριστές συστημάτων διαχειρίζονται μεγάλες ποσότητες διακομιστών. Όταν χρειάζεται πρόσβαση στα αρχεία σε διαφορετικούς διακομιστές, συνδέεστε σε καθένα ξεχωριστά περίπου
Αυτό το σεμινάριο θα καλύψει τη διαδικασία εγκατάστασης ενός διακομιστή παιχνιδιών Half Life 2 στο σύστημα CentOS 6. Βήμα 1: Εγκατάσταση των προαπαιτούμενων Για να ρυθμίσετε το ou
Το Laravel GitScrum ή GitScrum είναι ένα εργαλείο παραγωγικότητας ανοιχτού κώδικα που έχει σχεδιαστεί για να βοηθά τις ομάδες ανάπτυξης να εφαρμόσουν τη μεθοδολογία Scrum με παρόμοιο τρόπο
Εισαγωγή Σε αυτό το σεμινάριο Vultr, θα μάθετε πώς να εγκαταστήσετε το PowerDNS. Το PowerDNS είναι ένα πρόγραμμα για την εκτέλεση των δικών σας διακομιστών ονομάτων. Είναι πολύ χρήσιμο όταν
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα