这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
主要分析上课时给出的笔记服务的代码组织结构,来学习并给予最后的抖音项目做参考。
工程实践
图片来自青训营ppt
kitex demo
解析笔记项目中kitex生成代码的组织结构
user
user服务部分
graph TB
subgraph Enity
BaseResp
User
MGetUserRequest
MGetUserResponse
MGetUserResponse -.- User
MGetUserResponse -.- BaseResp
end
Request --1.MGetUserRequest--> handler
subgraph service
MGetUserService
end
handler --2.MGetUserRequest--> MGetUserService
MGetUserService --7.Entity.User-->handler
subgraph db
DB
db.User[User]
DB -.- db.User
end
MGetUserService --3.Ids--> DB
DB --4.db.Users-->MGetUserService
subgraph pack
PackUser
end
MGetUserService --5.db.User--> PackUser
PackUser --6.Entity.User--> MGetUserService
handler --8.MGetUserResponse--> Response
note
note服务部分
graph
subgraph Entity
subgraph RPC
User
end
BaseResp
Note
MGetNoteRequest
BaseResp-.-MGetNoteResponse
MGetNoteResponse -.- Note
end
Request --1.MGetNoteRequest-->handler
subgraph service
MGetNoteService
end
handler--2.MGetNoteRequest--> MGetNoteService
subgraph db
DB
db.Note[Note]
DB -.- db.Note
end
MGetNoteService --3.Ids--> DB
DB --4.db.Note-->MGetNoteService
subgraph pack
UserIds
Notes
end
MGetNoteService --5.db.Note--> UserIds
UserIds --6.uids--> MGetNoteService
subgraph rpc
MGetUser
end
MGetNoteService --7.uids--> MGetUser
MGetUser --8.User-->MGetNoteService
MGetNoteService --9.db.Note-->Notes
Notes --10.Entity.Note-->MGetNoteService
MGetNoteService --11.set User for Note--> MGetNoteService
MGetNoteService--12.Entity.Note-->handler
handler --13.MGetNoteResponse--> Response
- handler接受请求,并组建基本响应
- handler讲请求传交给service层
- service层将获取查询中的id,并查询数据库
- 数据库返回查询结果,此时结果为数据库中定义的
model类型 - 将查询结果交给pack获取用户的id
uids - pack将用户id返沪
- 调用用户rpc,查询id对应的用户
- rpc返回结果,其类型为rpc的
Entity中定义的数据类型 - service将
model类型的数据交给pack进行打包 - pack将
model类型的数据打包为entity中定义的数据类型 - 将rpc的结果整合进最终结果
- service将结果返回给handler,其类型为定义的
entity中的类型 - handler将查询结果和基本响应组装在一起并返回