网关需要维护相关负载的服务器,手动添加相对来说是一件比较麻烦的工作;为了解决这一问题组件扩展了一个基于consul服务发现插件,通过配置这个插件和启用后网关会自动从consul服务中获取服务并添加到网关对应的路由负载规则中。

引用插件

Bumblebee使用服务发现需要引用两个插件,分别是BeetleX.Bumblebee.ConfigurationBeetleX.Bumblebee.BeetleX.Bumblebee.Consul。加载启动后就可以通过管理工具进行插件配置.

            g = new Gateway();g.HttpOptions(o =>                {o.Port = 80;o.LogToConsole = true;o.LogLevel = BeetleX.EventArgs.LogType.Error;                });g.Open();g.LoadPlugin(typeof(Bumblebee.Configuration.Management).Assembly,typeof(Bumblebee.Consul.ConsulPlugin).Assembly               );

如果不想自己编写代码可以下载编译的运行包 https://github.com/IKende/Bumblebee/blob/master/bin/ 下载1.1.9或更高版本;运行后 访问 http://host/__system/bumblebee/

插件管理

运行程序后进行配置管理工具的插件管理页面,可以看到Consul插件,组件默认是关闭需要进行一些配置。

插件配置

{"ConsulAddress": "http://192.168.2.19:8500","Services": ["bumblebee_services"    ],"Token": null,"DataCenter": "dc1"}
  • ConsulAddress 对应Consul的服务地址

  • Services 检索相应名称的服务列表一个或多个

  • Token 访问Consul相应的Token信息

  • DataCenter 检索相应的数据中心名称

配置完成后只需要启用插件即可

注册要求

Dictionary<string, string> meta = new Dictionary<string, string>();meta.Add("path", "^/home.*");client.Agent.ServiceDeregister("api_test1").Wait();client.Agent.ServiceDeregister("api_test2").Wait();client.Agent.ServiceRegister(new AgentServiceRegistration{Tags = new string[] { "Bumblebee" },Address = "192.168.2.18",Port = 8080,Name = "bumblebee_services",Meta = meta,ID = "api_test1"}).Wait();

以上是一个简单的注册代码,如果想服务需要注册到相应路由规则下的负载需要指定path,在不指写的情况bumblebee获取后会注册到默认路由规则上。

状态跟踪和故障

bumblebee内部有一套服务监控和故障处理机制无须依据consul相关状态注册信息;bumblebee会根据自身的检测机制对应用进行一个负载迁移和恢复处理。


关注公众号

https://github.com/IKende/

高性能的服务通讯框架 Beetlex(http,rpc,gateway的详细实现)

Bumblebee微服务网关之consul服务发现相关推荐

  1. 微服务网关Ocelot

    微服务网关是微服务架构中的核心组件,它是客户端请求的门户,它是调用具体服务端的桥梁.下面我们将使用开源项目Ocelot(https://github.com/geffzhang/Ocelot)搭建一款 ...

  2. 《深入理解 Spring Cloud 与微服务构建》第十一章 服务网关

    <深入理解 Spring Cloud 与微服务构建>第十一章 服务网关 文章目录 <深入理解 Spring Cloud 与微服务构建>第十一章 服务网关 一.服务网关简介 二. ...

  3. 微服务网关:SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  4. 什么是微服务网关?SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  5. consul服务注册与发现机制

    注册中心引入 最近,网关服务让下游服务接入consol,为了解决网关转发下游服务,下游服务刚好有节点不可用,转发到不可用的节点上报错.针对分布式多节点,上面的问题常会发生,就引入了注册中心. 那什么是 ...

  6. Consul服务注册与发现

    Consul服务注册与发现 1.Consul简介 1.1 什么是Consul? 1.2 Consul能干什么? 1.3 下载Consul 2.安装并运行Consul 2.1 官网安装说明 2.2 使用 ...

  7. [菜鸟SpringCloud实战入门]第九章:服务网关Zuul体验

    前言 欢迎来到菜鸟SpringCloud实战入门系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud. 本系列适合有一定Java以及Sp ...

  8. Api-gateway服务网关gravitee.io的探索之路(一)

    没有具体场景的技术都是耍流氓. 先说下公司场景,公司是一家金融公司,各种应用也有十几个,都是这些年积累下来的,团队也是五花八门,本土的,外包的,互相之间经常要对接,调用,每次大家都感觉特别麻烦.说实话 ...

  9. consul 日志配置_微服务:服务注册发现+ API 网关+配置中心+服务跟踪+服务熔断...

    服务注册发现 服务注册就是维护一个登记簿,它管理系统内所有的服务地址.当新的服务启动后,它会向登记 簿交待自己的地址信息.服务的依赖方直接向登记簿要 Service Provider 地址就行了.当下 ...

最新文章

  1. 深入浅出K-Means算法
  2. 47.内存连续分配管理方式有哪几种?
  3. Android动态加载技术
  4. Python爬虫利器四PhantomJS的用法
  5. 常见的几种内排序算法以及实现(C语言)(转)
  6. sql 日期加1天_SQL基础知识——BETWEEN
  7. kubernetes视频教程笔记 (39)-高可用的K8S构建-kubeadm部署安装
  8. Java并发编程:Lock(下)
  9. 火力全开,同时分解(切脸)多个视频
  10. 固高运动控制卡学习6 --编码器
  11. 主成分分析之数学推导
  12. 虚拟软驱subst.exe
  13. 从零开始做运营第一课:运营是做什么的?一篇文章解释清楚!
  14. 模仿百思不得姐项目开发总结
  15. css 文字颜色渐变 animation,css3文字渐变动画
  16. vue-cli脚手架是什么及其脚手架搭建
  17. 【蓝桥杯】历届试题 对局匹配(贪心)
  18. VHDL实现数字频率计的设计
  19. rk3128-android5.1-ota升级清除data分区
  20. 可爱插画风格小学生暑期安全教育PPT模板

热门文章

  1. IIS相关问题及解决方案
  2. 轻松查看Internet Explorer缓存文件
  3. 如何在Outlook中的电子邮件上显示快速操作按钮
  4. mac 不能连接wi-fi_如何在Mac OS X中查看当前的Wi-Fi连接速度
  5. 使用Ubuntu的公用文件夹轻松地在计算机之间共享文件
  6. leetcode 66 Plus One
  7. HTTP协议快速入门
  8. gridview实现分页
  9. Squid反向代理加速缓存+负载均衡实验架构
  10. Funambol DM 安装过程