| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package main
- import (
- "log"
- "os"
- "igit.com/xbase/raft"
- )
- func main() {
- // 1. 配置初始化
- config := raft.DefaultConfig()
- config.NodeID = "node2"
- config.ListenAddr = "127.0.0.1:9002"
- config.HTTPAddr = ":8002" // Enable HTTP API
- config.DataDir = "data/node2"
- config.Logger = &raft.DefaultLogger{Prefix: "node2"}
- // Node 2 starts empty and joins later, or can be part of cluster if we update config
- // Here we let it join later via CLI or pre-configure it empty
- // To make it easy to test clustered auth, let's just join manually via CLI from node1
-
- // Ensure data directory exists
- os.MkdirAll(config.DataDir, 0755)
- // 2. 创建 KV Server
- 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()
- log.Println("Node2 started on 127.0.0.1:9002 (HTTP :8002)")
-
- // Block forever
- select {}
- }
|