【GO语言项目实战】分布式服务、服务注册和发现
【GO语言项目实战】分布式服务、服务注册和发现)
项目简介
- 本项目参考B站用于"软件工艺师"的教学项目,并加以简化,用于学习分布式、服务注册、发现、监控、服务间通信等基本概念,全部使用原生库编写,便于初学者掌握常见的后端开发概念和项目目录架构,熟悉网络编程和http请求。
- 引用项目链接: link.
- GitHub地址:link
完成此项目的收获
协程、http通信、context通信、GO语言编码规范、互斥锁的用法、定时任务和基本的数据结构
项目架构和功能介绍
- 项目由以下4个模块组成:客户端、注册服务、成绩服务、日志服务; 其中涉及到的业务逻辑进行了简化处理,业务本身不是此项目的重点,理解服务注册的相关概念是项目初衷。
- 客户端:用于启动并且调用其它三个服务,可以调用日志服务向指定路径写入文本。
- 注册服务:存储其它服务的注册信息(服务名、URL、所依赖的服务);当其它服务启动时先到注册服务进行注册,也就是让注册服务指定某个服务已经起来了;当其它服务停止时,从注册服务中删除注册信息;被成绩服务所依赖的服务(日志服务)启动/停止都会通知到成绩服务,以达成服务发现的目的。并且注册服务定时向其它服务发送心跳请求,用于检查其它服务是否还活着。
- 日志服务:从客户端向日志服务发送的文本会被写入指定文件。
- 成绩服务:用于存储学生的成绩信息,计算平均分,对日志服务有依赖。