NodeJS是否有服务发现(eureka),断路器模式(Hystrix),客户端负载平衡(ribbon)和api网关(Zuul)实现?我在Java的Spring框架中看到了这些组件的良好集成,但是在NodeJS中是否有可用的组件?
Netflix通过Prana(https://github.com/Netflix/Prana)为非JVM语言提供了另一种方法,但未得到积极支持。NodeJS是否有其他可供选择的生产就绪组件套件?理想情况下,微服务的好处之一是每种服务可以用不同的语言开发。有什么好的选择可用,还是我应该自己实现?
我有两个不同的微服务,使用 eureka 作为服务注册表,现在我试图从另一个调用微服务,使用功能区解析端点以进行客户端负载平衡。
服务一:
这个服务暴露了一个端点,http://localhost:15000/api/user/{userId},application.yml 如下,
# Spring properties
spring:
application:
name: user_microservice
cloud:
config:
discovery:
enabled: false
# HTTP Server
server:
port: 15000 # HTTP (Tomcat) port
# Discovery Server Access
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
instanceId: ${spring.application.name}:${random.int}
metadataMap:
instanceId: ${spring.application.name}:${random.int}
logging:
level:
com.netflix.discovery: 'OFF'
org.springframework.cloud: 'DEBUG'
Run Code Online (Sandbox Code Playgroud)
调用服务 A 的服务 B 具有以下应用程序类:
@EnableDiscoveryClient
@SpringBootApplication
public class UserSummaryApplication {
public static void main(String[] args) {
SpringApplication.run(UserSummaryApplication.class, args);
}
@Bean(name = "restTemplate")
RestTemplate restTemplate() {
return new RestTemplate(); …Run Code Online (Sandbox Code Playgroud)