docker-service 0.0.1

Docker service management module for Rusty Docker
# Docker Service

服务发现和负载均衡功能

本模块提供了服务发现、负载均衡和服务间通信功能,支持多种负载均衡策略,
包括轮询、随机、最少连接和 IP 哈希策略。同时提供了健康检查机制和服务缓存,
提高了服务发现的可靠性和性能。

## 主要功能
- 服务注册和注销
- 服务实例注册和注销
- 服务发现
- 负载均衡
- 健康检查
- 服务间通信
- 服务缓存

## 使用示例
```rust
use docker_network::new_network_manager;
use docker_service::{LoadBalancingStrategy, ServiceConfig, new_service_manager};
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

#[tokio::main]
async fn main() {
    // 创建网络管理器
    let network_manager = new_network_manager();

    // 创建服务管理器
    let service_manager = new_service_manager(network_manager);

    // 创建服务配置
    let config = ServiceConfig {
        name: "my-service".to_string(),
        port: 8080,
        network_id: "default".to_string(),
        load_balancing_strategy: LoadBalancingStrategy::RoundRobin,
        health_check_path: Some("/health".to_string()),
        health_check_interval: Some(30),
        labels: Default::default(),
    };

    // 创建服务
    let service = service_manager.create_service(&config).await.unwrap();

    // 添加服务实例
    let address = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
    let instance = service_manager
        .add_service_instance(&service.id, "container-1", "my-container", address)
        .await
        .unwrap();

    // 发现服务
    let discovered_service =
        service_manager.service_discovery.discover_service("my-service").await.unwrap();

    // 负载均衡
    let selected_instance = service_manager.load_balance(&service.id, None).await.unwrap();

    // 服务间通信
    let request = b"Hello from service".to_vec();
    let response = service_manager
        .service_to_service_call(&service.id, "my-service", request)
        .await
        .unwrap();

    println!("Service call response: {:?}", response);
}
```