Golang
Comment accélérer un endpoint API lent — quelles approches existent?
Quelle ressource Kubernetes est nécessaire pour que les instances du pod s'exécutent sur tous les nœuds du cluster?
Comment fonctionne la map en interne?
Quelles sont vos attentes salariales ? Comment était structuré votre revenu précédent (salaire de base, primes) ? Êtes-vous prêt à considérer le revenu total incluant les primes ?
Que se passe-t-il si l'on effectue d'autres opérations mathématiques avec un résultat dépassant la capacité de int32 : y aura-t-il une erreur, une panique ou autre chose ?
Parlez-moi d'un défi difficile que vous avez réussi à relever récemment, ou du plus intéressant. Qu'est-ce que c'était, qu'avez-vous fait, qu'est-ce que cela a donné ?
À quelle fréquence faites-vous des releases et à quel moment?
Qu'est-ce qu'une tranche en Go?
Revue de code : problèmes dans la fonction getExternalOrderIdFromCRM (client HTTP)
Avez-vous de l'expérience dans la migration d'une architecture monolithique vers des microservices?
Quels événements ont été transmis via Kafka et comment avez-vous géré leur ordre incorrect ?
Est-ce que déclarer beaucoup d'index aura un impact sur l'espace de stockage?
// Le client transmet un objet (Task) avec des données pour exécuter la tâche, // dans notre exemple, nous utiliserons une structure vide. // // Le gestionnaire peut traiter au maximum N tâches simultanément, // et pas plus de X tâches peuvent être en file d'attente. // Si l'espace dans la file d'attente est plein, une erreur est renvoyée immédiatement au client. // // La tâche est prise en charge si des processeurs libres sont disponibles. // Nous simulons la durée du traitement avec time.Sleep(5*time.Second). // Dès qu'une tâche est terminée, nous prenons la suivante dans la file. // Si la file est vide, nous attendons de nouvelles tâches des clients. // // Avec une étoile : compléter la structure Task et obtenir les statuts des tâches via une requête séparée. package scheduler type Scheduler interface { AddTask(t Task) error Close() } type scheduler struct { queue chan Task wg sync.WaitGroup } func New(workers, queue int) Scheduler { // implémentation en attente } type Task interface { Do() }
Connais-tu l'architecture de Kubernetes, quelles entités existent, qu'est-ce que le plan de contrôle?
Parle-moi plus en détail de WaitGroup : à quoi sert-il, quelles méthodes existe-t-il ?
Supposons que nous sommes un grand réseau publicitaire. Nous plaçons des bannières sur des sites partenaires dans le monde entier. Nous devons concevoir un système de collecte et de traitement des événements en temps réel. Ces données sont critiques pour deux objectifs: Facturation : Déduire de l'argent aux annonceurs pour les clics. Analytique : Afficher l'efficacité actuelle des campagnes (CTR, impressions) dans le tableau de bord. Données d'entrée (pour le calcul de la charge) Vous devez estimer vous-même les capacités requises (RPS, trafic, stockage), en vous basant sur les métriques suivantes: Réseau partenaire : 500 000 sites actifs. Trafic : En moyenne, chaque site reçoit 2 vues de pages par seconde. Blocs publicitaires : Sur chaque page, 3 bannières sont affichées simultanément. Conversion : Le taux moyen de clics (CTR) est de 1%. Inégalité : La charge de pointe (heures du soir) est 4 fois supérieure à la moyenne. Taille de l'événement : L'objet de l'événement (ID de la bannière, ID du site, UserID, Timestamp, type d'événement) pèse environ 500 octets. Exigences techniques Presque en temps réel : Les données dans l'interface analytique doivent apparaître avec un retard ne dépassant pas 10 secondes. Fiabilité : La perte de clics n'est pas acceptable (cela entraîne une perte d'argent). La perte d'impressions est acceptable jusqu'à 0,01%. Scalabilité : Le système doit pouvoir s'étendre facilement avec la croissance du nombre de plateformes.
Que se passe-t-il si nous ajoutons trop d'éléments à une slice à l'intérieur d'une fonction?
SELECT user_id, COUNT(*) AS order_count FROM orders WHERE price_total >= 1000 GROUP BY user_id ORDER BY order_count DESC;
Comment structurer correctement l'architecture du service : où stocker les commandes, les entités de domaine, les erreurs ?
Finalement, quelles solutions ont-ils choisies ? ClickHouse, ELK et quoi d'autre ?