作者回复: Erureka上是实例的信息,并不是具体的接口。通过HTTP调用Eureka的接口,注册自己或者取得某个服务的实例列表。随后是客户端直接去调用服务提供方的,调用并不会再到Eureka上去绕一圈。
作者回复: 1. 这个是Spring Cloud Starter的依赖带进来的,不用自己加。 2. Spring Cloud做了自动配置,如果没有什么特殊需求,用自动配置的就好了。
作者回复: Spring Cloud会通过自动配置寻找本地地址上的Eureka去进行服务的注册和发现
作者回复: Feign客户端实现是运行时动态生成的,不需要我们来实现。 @LoadBalanced是为RestTemplate做了增强,URL中给了服务名,根据服务名到注册中心获取具体服务实例的列表,调用时选择其中一个示例替换进URL里,获得最终要调用的URL去执行调用。注意这里要找的是服务实例。
作者回复: 这个跟微服务没啥关系,如果工程小,单模块就可以了,工程比较复杂的用多模块。微服务本身和工程大小没有必然的关系,一个系统可以对外提供很多相关服务,但一般也不会把工程做的特别大特别复杂,不好维护。在一些公司都有统一的项目骨架,不管大小,都是用同一套,这种一般都是分层分模块的。
作者回复: Resttemplate里URL不要写服务名,直接写死你要调用的下游就可以了,这个地方一定要做成是个配置项,方便你修改。
作者回复: waiter-service会在实际调用时被替换为具体的目标服务器和端口的,并不是真的去调用waiter-service这个地址,会做个转换
作者回复: 如果你在其他地方已经启动了所依赖的工程,并且注册到了同一个注册中心上,那你在当前环境中直接运行消费者的程序应该就可以了,并不需要在IDE当中引入其他的工程的。
作者回复: 不需要,eureka的注册不需要暴露这些Endpoints
作者回复: 可以检查下服务端检查下是否收到请求报错了。