Skip to content

dkyaorui/DosMq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DosMq

Message queue middleware based on Golang that can be deployed as an independent project.

中文

Version: Dosmq

Dependency:

go-1.13.4 Mongo-latest Redis-latest

Deployment

We need a linux server with redis and mongodb, and install go-1.13.4 first.

If you set password for database, you should set variable in environment:

  • REDIS_PASSWORD
  • MONGO_PASSWORD

Deploy step

  • Install dependency
$ go mod download
  • Edit the config file: /config/config.yaml

  • Build the project

$ go build -o dosmq
  • Run the Project
$ ./dosmq

API Document

/api/consumer/get

Note:if topic_process_type isget,consumer can get one message.

Method:POST

Headers:applications/json

Parameter:

{	
    "sub_server_name": "subscriber_name",
    "sub_host": "subscriber_name",
    "sub_key": "subscriber_secret",
    "sub_api": "/...",
    "sub_method": "get|post|...|none"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

/api/producer/send

Note:An api for producer send one message.

Method:POST

Headers:applications/json

Parameter:

{	
    "auth_key": "auth_key",
    "owner_server_name": "producer_name",
    "owner_key": "producer_secret_key",
    "owner_host": "producer_host",
    "value": "massage"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

/api/topic/sign_up

Note:An api for producer sign up a topic.

Method:POST

Headers:applications/json

Parameter:

{	
    "auth_key": "auth_key",
    "owner_server_name": "producer_name",
    "owner_key": "producer_secret",
    "owner_host": "producer_host",
    "topic_name": "topic_name",
    "topic_process_type": "push | pull"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

/api/topic/del

Note:An api for producer del one topic.

Method:POST

Headers:applications/json

Parameter:

{	
    "auth_key": "auth_key",
    "owner_server_name": "producer_name",
    "owner_key": "producer_secret",
    "owner_host": "producer_host",
    "topic_name": "topic_name",
    "topic_process_type": "push | pull"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

/api/topic/subscribe

Note:An api for consumer subscribe one topic.

Method:POST

Headers:applications/json

Parameter:

{	
    "auth_key": "auth_key",
    "owner_server_name": "producer_name",
    "owner_key": "producer_secret",
    "owner_host": "producer_host",
    "sub_server_name": "subscriber_name",
    "sub_host": "subscriber_name",
    "sub_key": "subscriber_secret",
    "sub_api": "/...",
    "sub_method": "get|post|...|none"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

/api/topic/cancel_subscribe

Note:An api for consumer unsubscribe one topic.

Method:POST

Headers:applications/json

Parameter:

{	 
    "auth_key": "auth_key",
    "owner_server_name": "producer_name",
    "owner_key": "producer_secret",
    "owner_host": "producer_host",
    "sub_server_name": "subscriber_name",
    "sub_host": "subscriber_name",
    "sub_key": "subscriber_secret",
    "sub_api": "/...",
    "sub_method": "get|post|...|none"
}

return:

{
    "Code": "Http.StatusCode",
    "Data": "data | msg"
}

About

A message queue developed by golang

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages