I am now in Brazil. Usually I carry quite a few things with me when I am abroad - rucksack, water, videocamera, photocamera, suncream, etc, - but my wife suggested to carry as little as possible and definitely no rucksacks because mainly tourists use them: I wear local cloths (I bought it here, it is better in quality and price than one you can find in Europe), no bags (unless it is supermarket bag) and this is the best way not to stand out and reduce interest of thieves because I have not many things to attrack their attention. It works so far and comfortable - you can always buy water and carry a bottle, it does not attrack attention, other things are not that important to have with me all the time as I thought before.
Nevertheless, when I lived in Hungary 11 years ago, I was attacked a few times by local Nazis. Since that time I usually carry a knife just in case but during one attack I simply forgot about my knife on my belt... So, weapons do not always work.
Sprays and other weapons are illegal in many countries. But since I left Hungary I was never attacked though I travelled 20+ countries since that time (I prefer travelling to third world countries because everything is cheap there and it is out of the beaten track).