当然可以。
微服务只是 REST 服务。
您需要了解 REST-Services 是如何工作的。
之后只需用 Spring-boot 编写 2 个微服务(2 个 Rest-Services:生产者服务和消费者服务),让它们在不同的服务器端口下运行,从另一个调用消费者服务,就是这样:你有你的微服务。
现在这是编写微服务的原始方式。
要让它们进化,您需要添加一些“魔法”(不是火箭科学),例如使用 Ribbon 在“生产者服务”的两个实例之间分配负载。
你可以使用一个发现服务,它只是一个带有注解 @EnableEurekaServer 的 spring-boot 应用程序(你需要在你的 pom 中添加适当的依赖项)
现在将注释@EnableDiscoveryClient 添加到您的第一个(原始)微服务到主类中,并在两者的application.properties(或application.yml)中指向您的eureka-service的defaultZone,启动您的eureka-service(发现服务)和2 个微服务:将在发现服务上注册。当然现在你不需要在消费者服务中硬编码生产者服务的http地址了。
看看这个tutorial
于 2018 年 11 月 21 日格林威治标准时间 12:41 编辑
假设您的第一个(微不足道的)微服务(纯粹的休息服务)在您的 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 模板变量的映射。