spring, mvc, spring-boot, thread-pool, timeout
Last time we reviewed how to configure HTTP client timeouts. This time let us focus on the other side of the HTTP request i.e. server. There is pretty much always a thread pool involved when we write a Spring MVC application. The thread pool configuration will vary depending on particular servlet container (Tomcat, Undertow, Jetty) so we have to watch out for subtle differences. However, most if not all of them will use a thread pool with fixed maximum size. As we already know, a pool of resources might get exhausted. In particular, a thread pool is more likely to get exhausted if we do not control timeouts diligently.
We live in XXI century, our lives have become easier thanks to lots of inventions. But have you ever thought about our addiction to technology? It has got to every part of my life and I haven’t even realized that. I wake up thanks to an alarm clock on my mobile phone, during breakfast I check the news on my notebook and all the time I look at my electronic clock to check the time. At university I use PC in laboratories, lecturers show us what they do on their own computers using projectors. I am a programmer, so at work I write new code or read the old one - all using the computer and staring at the display. At the weekends in the evenings it’s all the same because my life revolves around computers.
android, react native, java, platform specific
Using custom native components in React Native is a common thing, so sooner or later you may have to write some functionality in a native language and use it in your application. Let me show you a simple example how to do that.
css, important, html, stylesheet
You have created your CSS rule and found out that it didn’t take a desired effect. You checked the CSS selector and HTML code again to check if they correspond. Or you just opened the developer console in your browser, inspected the element and checked if your CSS rule was present in the styles list. It turns out that it is there, but the declarations are strikethrough. This means you have just encountered some kind of CSS specificity issue. You could just add the !important flag to your declarations and have it done. Is it a good solution? Never. I do not say you should never use !important though. What I really want to say is that you should never use !important if you are not aware of the consequences.
One of the most basic kind of logging every backend application should have is a trace logging of all incoming HTTP requests. Yet it's not easy to make it right and useful. Let me show you what we have learned and what we do to ensure our logs are meaningful and useful.
http, timeout, network, rest, api
We have already touched upon the importance of timeouts and described most important related JDBC knobs. The next aspect of timeouts I would like to focus on is using API clients. Specifically HTTP clients which are by far the most popular. We will review couple of popular HTTP client libraries and their configuration regarding timeouts.