轻量级微服务注册和发现工具,与任何基于http的微服务兼容
sharkradar的Python项目详细描述
沙克拉达尔
^ {STR 1 } $ Skar Read 是一个轻量级但灵活的^ {STR 1 } $ Service注册表和Debug < /St>>工具,与任何微服务^ {EM1}$(独立于技术堆栈)
安装
pipinstallsharkradar
用法
sharkradar --help
技术文档
Complete Technical Documentation available here, on project's wiki
概述
sharkradar是
- 服务(RD)注册和发现
- 基于http的服务
- 与任何微服务兼容
- 加权优先级发现
- 告诉您best服务器实例地址的服务,它可以处理您的请求
- 可以注册/发现(微服务的)异构实例和异构实例
sharkradar是而不是
- API网关
- 不是用于重定向请求的路由器
- 不是代理/反向代理
- 将检查服务是否正常的轮询器。只有当服务告诉自己时,它才知道服务是否启动
技术要求
- os-任何支持python:d的os
- 依赖项-python(>;=首选3)
- 网络-类似于任何其他微服务/服务器(如公开端口、IP地址绑定等)。所有使用sharkradar的服务都必须能够访问
- 任何使用sharkradar-no的客户机/微服务的特定模块/库/代理(只有http通信库/进行http get、put调用的能力:d)
- 可访问性-sharkradar必须可由使用sharkradar的所有客户端/微服务/服务访问(网络管理员,请注意:d)
- 可用性-sharkradar是一个独立的应用程序,现在!。因此sharkradar可以是微服务间通信的单点,也可以是(微服务间通信的)单点故障
架构
Sharkradar的架构非常直截了当,请记住:
- 可用性
- 兼容性
- 重量轻
- 低存储空间
- 计算量小
架构背后的基本原则是“发布/询问”机制
Service R(registry) => "You (microservices/applications/consumers) give me your fitness report. If I receive, I will give you work to do based on your ability, I am not gonna ask you for it :(. And if I don't receive it within time, you will not be considered for work until next report"
Service D(discovery) => "You want to know which of person can do the job in best way and how to reach him, ask me! I will tell you best person's address, ONLY -_-. I am not gonna take you there"
服务注册
- 客户(微服务-希望通过Shark雷达发现的客户)
- 客户机在每次发送的最后一个报告中,都会向shark雷达发送带有
params
的健康报告。 - 如果sharkradar没有收到运行状况报告,则在上一个报告中客户机提供的阈值时间之后,客户机将从注册服务列表中删除(因此不考虑发现)
- 如果未发送运行状况报告,则会自动取消注册。
- 没有单独的api/端点可供注册。第一次健康报告将被视为注册。
服务发现
- 任何理解并能够与http通信的客户机(具有任何技术堆栈)都可以请求服务位置(ip address和port)
- 给定的地址是最好的(由基于权重的优先级算法选择的)客户机,具有所要求的
service name
贡献问题或错误建议
- 对于contribution,派生存储库,使用
master
分支开发并创建pull请求 - 对于issue和bug reporting,在存储库中创建一个issue,we或o我们的开发者社区一定会调查的。如果你赢得了比赛并解决了错误,不要犹豫,提出一个拉请求来获得荣誉。
- 对于建议和功能,请向维护人员发送邮件。已经开发了这个功能,甚至更好。为其创建一个拉取请求。我们的维护人员将对其进行检查并合并:)
维护人员
Monik Raj Behera-bmonikraj@gmail.com
Preetam Nahak-preetamnahak@gmail.com