Skip to main content

ark

image

创建

ark create run.arkio.demo

WSGI

启动

ark serve --wsgi
or
gunicorn demo.app:app --reload

测试

curl "http://127.0.0.1:8000/"

压测

ab -n 10000 -c 100 -t 10 "http://127.0.0.1:8000/"

GRPC

启动

ark serve

测试

grpcurl -plaintext 127.0.0.1:50051 list

grpcurl -plaintext -d '{"name": "ark"}' 127.0.0.1:50051 helloworld.Greeter/SayHello
grpcurl -plaintext -d '{"name": "redis"}' 127.0.0.1:50051 helloworld.Greeter/SayHello
grpcurl -plaintext -d '{"name": "kafka"}' 127.0.0.1:50051 helloworld.Greeter/SayHello
grpcurl -plaintext -d '{"name": "rabbit"}' 127.0.0.1:50051 helloworld.Greeter/SayHello

grpcurl -plaintext -d '{"name": "ark"}' 127.0.0.1:50051 helloworld.Greeter/SayHelloAsync
grpcurl -plaintext -d '{"name": "rpc"}' 127.0.0.1:50051 helloworld.Greeter/SayHelloAsync

压测

# ecs.c6.large 2vCPU/4GiB
ghz --insecure --async \
    --call helloworld.Greeter/SayHello \
    -c 1000 -n 20000 --rps 5000 \
    -d '{"name":"ark"}' 172.26.1.198:50051

运行模式

  • ark serve --wsgi
  • ark serve
  • ark worker
  • ark consumer
  • ark shell
  • ark run
  • ark test
  • ark lint

基础设施

redis

docker run -d --hostname redis --name redis -p 6379:6379 redis

rabbitmq

docker run -d --hostname rabbit --name rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management

[后台] http://127.0.0.1:15672

kafka

export KAFKA_ADVERTISED_HOST_NAME=172.26.1.199

docker rm -f kafka
docker rm -f zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
docker run -d --name kafka -p 9092:9092 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_HOST_NAME=$KAFKA_ADVERTISED_HOST_NAME -e KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka:2.12-2.4.0

docker exec -it kafka bash
kafka-topics.sh --zookeeper zookeeper:2181 --list
kafka-topics.sh --zookeeper zookeeper:2181 --delete --topic topic01
kafka-topics.sh --zookeeper zookeeper:2181 --create --topic topic01 --replication-factor 1 --partitions 5

elasticsearch

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0

curl http://localhost:9200

elasticsearch-kibana

docker run --name kibana --link=elasticsearch:test  -p 5601:5601 -d kibana:7.2.0

[后台] http://127.0.0.1:15672

必备工具

grpcurl

# mac
brew install grpcurl

# linux
https://github.com/fullstorydev/grpcurl/releases/download/v1.8.6/grpcurl_1.8.6_linux_x86_64.tar.gz

[文档] https://github.com/fullstorydev/grpcurl

ghz

# mac
brew install ghz

# linux
wget https://github.com/bojand/ghz/releases/download/v0.108.0/ghz-linux-x86_64.tar.gz

[文档] https://ghz.sh/docs/usage

protobuf

# mac
brew install protobuf

# linux
PROTOC_ZIP=protoc-3.14.0-osx-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

[文档] http://google.github.io/proto-lens/installing-protoc.html

Metadata

Release files for arkio 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arkio 0.0.4
File Size Uploaded
arkio-0.0.4.tar.gz 28.6 kB Details

Release files / arkio-0.0.4.tar.gz

Download URL arkio-0.0.4.tar.gz
Size 28.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ac5977d7a1ea498688960d39d3b6555bbf99b379407db1ffd0d44d3e7533d851
BLAKE2b-256 checksum
How to use checksums
426fe84aaa488ab8a2166e1436fe933334131fd73bed299acecc1e6968ccd885
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.0.4 This release

1 release file

0.0.3

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page