High-throughput P2P streaming relies on peer selection, the strategy a peer uses to select other peer(s) as its parent(s) of streaming. Although this problem has been thoroughly investigated in the classical optimization framework under static settings, it still remains unaddressed as how to sustain throughput competitive to the optimum under highly dynamic peer churning. To accommodate such peer dynamics, we extend the classical optimization framework and propose a distributed online peer selection algorithm. This basic algorithm is further extended to a variety of settings commonly seen in operational P2P networks, such as multiparent streaming, admission control, delay constraint, etc. We prove approximation bound of our algorithm to the optimal throughput. Through evaluation under different topological setups and peer churning sequences, we show that our solution can consistently deliver competitive throughput, which greatly outperforms its theoretical bound.