| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package main
- import (
- "log"
- "os"
- "igit.com/xbase/raft"
- "igit.com/xbase/raft/example/basic/common"
- )
- func main() {
- // Configuration
- nodeID := "node1"
- addr := "127.0.0.1:9001"
- dataDir := "../../data/node1"
- // Initial Cluster configuration (Node 1 + Node 2)
- clusterNodes := map[string]string{
- "node1": "127.0.0.1:9001",
- "node2": "127.0.0.1:9002",
- }
- config := raft.DefaultConfig()
- config.NodeID = nodeID
- config.ListenAddr = addr
- config.DataDir = dataDir
- config.ClusterNodes = clusterNodes
- config.LogCompactionEnabled = false // Requirement: No bin log compression
-
- // Console Logger
- config.Logger = raft.NewConsoleLogger(nodeID, 1) // Info level
- // Ensure data directory exists
- if err := os.MkdirAll(dataDir, 0755); err != nil {
- log.Fatalf("Failed to create data directory: %v", err)
- }
- // Create KV Server
- server, err := raft.NewKVServer(config)
- if err != nil {
- log.Fatalf("Failed to create server: %v", err)
- }
- // Start server
- if err := server.Start(); err != nil {
- log.Fatalf("Failed to start server: %v", err)
- }
- defer server.Stop()
- // Start CLI
- common.StartCLI(server, nodeID)
- }
|