func main() { flag.Parse() // 创建新 ZergClient zc, err := zerg_client.NewZergClient(*endPoints, *serviceName) if err != nil { log.Fatal(err) } defer zc.Close() // 调用 zerg 服务 request := pb.CrawlRequest{ Url: *url, Timeout: 10000, // 超时 10 秒 RecrawlTtl: *ttl, Method: pb.Method(pb.Method_value[*method]), } response, err := zc.Crawl(&request) if err != nil { // 处理异常 log.Fatal(err) } // 处理返回结果 log.Printf("metadata = %+v", response.Metadata) log.Printf("page content length = %d", len(response.Content)) }
func main() { flag.Parse() // 得到 CrawlClient conn, err := grpc.Dial(*address, grpc.WithInsecure()) if err != nil { log.Fatal(err) } client := pb.NewCrawlClient(conn) log.Printf("开始抓取") request := pb.CrawlRequest{ Url: *url, Timeout: 10000, RecrawlTtl: *ttl, Method: pb.Method(pb.Method_value[*method]), } response, err := client.Crawl(context.Background(), &request) if err != nil { log.Fatal(err) } log.Printf("抓取完毕") log.Printf("%+v", response.Metadata) log.Printf("%d", len(response.Content)) }
func main() { flag.Parse() // 创建新 ZergClient zc, err := zerg_client.NewZergClient(*endPoints, *serviceName) if err != nil { log.Fatal(err) } defer zc.Close() // 调用 client.Crawl 前必须先调用 Get 命令获取 CrawlClient,通过 url 的一致性哈希进行分配 // 不同的 url 要分别调用 Get 得到不同的 CrawlClient if crawlClient, err := zc.Get(*url); err == nil { // RPC 调用 request := pb.CrawlRequest{ Url: *url, Timeout: 10000, // 超时 10 秒 CrawlFrequency: *freq, Method: pb.Method(pb.Method_value[*method]), } response, err := crawlClient.Crawl(context.Background(), &request) if err != nil { // 处理异常 log.Fatal(err) } // 处理返回结果 log.Printf("metadata = %+v", response.Metadata) log.Printf("page content length = %d", len(response.Content)) } }