4 个版本
使用旧 Rust 2015
0.0.4 | 2018年9月21日 |
---|---|
0.0.3 | 2018年3月25日 |
0.0.2 | 2018年3月24日 |
0.0.1 | 2018年3月21日 |
#1 in #registering
34KB
864 行
Rust 的 Eureka 客户端
该项目目前处于 alpha 版本,如版本号所示。
功能
- 在 Eureka 中注册服务
- 向 Eureka 发送心跳保持连接
已实现但未测试的功能
- 通过 Eureka 连接的服务请求
未实现的功能
- DNS 和 AWS 解析器
安装
将 eureka-client
添加到您的 Cargo.toml
,并在项目的根目录中添加 extern crate eureka_client
。
用法
要初始化 eureka 客户端并与 eureka 注册,您将执行类似以下操作
use eureka::{BaseConfig, EurekaClient, PortData};
pub fn init_eureka(
server_host: String,
server_port: u16,
instance_ip_addr: String,
instance_port: u16,
) -> EurekaClient {
let mut config = BaseConfig::default();
config.eureka.host = server_host;
config.eureka.port = server_port;
config.instance.ip_addr = instance_ip_addr;
config.instance.port = Some(PortData::new(instance_port, true));
let eureka = EurekaClient::new(config);
eureka.start();
eureka
}
您需要保持此客户端活跃,直到您打算连接到 Eureka。例如,在 Rocket 中,您可以将其作为状态管理,并通过路由访问它,就像访问其他状态一样,例如调用我们上面的函数
rocket::ignite()
.mount("/api/", routes![])
.manage(init_eureka(
dotenv!("EUREKA_HOST").into(),
dotenv!("EUREKA_PORT")
.parse()
.expect("Eureka port not valid"),
env::var("EUREKA_INSTANCE_IP").unwrap_or_else(|_| "127.0.0.1".to_string()),
env::var("ROCKET_PORT")
.map_err(|_| ())
.and_then(|port| port.parse().map_err(|_| ()))
.unwrap_or(8080),
))
此客户端默认会注册到 eureka。如果您只想使用此客户端进行请求,则可以通过设置 config.eureka.register_with_eureka = false
来禁用注册。
依赖关系
~20MB
~433K SLoC