Oxalic acid works really well on topsides. It is toxic so don't have it too strong. It will go through your skin so gloves are an absolute must.
I would not spray it. A dust pan brush is fairly ideal to apply it with from a bucket. Apply to the topsides. Wait for the stain to fade away, then rinse with water, salt or fresh.
If you are doing it anchor, salt water is the obvious but if alongside fresh would be the best.
In Cairns some guys, moored on the piles across the other side of the inlet, would put oxalic in crystal form in a hessian bag and hang it from the bow on an outgoing tide. Got rid of their barnacles alright.
Probably not an environmentally responsible thing to do but hey, it is not the average yachtie that is spoiling the environment. The military and commercial shipping use the most toxic antifouling imagineable. They only do a bottom clean every five or more years.
Just put it on and rinse it off and keep your concience in the locker.