| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package main
- import (
- "log"
- "os"
- "igit.com/xbase/raft"
- )
- func main() {
- // 1. 配置初始化
- config := raft.DefaultConfig()
- config.NodeID = "node1"
- config.ListenAddr = "127.0.0.1:9001"
- config.HTTPAddr = ":8001" // Enable HTTP API
- config.DataDir = "data/node1"
- config.Logger = &raft.DefaultLogger{Prefix: "node1"}
- // 初始集群配置
- config.ClusterNodes = map[string]string{
- "node1": "127.0.0.1:9001",
- }
- // 2. 创建 KV Server
- // Ensure data directory exists
- os.MkdirAll(config.DataDir, 0755)
-
- server, err := raft.NewKVServer(config)
- if err != nil {
- log.Fatalf("Failed to create server: %v", err)
- }
- // 3. 启动服务
- if err := server.Start(); err != nil {
- log.Fatalf("Failed to start server: %v", err)
- }
- defer server.Stop()
- // Register Demo Commands
- RegisterDemoAuthCommands(server.CLI)
- log.Println("Node1 started on 127.0.0.1:9001 (HTTP :8001)")
- log.Println("CLI is ready. Type 'help' to see commands.")
- // Block forever
- select {}
- }
|