Skip to content

alexvancasper/hashcalc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hash calc service

Сервис считает SHA3-512 хэши и складывает их в БД PostgreSQL. Возвращает id и расчитанный hash. Логи пишет в GrayLog, статистика собирается в Prometheus и визуализируется в Grafana.

Как запустить?

Склонировать репозиторий

git clone <path to repo>
cd final/server
docker-compose up -d

Затем в браузере открыть http://localhost:8080/send

Для отправки хэшей нужно заполнить форму Для проверки хэшей http://localhost:8080/check?ids=<num>

Либо используя curl

Отправить хэш на сервер

curl -X 'POST' \
  'http://localhost:8080/send' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'params="test-line1"&params="test-line2"'

Проверить хэш по id

curl -v -X 'GET' \
  'http://localhost:8080/check?ids=<num>' \
  -H 'accept: application/json'

Как запустить тесты?

Предварительно нужно поднять PostgreSQL

docker run -d --rm \
    --name postgres_test \
    -p 5432:5432 \
    -e POSTGRES_PASSWORD=postgres \
    -e POSTGRES_DB=hashdb \
    postgres:latest

Удостовериться, что БД запустилась.

docker ps -a | grep postgres_test

Затем

~/final/server$ make test

Остановить PostgresQL

docker stop postgres_test

Logging levels

Panic =  0
Fatal =  1
Error =  2
Warn =  3
Info =  4
Debug =  5
Trace =  6

Configuration examples

server

server:
  name: Compute hash server
  host: 0.0.0.0
  port: 8090
  worker-count: 5
  cache-count: 5
  db:
    # Supported DB type is postgres only
    type: postgres
    pool-count: 5
    host: postgres
    port: 5432
    user: postgres
    pass: postgres
    dbname: hashdb
    ssl: disable
metric:
  host: 0.0.0.0
  port: 7755
  path: metrics
logging:
  provider: graylog
  host: graylog
  port: 12201
  level: 5

Client

client:
  name: Compute hash client
  host: 0.0.0.0
  port: 8080
grpc:
  host: hash-calc-service
  port: 8090
metric:
  host: 0.0.0.0
  port: 7766
  path: metrics
logging:
  provider: graylog
  host: graylog
  port: 12201
  level: 5

Prometheus

scrape_configs:
- job_name: main
  scrape_interval: 5s
  static_configs:
  - targets:
    - hash-calc-service:7755
    - hash-calc-client:7766

Для переопределения конфигурации, нужно добавить в конфигурацию соответствющего контейнера конфигурацию volumes.

пример

  hash-calc-client:
    volumes:
      - ./prod/client.yaml:/go/client.yaml:ro  

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages