To cope with rapidly increasing Internet usage nowadays, providing Internet services using multiple servers has become a necessity. To ensure sufficient service quality and server utilization at the same time, effective methods are needed to spread load among servers properly. Existing load balancing methods often assume servers are homogeneous and consider only one type of resource, such as CPU. Such methods suffer from the fact that different requests often demand multiple types of resources with different requirements; trying to balance the usage of only one resource type may induce an inadvertent performance bottleneck, leading to low resource utilization and service quality. To address this problem, we propose a load balancing method based on the concept of distributed market mechanism, where requests are priced with respect to the load of multiple resources on each server. By migrating jobs among servers to balance inter-server load and minimize intra-server job cost at the same time, our method shows significant improvement in terms of load imbalance degrees, server utilization, and response time when compared to other published methods, especially when server heterogeneity increases.