当然可以。
微服务只是 REST 服务。
您需要了解 REST 服务的工作原理。
之后,只需使用 Spring-boot 编写 2 个微服务(2 个 Rest-Services:生产者服务和消费者服务),让它们在不同的服务器端口下运行,从另一个服务器调用消费者服务,就是这样:你就有了微服务。
现在这就是编写微服务的原始方式。
为了让它们不断发展,您需要添加一些“魔法”(不是火箭科学),例如使用 Ribbon 在“生产者服务”的两个实例之间分配负载。
您可以使用发现服务,它只是一个带有注释 @EnableEurekaServer 的 spring-boot 应用程序(您需要在 pom 中添加适当的依赖项)
现在将注释 @EnableDiscoveryClient 添加到您的第一个(原始)微服务的主类中,并将 defaultZone 指向两者的 application.properties (或 application.yml)中的 eureka-service,启动您的 eureka-service (发现服务)并2 个微服务:它们将在发现服务上注册。当然,现在您不需要将生产者服务的http地址硬编码到消费者服务中。
看看这个教程 http://www.springboottutorial.com/creating-microservices-with-spring-boot-part-1-getting-started
编辑于 2018 年 11 月 21 日 12:41 GMT
假设您的第一个(简单的)微服务(纯休息服务)在您的 PC 上的端口 8091 下运行。
在第二个(简单)微服务的控制器中,您使用 RestTemplate.getForEntity(url,responseType,uriVariables) 调用第一个服务,就像链接教程中的示例一样:
ResponseEntity<CurrencyConversionBean> responseEntity =
new RestTemplate().getForEntity(
"http://localhost:8091/currency-exchange/from/{from}/to/{to}", CurrencyConversionBean.class, uriVariables);
在哪里
url:您的第一个(微)(其余)服务的 url。
responseType:等待响应的对象的类/类型。
uriVariables:是包含 URI 模板变量的映射。