轻量级微服务注册和发现工具,与任何基于http的微服务兼容

sharkradar的Python项目详细描述


沙克拉达尔

Travis (.org)Coveralls githubGitHub licensePyPILibraries.io dependency status for GitHub repo

^ {STR 1 } $ Skar Read 是一个轻量级但灵活的^ {STR 1 } $ Service注册表和Debug < /St>>工具,与任何微服务^ {EM1}$(独立于技术堆栈)兼容,只要您的微服务支持^ {STR 1 } http>/Stult>进行通信(一般来说,它肯定会)除非你有一些自定义的通讯协议。在这种情况下,恭喜:d!)

安装

pipinstallsharkradar

用法

sharkradar --help

技术文档

Complete Technical Documentation available here, on project's wiki

概述

sharkradar

  • 服务(RD)注册和发现
  • 基于http的服务
  • 与任何微服务兼容
  • 加权优先级发现
  • 告诉您best服务器实例地址的服务,它可以处理您的请求
  • 可以注册/发现(微服务的)异构实例和异构实例

sharkradar是而不是

  • API网关
  • 不是用于重定向请求的路由器
  • 不是代理/反向代理
  • 将检查服务是否正常的轮询器。只有当服务告诉自己时,它才知道服务是否启动

技术要求

  1. os-任何支持python:d的os
  2. 依赖项-python(>;=首选3)
  3. 网络-类似于任何其他微服务/服务器(如公开端口、IP地址绑定等)。所有使用sharkradar的服务都必须能够访问
  4. 任何使用sharkradar-no的客户机/微服务的特定模块/库/代理(只有http通信库/进行http get、put调用的能力:d)
  5. 可访问性-sharkradar必须可由使用sharkradar的所有客户端/微服务/服务访问(网络管理员,请注意:d)
  6. 可用性-sharkradar是一个独立的应用程序,现在!。因此sharkradar可以是微服务间通信的单点,也可以是(微服务间通信的)单点故障

架构

Sharkradar的架构非常直截了当,请记住:

  • 可用性
  • 兼容性
  • 重量轻
  • 低存储空间
  • 计算量小

Architecture

架构背后的基本原则是“发布/询问”机制

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 addressport
  • 给定的地址是最好的(由基于权重的优先级算法选择的)客户机,具有所要求的service name

贡献问题或错误建议

  • 对于contribution,派生存储库,使用master分支开发并创建pull请求
  • 对于issue和bug reporting,在存储库中创建一个issue,we或o我们的开发者社区一定会调查的。如果你赢得了比赛并解决了错误,不要犹豫,提出一个拉请求来获得荣誉。
  • 对于建议和功能,请向维护人员发送邮件。已经开发了这个功能,甚至更好。为其创建一个拉取请求。我们的维护人员将对其进行检查并合并:)

维护人员

Monik Raj Behera-bmonikraj@gmail.com
Preetam Nahak-preetamnahak@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java编辑并重新运行spring引导单元测试,无需重新加载上下文即可加快测试速度   为什么我不能做演员?   java为什么是线程。join通常用于停止安卓中的线程   java从weblogic服务器调用JSON POST REST服务时收到400:错误请求   java在DeviceAdmin模式禁用时设置身份验证?   java SortedMap的keySet()能否始终安全地强制转换到SortedSet?   安卓 java。lang.NoSuchMethodException可包裹类   java JOGL库安装   javatomcat内存管理   java使用getString()中的变量   java将最小星号设置为评级栏   Java中字符串相等的println()方法。。。它到底是如何工作的?   java如何从文本中输出的数组中放入随机图像