Pole/zero cancellation is discouraged primarily because in practice it is almost impossible to do perfectly. Real systems have variation and uncertainty so you can't know for sure where the poles/zeros are at. So if you try to cancel them out, but they aren't where you thought they were, you have a potentially unstable pole still active.
Feedback controllers stabilize unstable plants (such as yours) by adding and modifying system dynamics such that all poles move to the LHP. (in this case, we're talking about the entire system instead of just the unstable plant being controlled) If you've heard of root locus plots, they show where the system poles move as a function of the controller gain.
--- Edit ----
(add example)
Assume your plant has transfer function $P(s)$ and your controller has transfer function $G(s)$. Using this interconnection
r -->(+/-)-->[G(s)]-->[P(s)] ----> x
^ |
| |
|<-----------------------
you have
$$
\begin{align}
X = G P (R-X)
\\
(1+G P)X = G P R
\\
\frac{X}{R} = \frac{GP}{1+GP}
\end{align}
$$
where everything is in the Laplace domain but I've dropped the $(s)$ for simplicity. For stability, we are now only concerned with the points where $1+G(s) P(s)=0$. Note that we have not made any assumptions about the specifics of $P(s)$ yet, so the results work for all plants.
Now take a plant such as $P(s) = s-1$ and assume a second order controller. We have
$$
\begin{align}
1+G(s) P(s) &= 1+G (s-1)
\\
&= 1+(as^2+bs+c)(s-1)
\\
&= as^3 + (b-a) s^2 + (c-b) s + (1-c)
\end{align}
$$
Now you just need to choose $a, b, c$ to give negative roots. For example $a=0.1, b=0.3, c=0.8$ gives roots of $-0.467, -0.767 \pm 1.92$.
As plants become more and more complex, this process gets pretty difficult and you need to either have lots of experience to understand how to shape the locus (which I don't) or use other controller design techniques. One common approach is converting to state-space models and using things like linear quadratic regulators (LQR) to design the feedback controller.