I want to apply the following architecture, where i have two app servers in order to ensure high availibility. Do i need to use two dedicated servers for load balancer or is it possible to use a virtual machine on the app servers for it?
It depends on what risk you are trying to mitigate against. If you use virtual machines, you are mitigating against software errors on the load balancers. But you are still vulnerable to a hardware failure on the host machine.