Можно в Memcached выполнять агрегацию лайков пачками по 10k плюс ограничением по времени до 5 сек. и затем обновлять агрегированные значения в БД. Напрямую или через очередь.
Для начала хотя бы так.
Кроме этого, на клиенте можно оттягивать отправку после 1-го клика при помощи техники
debounce. Также по теме
https://levelup.gitconnected.com/debounce-in-javas...