spring的aop和elasticsearch

我已经把一个数据库导入到了elasticsearch中,但是如果以后我对这个数据库进行增删查改,elasticsearch没有改变,老师告诉我用aop的话一个方法就可以解决,请问怎么实现啊?

3个回答

望采纳,求关注!!!

你老师告诉你的不一定正确;
你老师可能是想者你用aop切入你对数据库中数据执行增删改的方法,同步对es进行更新;
但是这个有很大的局限性,也就是你自己程序的方法可以这么做,如果别人的程序也能进行对这些数据的更改,那么
aop就没啥用;还有就是直接在数据库里面更改,aop更没啥用;

这个问题其实是一个数据同步问题;
实时同步(超低延迟)可以选择canal作为同步工具,监控到数据库数据有变动,就更新es索引;
再加上每天做一个补漏,那么就能提供一个真正的准试试搜索了;

希望可以帮到你.....

因为Spring默认的是事务不提交,你在增删改的方法上面加上@Transaction注解,在Spring配置文件中加上

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>
    其中dataSource是你自己配置的数据源,就可以控制事务了,在增删改方法加上@Transaction注解,在查询方法上加上@Transaction(readOnly=true,propagation = Propagation.SUPPORTS)注解就可以控制事务了,
zhangpan_soft
zhangpan_soft 回复little_how: 这个搜索引擎没用过,我刚查了一下,的确是个分布式的,谢谢
2 年多之前 回复
w172087242
little_how 其实这个相当于分布式事务,你配置的这个是不能保证数据一致性的,首先你要保证es的回滚和提交
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!