{"id":21018689,"url":"https://github.com/tal-tech/pan","last_synced_at":"2025-10-26T01:02:08.812Z","repository":{"id":109364128,"uuid":"282788030","full_name":"tal-tech/pan","owner":"tal-tech","description":"Pan is a high performance mq proxy,support kafka,rabbit-mq,rocketmq,nsq and other mq","archived":false,"fork":false,"pushed_at":"2020-10-09T03:13:30.000Z","size":378,"stargazers_count":35,"open_issues_count":2,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-03T05:12:11.109Z","etag":null,"topics":["kafka","mq","mqproxy","nsq","pan","rabbitmq","rocketmq","sarama"],"latest_commit_sha":null,"homepage":"https://www.yuque.com/tal-tech/pan","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tal-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-27T03:47:58.000Z","updated_at":"2024-09-26T07:27:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"a19d2299-2642-4f26-a8cd-68e8875c9937","html_url":"https://github.com/tal-tech/pan","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fpan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fpan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fpan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fpan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tal-tech","download_url":"https://codeload.github.com/tal-tech/pan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254288220,"owners_count":22045862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kafka","mq","mqproxy","nsq","pan","rabbitmq","rocketmq","sarama"],"created_at":"2024-11-19T10:27:06.868Z","updated_at":"2025-10-26T01:02:03.769Z","avatar_url":"https://github.com/tal-tech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://github.com/hhtlxhhxy/pan/blob/master/img/pan.jpg\" alt=\"image-20200803155136931\" style=\"zoom:50%;\" /\u003e\n\n-----\n## Background\n-----\nPan is a high performance and stable production side agent of messager-oriented middleware written in pure Go language. It supports mainstream message queues in the market, such as Kafka, RabbitMQ, RocketMQ, NSQ, etc. Moreover, it is easy to be extended and can meet different business requirements in the production environment.\n\n\n## Document\n-----\n[Document](https://tal-tech.github.io/pan-doc/)\n\n[中文文档](https://www.yuque.com/tal-tech/pan)\n\n## Framework\n------\nThe framework of Pan is shown as below.\n\n\u003cimg src=\"https://github.com/hhtlxhhxy/pan/blob/master/img/fram1.jpg\" alt=\"image-20200803155136931\" style=\"zoom:50%;\" /\u003e\n\n## Quickstart\n\n### Produce messages to kafka by Pan.\n-----\n\n#### 1. Start zookeeper\n```shell\n./bin/zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties\n```\n#### 2. Start kafka\n```shell\n./bin/kafka-server-start /usr/local/etc/kafka/server.properties\n```\n#### 3. Create topic\n```shell\n./bin/kafka-topics  --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test\n```\n#### 4. Modify config for kafka in Pan\n```shell\n[KafkaProxy]\nenable=true\nKafkaWaitAll=true\nKafkaCompression=true\nKafkaPartitioner=round\nKafkaProducerTimeout=10\nbrokers=localhost:9092\nsasl=false\nuser=\npassword=\nvalid= //topic whitelist，if empty, all topic can be sended\nfailMode=retry/save/discard\n\n```\n\n#### 5. Run\n```shell\ntar -zxvf pan.tar.gz\ncd pan/\nmake\n./bin/pan -c ../conf/conf.ini\n```\n\n#### 6. Send Message\n\n```go\npackage main\n \nimport (\n    \"fmt\"\n    \"time\"\n \n    \"github.com/tal-tech/xtools/kafkautil\"\n\n    \"github.com/spf13/cast\"\n)\n \nfunc main() {\n    t := time.Tick(5 * time.Second)\n    count := 0\n    for {\n        select {\n        case \u003c-t:\n            count++\n            err := kafkautil.Send2Proxy(\"test\", []byte(\"kafka \"+cast.ToString(count)))\n            if err != nil {\n                fmt.Println(err)\n            }\n            continue\n        }\n    }\n}\n```\n#### modify conf\n```shell\n[KafkaProxy]\nunix=/home/www/pan/pan.sock   //sock in pan\nhost=localhost:9999  //ip and post pan listen\n```\n\n#### warn\nreplace in go.mod\n```shell\nreplace github.com/henrylee2cn/teleport v5.0.0+incompatible =\u003e github.com/hhtlxhhxy/github.com_henrylee2cn_teleport v1.0.0\n\n或\n\nreplace github.com/henrylee2cn/teleport v0.0.0 =\u003e github.com/hhtlxhhxy/github.com_henrylee2cn_teleport v1.0.0\n```\n\n## Contact us\n\u003cp align=\"left\"\u003e\n \u003ca href=\"https://tal-tech.github.io/pan-doc/\" target=\"_blank\"\u003e\n     \u003cimg src=\"https://cdn.nlark.com/yuque/0/2020/png/2138318/1600340932767-f20251e4-688a-4077-9721-9296f5319e56.png\"  alt=\"Contact Us\" align=center /\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"left\"\u003e\n（微信扫一扫，申请加入开发讨论微信群）\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fpan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftal-tech%2Fpan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fpan/lists"}