Skip to content

Instantly share code, notes, and snippets.

{
"_nodes" : {
"total" : 7,
"successful" : 7,
"failed" : 0
},
"cluster_name" : "elasticsearch",
"nodes" : {
"aLOsdqVRRgisq9kNEDVafQ" : {
"timestamp" : 1551851149929,
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: default
name: elasticsearch-master
labels:
component: elasticsearch
role: master
spec:
replicas: 3

Задача

Написать сервис tcp-proxy, которая принимает соединения от клиентов (tcp-client) и проксирует их к внешнему сервису (tcp server).

Протокол обмена

  • Клиент отправляет сообщение: plain-text строка ограниченная \n
  • Сервер возвращает число символов в строке и \n.

Функции прокси

  • При отключении клиента отключается от сервера
  • При отключении сервера прозрачно для клиента переподключается к серверу
@korjavin
korjavin / install-docker.sh
Created July 8, 2017 06:44 — forked from frgomes/install-docker.sh
Debian - install docker in Debian Jessie
#!/bin/bash
# compiled from https://docs.docker.com/engine/installation/linux/debian/#/debian-jessie-80-64-bit
sudo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get install apt-transport-https ca-certificates -y
sudo sh -c "echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list"
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
package main
import (
"encoding/json"
"github.com/tidwall/buntdb"
"github.com/tidwall/gjson"
"log"
"strconv"
"time"
)
package main
import (
"encoding/json"
"github.com/tidwall/buntdb"
"github.com/tidwall/gjson"
"log"
"strconv"
)
@korjavin
korjavin / start_docker_registry.bash
Created February 8, 2017 09:10 — forked from PieterScheffers/start_docker_registry.bash
Start docker registry with letsencrypt certificates (Linux Ubuntu)
#!/usr/bin/env bash
# install docker
# https://docs.docker.com/engine/installation/linux/ubuntulinux/
# install docker-compose
# https://docs.docker.com/compose/install/
# install letsencrypt
# https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
Device Model: Espada EDM-SA.51-016GMJ
Serial Number: 984062700147
LU WWN Device Id: 5 000000 000000000
Firmware Version: 130206
User Capacity: 16 013 942 784 bytes [16,0 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS (minor revision not indicated)
#!env python
import sys
(lastKey,minDist,minVals)=(None,0,'')
for line in sys.stdin:
arr = line.strip().split("\t")
v=arr[0]
d=arr[1]
vals=arr[2].replace('{','').replace('}','')
@korjavin
korjavin / mojo-crawler.pl
Last active January 12, 2016 07:52 — forked from creaktive/mojo-crawler.pl
Simple web crawler/scraper implemented using Mojolicious
#!/usr/bin/env perl
use 5.010;
use open qw(:locale);
use strict;
use utf8;
use warnings qw(all);
use Mojo::UserAgent;
use Data::Dumper;