Go最全Go分布式爬虫笔记_golang分布式爬虫架构,2024年最新2024最值得加入的互联网公司有哪些
package main
import (
"fmt"
"github.com/go-redis/redis/v8"
"github.com/olivere/elastic/v7"
"golang.org/x/net/context"
)
// 初始化Elasticsearch客户端
func initElasticsearch() (*elastic.Client, error) {
client, err := elastic.NewClient(
elastic.SetURL("http://localhost:9200"),
elastic.SetSniff(false),
)
if err != nil {
return nil, err
}
info, code, err := client.Ping("localhost:9200").Do(context.Background())
if err != nil {
return nil, err
}
fmt.Printf("Elasticsearch returned with code %d and version %s\n", code, info.Version.Number)
return client, nil
}
// 初始化Redis客户端
func initRedis() (*redis.Client, error) {
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
_, err := rdb.Ping(context.Background()).Result()
if err != nil {
return nil, err
}
fmt.Println("Connected to Redis")
return rdb, nil
}
func main() {
// 初始化Elasticsearch客户端
esClient, err := initElasticsearch()
if err != nil {
fmt.Printf("Failed to init Elasticsearch: %v", err)
return
}
// 初始化Redis客户端
rdbClient, err := initRedis()
if err != nil {
fmt.Printf("Failed to init Redis: %v", err)
return
}
// 这里可以继续添加其他的初始化代码,例如初始化Kafka客户端,或者数据库客户端等
// ...
}
这个示例代码展示了如何初始化Elasticsearch和Redis客户端,并进行连接测试。在实际的爬虫项目中,这是一个很常见的步骤,用于与后端存储和搜索服务建立连接。
评论已关闭