这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## Unreleased
- Resolve hostname #111 @mosuka

## 0.8.3 (2020-11-07)
- Bump up version to 0.8.3 #110 @mosuka
- Update dependencies #109 @mosuka
Expand Down
29 changes: 22 additions & 7 deletions bayard-rest/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#[macro_use]
extern crate clap;

use std::net::ToSocketAddrs;

use clap::{App, AppSettings, Arg};
use crossbeam_channel::select;
use log::*;
Expand Down Expand Up @@ -143,34 +145,47 @@ async fn main() -> std::io::Result<()> {
key_file = _key_file;
}

let rest_address = format!("{}:{}", host, port);
let rest_address = format!("{}:{}", host, port)
.to_socket_addrs()
.unwrap()
.next()
.unwrap()
.to_string();
let index_address = index_address
.to_socket_addrs()
.unwrap()
.next()
.unwrap()
.to_string();

let enable_cors =
!cors_origin.is_empty() && !cors_methods.is_empty() && !cors_headers.is_empty();
let enable_tls = !cert_file.is_empty() && !key_file.is_empty();

let mut rest_server = match (enable_tls, enable_cors) {
(false, false) => {
RestServer::new(rest_address.as_str(), index_address, http_worker_threads)
}
(false, false) => RestServer::new(
rest_address.as_str(),
index_address.as_str(),
http_worker_threads,
),
(false, true) => RestServer::new_cors(
rest_address.as_str(),
index_address,
index_address.as_str(),
http_worker_threads,
cors_origin,
cors_methods,
cors_headers,
),
(true, false) => RestServer::new_tls(
rest_address.as_str(),
index_address,
index_address.as_str(),
http_worker_threads,
cert_file,
key_file,
),
(true, true) => RestServer::new_cors_tls(
rest_address.as_str(),
index_address,
index_address.as_str(),
http_worker_threads,
cors_origin,
cors_methods,
Expand Down
36 changes: 28 additions & 8 deletions bayard/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ extern crate clap;
use std::collections::HashMap;
use std::convert::TryFrom;
use std::io;
use std::net::SocketAddr;
use std::net::ToSocketAddrs;
use std::path::Path;
use std::sync::Arc;

Expand Down Expand Up @@ -138,6 +138,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {

let id = matches.value_of("ID").unwrap().parse::<u64>().unwrap();
let host = matches.value_of("HOST").unwrap();

let raft_port = matches
.value_of("RAFT_PORT")
.unwrap()
Expand All @@ -153,9 +154,14 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
.unwrap()
.parse::<u16>()
.unwrap();
let mut peer_address = "";
let mut peer_address = "".to_string();
if let Some(_peer_address) = matches.value_of("PEER_RAFT_ADDRESS") {
peer_address = _peer_address;
peer_address = _peer_address
.to_socket_addrs()
.unwrap()
.next()
.unwrap()
.to_string();
}
let data_directory = matches.value_of("DATA_DIRECTORY").unwrap();
let schema_file = matches.value_of("SCHEMA_FILE").unwrap();
Expand All @@ -171,8 +177,18 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
.parse::<usize>()
.unwrap();

let raft_address = format!("{}:{}", host, raft_port);
let index_address = format!("{}:{}", host, index_port);
let raft_address = format!("{}:{}", host, raft_port)
.to_socket_addrs()
.unwrap()
.next()
.unwrap()
.to_string();
let index_address = format!("{}:{}", host, index_port)
.to_socket_addrs()
.unwrap()
.next()
.unwrap()
.to_string();

let node_address = NodeAddress {
index_address,
Expand All @@ -182,8 +198,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut addresses = HashMap::new();

// change config
if peer_address != "" {
let mut client = RaftClient::new(peer_address);
if !peer_address.is_empty() {
let mut client = RaftClient::new(&peer_address);
match client.join(id, node_address.clone()) {
Ok(_addresses) => addresses = _addresses,
Err(e) => return Err(Box::try_from(e).unwrap()),
Expand Down Expand Up @@ -238,7 +254,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
}

// metrics service
let metrics_address: SocketAddr = format!("{}:{}", host, metrics_port).parse().unwrap();
let metrics_address = format!("{}:{}", host, metrics_port)
.to_socket_addrs()
.unwrap()
.next()
.unwrap();
let metrics_service = make_service_fn(|_| async { Ok::<_, io::Error>(service_fn(handle)) });
let metrics_server = Server::bind(&metrics_address).serve(metrics_service);
let metrics_server_graceful = metrics_server.with_graceful_shutdown(shutdown_signal());
Expand Down
31 changes: 31 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: '3'

services:
bayard:
container_name: bayard
image: bayardsearch/bayard:latest
entrypoint: bayard
command:
- '--host=bayard'
- '--raft-port=7000'
- '--index-port=5000'
- '--metrics-port=9000'
- '--data-directory=/tmp/bayard'
- '--schema-file=/etc/bayard/schema.json'
- '--tokenizer-file=/etc/bayard/tokenizer.json'
- '1'
ports:
- "5000:5000"
- "7000:7000"
- "9000:9000"

bayard-rest:
container_name: bayard-rest
image: bayardsearch/bayard-rest:latest
entrypoint: bayard-rest
ports:
- "8000:8000"
command:
- '--index-address=bayard:5000'
depends_on:
- bayard