Spring Cloud Eureka REST 接口

Eureka 作为注册中心,其本质是存储了每个客户端的注册信息,Ribbon在转发的时候会获取注册中心的服务列表,然后根据对应的路由规则来选择一个服务给Feign来进行调用。

如果我们不是Spring Cloud技术选型,也想用Eureka可以吗?完全可以

如果不是Spring Cloud技术栈个人推荐用zk之类的会方便些,当然用Eureka也是可以的

这样的话就涉及到如何注册信息,获取注册的信息等等操作了

其实Eureka也考虑到了这点,提供了很多REST接口来给我们调用

文档地址:https://github.com/Netflix/eureka/wiki/Eureka-REST-operations

我们举一个比较有用的案列来说明下

##Nginx动态进行upstream的配置

在架构变成微服务之后,具体的微服务是没有依赖的,可以独立部署,端口也可以随机分配,反正会注册到注册中心里面,调用方也无需关心提供方的ip和port, 这些都可以从注册中心拿到

但是有一个问题是API网关的部署能这样吗,API网关大部分会用Nginx做负载,那么Nginx就必须知道API网关有哪几个节点,这样网关服务就不能随便启动了,需要固定好

当然网关是不会经常变动,也不会经常发布的,这样其实也没什么大问题,唯一不好的就是不能自动扩容了

其实利用Eureka提供的API我们可以获取到某个服务的实例信息,也就是说我们可以根据Eureka中的数据来动态配置Nginx的upstream

这样就可以做到网关的自动部署和扩容了,网上也有很多的方案,结合Lua脚本来做,或者自己写Sheel脚本也都可以

下面我们说明下怎么获取Eureka中注册的信息

具体的接口信息请查看我上面贴的官方文档

##获取某个服务的注册信息
可以直接GET请求:http://localhost:8761/eureka/apps/fsh-house

fsh-house是你的应用名称也就是spring.application.name

默认是返回xml格式的数据,如果你想返回json数据的格式,在请求头中添加下面2个即可:

Content-Type:application/json
Accept:application/json

如果Eureka开启了认证,记得添加认证信息,用户名和密码必须是Base64编码过的

Authorization:Basic 用户名:密码

其余的接口就不做过多讲解了,大家自己去试试

欢迎加入我的知识星球,一起交流技术,免费学习猿天地的课程(http://cxytiandi.com/course)

PS:目前星球中正在星主的带领下组队学习Sentinel,等你哦!

微信扫码加入猿天地知识星球

猿天地

发布了250 篇原创文章 · 获赞 91 · 访问量 44万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览