Cloud Computing is a flourishing technology because of its scalability, flexibility, availability of resources and other features. Resource multiplexing is done through the virtualization technology in cloud computing. Virtualization technology acts as a backbone for provisioning requirements of the cloud based solutions. At present, load balancing is one of the challenging issues in cloud computing environment. This issue arises due to massive consumer demands variety of services as per their dynamically changing requirements. So it becomes liability of cloud service provide to facilitate all the demanded services to the cloud consumers. However, due to the availability of finite resources, it is very challenging for cloud service providers to facilitate all the demanded services efficiently. From the cloud service provider's perspective, cloud resources must be allocated in a fair manner. This paper addresses the existing techniques for resource allocation in cloud computing and proposes the dynamic resource allocation technique to mitigate overloads. It also focuses on energy consumption issue of cloud data centres and devised technique for lower energy consumption in order to achieve green cloud computing.