운영 및 유지 관리 초보자입니다. 최근 회사 로그를 간단하게 처리한 후 목록에 일정량을 추가한 다음 ES 인터페이스를 사용하여 다른 ElasticSearch에 데이터를 일괄 추가한 다음 어떤 방식으로든 표시했습니다. 여기에 문제가 있습니다. 데이터를 삽입하면 예외가 발생합니다. 예를 들어 삽입하려는 es 호스트가 충돌하는 등의 현상이 발생하지만 데이터 소스에는 문제가 없습니다. 이렇게 하면 처리된 데이터가 캐시로 이동한 다음 프로그램이 중지됩니다. (데이터 소스는 kafka입니다. 프로그램이 중지되더라도 다시 시작하면 계속 사용할 수 있습니다.)
그렇다면 비교적 가벼운 Python 프로그램이나 스크립트의 경우 이러한 예외가 발생하면 어떻게 저장해야 합니까? 먼저 저장된 데이터에 대해?
可以在es异常时, py脚本捕获到异常后, 使用
cPickle
或者pickle
将处理好的数据序列化后保存到一个文件上(你可以理解成写入一个文件, 不同在于cPickle
和pickle
能够将字典或者列表这样的对象直接写入文件), 然后等你es恢复了, 重新启动该py脚本, 那么该脚本优先去检测是否存在这个临时文件, 如果有, 并非空, 则把里面的数据取出, 写入es