当前位置:   article > 正文

最新ElasticSearch第四章(数据同步和集群),美团大数据开发开发工程师岗位职能要求_美团技术团队-数据同步到es

美团技术团队-数据同步到es

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

}
  • 1

}


**4:配置springboot的yml**



  • 1
  • 2
  • 3
  • 4
  • 5

#rocketmq的配置
rocketmq:
name-server: localhost:9876
producer:
group: producer_group1
consumer:
topic: topic26


**5:消息生产者发送消息**



  • 1
  • 2
  • 3
  • 4
  • 5

@Autowired
RocketMQTemplate rocketMQTemplate;

@Value("${rocketmq.consumer.topic}")
private String topic;

@Value(value = "${rocketmq.consumer.topic1}:${rocketmq.consumer.topic2}")
private String syncTag;
//发现消息到RocketMQ
@Override
public void sendMQ(TbHotel tbHotel) throws JsonProcessingException {

    //发送json
    ObjectMapper objectMapper=new JsonMapper();
    String json = objectMapper.writeValueAsString(tbHotel);
    System.out.println("发送数据:"+json);

    rocketMQTemplate.convertAndSend(topic,json);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

**6:消息接受者接收消息**



  • 1
  • 2
  • 3
  • 4
  • 5

@Service
@RocketMQMessageListener(
topic = “topic26”,
consumerGroup = “consumerGroup26”
)
public class RocketMQConsumer1 implements RocketMQListener {

@Autowired
ElasticsearchClient elasticsearchClient;

@Override
public void onMessage(String message) {
    System.out.println("9002接受的消息是:"+message);
    //将json转换为对象
    ObjectMapper objectMapper=new ObjectMapper();
    try {
        TbHotel hotel = objectMapper.readValue(message, TbHotel.class);
        System.out.println("实体转换:"+hotel);

        //数据库查询到一条数据
        TbHotelDoc hotelDoc=new TbHotelDoc(hotel);
        System.out.println(hotelDoc);

        //数据插入ES 无论修改数据还是增加数据都是 插入
        IndexRequest indexRequest=new IndexRequest.Builder<TbHotelDoc>()
                .id(hotel.getId().toString())
                .index("hotel")
                .document(hotelDoc).build();
        elasticsearchClient.index(indexRequest);
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

}



## 2:ES集群


### 2.1:三台服务器搭建集群


在ES中存在单机处理上限,以及单机的稳定性,所以集群的搭建是必不可少的


假如我们搭建三台服务器作为集群9200,9201,9202


![](https://img-blog.csdnimg.cn/direct/731ae1ebdc704f0e892d31d1fae107b6.png)



### 2.2:ES的集群节点角色


![](https://img-blog.csdnimg.cn/direct/f6f0e3ef8693438cb8fb7bb7b10c0be9.png)


**在我们搭建的三个节点构成的集群中,每个节点都是相同的类型,都具有如图的特点**


1:都是候选主节点


2:都具有数据节点的功能:数据局存储、搜索、聚合、crud


3:都是ingest,具有数据存储预处理功能


这有什么缺点呢?


**假如新增id=1、2、3的数据 。数据都会连接到主节点,主节点根据hash取模,然后将数据插入节点1、2、3中(查询同理)。这里就可以看出来,主节点具备记录集群状态,决定分片在那个节点的主节点功能,还得具有数据的存储、搜索功能,也就是上边的三种类型,都具备。当数据量很大的时候,crud的时候,主节点压力很大哦。这就是不划分职责的情况。**


**在大公司中,集群可能有几百个节点,那么所有的crud都要经过主节点hsah,主节点太累,所以需要把节点按照权限划分,架构出来新的架构**


**大型ES集群的架构如下**


![](https://img-blog.csdnimg.cn/direct/38bff3cab193450bb3bfba0aab4a0967.png)



**ES集群新增数据如下图:**


![](https://img-blog.csdnimg.cn/direct/20883f75172f4b4d8fea35d3dcac384a.png)



**ES集群查询数据如下图:**


![](https://img-blog.csdnimg.cn/direct/18deedb548444b7e8b057438ab6cc9b2.png)



### 2.2:ES集群服务的搭建


**1:这里没有自己搭建,参考网上搭建案例**


![](https://img-blog.csdnimg.cn/direct/dfadb6cf43af4a27bc36897466cda1cf.png)



**2:不使用kinaba来连接集群,而是cerebo软件来连接集群**


![](https://img-blog.csdnimg.cn/direct/f6f1fa87236848db84f25ce9cfad5877.png)



**3: cerebo控制台查看集群**


![](https://img-blog.csdnimg.cn/direct/373b03544b784038b6cd9e28a694ffd5.png)



**4:创建索引的DSL**


![](https://img-blog.csdnimg.cn/direct/b888ad9bda0b4ab090af10b9fd11f3ef.png)




![img](https://img-blog.csdnimg.cn/img_convert/07d0381f1036bef18ee3944828056ce4.png)
![img](https://img-blog.csdnimg.cn/img_convert/0716e3c440e110bee2ed88a5b5c73d04.png)
![img](https://img-blog.csdnimg.cn/img_convert/3da2a41e4e70ff0fa9dea2d959c9a6e7.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号