In Pub/Sub systems, channel-based approaches to routing the subscriptions and events have many advantages such as fewer routing messages, lower costs for subscription management, etc. But a potential issue embedded in this kind of approach, i.e. loadings on different event brokers are apt to unbalancing, is ignored more or less. In this paper, we design a load balancing mechanism and integrate it into a channel-based approach in a Pub/Sub system. In particular, we define a balancing state in a Pub/Sub system, and then propose the balancing control initiation algorithm which decides not only whether to perform load balancing among event brokers but also whether to adjust the number of event brokers. Also we present the load scheduling algorithm which can achieve load balancing by channel splitting, merging and migration. We conduct the experiments by taking loads with different distributions as input to reveal the capability of dealing with changing loads. The experimental data prove that our mechanism can help balance the system loads efficiently and dynamically start or shut down event brokers when facing overloads or insufficient loads.