MCPcopy Create free account
hub / github.com/Super-long/ChubbyGo / serverRegisterFun

Method serverRegisterFun

Connect/server_handler.go:153–184  ·  view source on GitHub ↗

* * @brief: 把raft和kvraft的挂到RPC上 */

()

Source from the content-addressed store, hash-verified

151 * @brief: 把raft和kvraft的挂到RPC上
152 */
153func (cfg *ServerConfig) serverRegisterFun() {
154 // 注册RPC时只要结构体中有不符合要求的成员函数存在就会打印日志,挺烦的
155 // 把RaftKv挂到RPC上
156 err := rpc.Register(cfg.kvserver)
157 if err != nil {
158 // RPC会把全部函数中满足规则的函数注册,如果存在不满足规则的函数则会返回err
159 log.Println(err.Error())
160 } else {
161 log.Println("INFO : Kvserver has been successfully registered.")
162 }
163
164 // 把Raft挂到RPC上
165 err1 := rpc.Register(cfg.kvserver.GetRaft())
166 if err1 != nil {
167 log.Println(err1.Error())
168 } else {
169 log.Println("INFO : Raft has been successfully registered.")
170 }
171
172 // 通过函数把mathutil中提供的服务注册到http协议上,方便调用者可以利用http的方式进行数据传输
173 rpc.HandleHTTP()
174
175 // 在特定的端口进行监听
176 listen, err2 := net.Listen("tcp", cfg.MyPort)
177 if err2 != nil {
178 log.Println(err2.Error())
179 }
180 go func() {
181 // 调用方法去处理http请求
182 http.Serve(listen, nil)
183 }()
184}
185
186/*
187 * @brief: 检查从json中解析的字段是否符合规定

Callers 1

StartServerMethod · 0.95

Calls 2

GetRaftMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected