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
这样就可以做到网关的自动部署和扩容了,网上也有