- 博客(4)
- 收藏
- 关注
原创 MYSQL和ES数据同步
针对要多写入的场景,可以使用Mq来实现异步解耦,这样各个源的写入互补影响;同时使用了Mq,整体的吞吐量提高,但是由于异步消费,系统的一致性较低。性能较差,既要写入Mysql又要写入ES,尤其高并发下,本来Mysql性能就不是很高,还要写ES,性能更低。有时候不仅需要将数据插入到ES还同时更新Redis,可以使用mq监听解析binlog,也会存在延迟风险。可能出现延迟问题,MQ是异步消费模型,用户写入的数据不一定立即看到,会造成延迟。不易出现数据丢失问题。硬编码问题,接入新的数据源就需要编写新的消费者代码。
2023-12-11 11:41:11
131
1
原创 重复消息的解决方案
重复消息又分为重复发送和重复消费重复发送指的是从生产端发送消息保证消息不丢失,但不保证消息不会重发重复消费指的是消费端重复消费。如消费消息时,一般建议处理业务后,手动提交offset,但是在提交时,程序崩了;再次重启消费应用时,会继续消费上次未提交代码。//拉取消息xxx//业务处理//提交消息位移第三步,提交位移时,程序崩溃再次恢复重复执行第二步的业务生产端的重复发送和消费端的重复消费会导致消息重复解决重复消息的底层逻辑是幂等实现幂等的核心思想是:唯一key+存储。
2023-11-20 16:53:05
420
1
原创 python打开文件w和wb,r和rb的区别
是w表示正常写入 wb表示二进制写入r表示正常 rb表示二进制读取w和r读取代码如下fp=open('/abc','w')fp.write('ab\nas')fp.close()fp=open('/abc','r')print(fp.read())fp.close()结果如下abas可以看出将\n读取为换行二进制读写fp=open('/abc','w')fp.write('ab\nas')fp.close()fp=open('/abc',
2022-02-05 21:08:03
4906
原创 python中with...as的用法
python的with...as相当于整合了try...except的用法,但是比try...except的用法更加简洁先说一说try...except...finally的用法try语句中程序先执行try中语句,遇到错误执行excep语句,不过程序如何最后都会输出finally语句try语句中如果执行多条语句,如果第一条出错误,则会执行except语句中的程序,第一条语句后的程序将不被执行。如下:try: print(1 / 0)#只执行这一步 print(b)
2022-01-15 23:50:12
3289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人