问题
自己在前几天,无意中发现用spring cloud架构,启动微服务时,不启动eureka,其他微服务也是可以为前端(Nginx反向代理,用restful的方式从后台获取数据)提供数据的。那么就想,要eureka到底是有什么用,目前看起来,貌似没有任何用处,但是想想,spring cloud这么出名的一个框架,怎么可能弄一个无用的东西。
解决过程
其实,这个问题的根源,是自己没有深入的学习spring cloud所致。如果将spring cloud完全学通,这样的问题自己肯定不可能问。
这里暴露了自己这方面的知识,还停留在一个比较肤浅的层面,上的一个问题。但是也是有原因的,作为半路出家,自学成才的一名开发,从业快两年时间的经验来看。能掌握现有的东西,也是很欣慰了。
废话不多说,打电话给朋友,了解到如下情况。
- eureka的作用:
如果所有的后端微服务之间,没有互相通信,那么eureka是可以不要的。
如果后端微服务之间,有互相通信,那么在负载均衡时,相同的服务肯定会启动多个,而且使用不同的端口,这个时候,服务之间就可以通过注册在eureka中的名称来找到对方,而不是根据IP+端口号去找对方。
如果后端微服务之间相互通信,都要知道具体的IP和端口,那开发要怎么干?
后续问题
了解了eureka的作用之后,新的问题又来了,如何启动相同的jar包,配置文件中定义的项目应该在eureka中注册的名称一样,应该是没有问题,但是配置文件中的端口号也是一样的啊。
后续问题解决方法
应该是可以在启动时,用启动命令来重新指定jar进程所占用的端口号。
一天后补充
昨天晚上看了《spring cloud》一书,结果发现其实关于eureka的部分是看过的,上边的问题,其实也不应该问。因为看了书之后,感觉自己问的这个问题很傻。但是没办法,看过了,还在书上做了笔记,但是后来一点印象都没有,为了避免前车之鉴,还是写博客吧。这样印象应该能深一些。
后边我会做几张图,把我的架构思维表达出来,这个到时候会专门写一篇博文。
网友评论