Size: a a a

2019 June 20
middlejava
#monitoring #grafana #prometheus

The combination of Prometheus and Grafana is becoming a more and more common monitoring stack used by DevOps teams for storing and visualizing time series data. Prometheus acts as the storage backend and Grafana as the interface for analysis and visualization.

Prometheus collects metrics from monitored targets by scraping metrics from HTTP endpoints on these targets. But what about monitoring Prometheus itself?

Like any server running processes on a host machine, there are specific metrics that need to be monitored such as used memory and storage as well as general ones reporting on the status of the service. Conveniently, Prometheus exposes a wide variety of metrics that can be easily monitored. By adding Grafana as a visualization layer, we can easily set up a monitoring stack for our monitoring stack.

Let’s take a closer look.

\\\\\\

Prometheus и Grafana становятся все более распространенным стеком мониторинга, используемым командами DevOps для хранения и визуализации time series данных. Prometheus выступает в качестве хранилища данных, а Grafana - в качестве интерфейса для анализа и визуализации.

Prometheus собирает метрики от отслеживаемых целей, вытаскивая метрики из HTTP endpoints этих целей. Но как насчет мониторинга самого Prometheus?

Как и на любом сервере, выполняющем процессы на хост-машине, существуют определенные показатели, которые необходимо отслеживать, такие как используемая память и диски, а также общие показатели, сообщающие о состоянии сервиса. Prometheus предоставляет широкий спектр показателей, которые можно легко контролировать. Добавив Grafana в качестве слоя визуализации, мы можем легко настроить стек мониторинга для нашего стека мониторинга.

Давайте глянем поближе.

https://logz.io/blog/prometheus-monitoring/

https://t.me/middle_java
источник
2019 June 25
middlejava
#tutorial #java #switch

Java theory and practice: Effective use of the new switch statement and expression in Java SE 12

"...Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a “traditional” or “simplified” scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching in switch..."

\\\\\

Теория и практика Java: эффективное использование нового оператора и выражения switch в Java SE 12

"...Расширить оператор switch, чтобы его можно было использовать и как оператор, и как выражение, и чтобы обе эти формы могли использовать и «традиционную», и «упрощенную» области видимости и поведение потока исполнения программы. Эти изменения упростят повседневное кодирование, а также подготовят почву для использования в switch сопоставления паттернов..."

https://developer.ibm.com/tutorials/java-theory-and-practice-6

t.me/middle_java
источник
2019 June 26
middlejava
#books #spring

Spring 4 для профессионалов, 4-е издание

Автор: Крис Шефер, Кларенс Хо, Роб Харроп
Год: 2015
Издательство: Вильямс
ISBN: 978-5-8459-1992-2
Страниц: 752
Язык: Русский
Формат: PDF
Размер: 105 Mb

t.me/middle_java
источник
2019 June 27
middlejava
#tutorial #java

Java: Find All Active Threads

In this article we will see how to find all the active threads running.

\\\\\

Java: Найти все активные потоки

В этой статье мы увидим, как найти все активные потоки.

https://www.javarticles.com/2018/06/java-find-all-active-threads.html

t.me/middle_java
источник
2019 June 28
middlejava
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.


Highlights:
-- A complete rundown of cool​ Multiline String Literals in Java 13 as proposed in JEP-355
-- An overview of the query hints available in JPA/Hibernate
-- And a look at four design patterns for enhancing a system's resilience

https://www.baeldung.com/java-weekly-287

t.me/middle_java
источник
2019 July 01
middlejava
#kubernetes #containers #tutorial

Learning Path: Kubernetes

If you're new to Kubernetes and container orchestration and want to begin learning about it, this learning path covers everything from basic prerequisites to more advanced skills needed for containerization.

\\\\\

Учебный путь: Kubernetes

Если вы новичок в Kubernetes и оркестровке контейнеров и хотите начать изучать эти темы, то данная серия уроков охватывает все: от базовых предпосылок до более продвинутых навыков, необходимых для контейнеризации.

https://developer.ibm.com/series/kubernetes-learning-path/

t.me/middle_java
источник
2019 July 03
middlejava
#microservices #outboxpattern #designpatterns

The Outbox Pattern

Sometimes, when processing a business operation, you need to communicate with an external component in the Fire-and-forget mode.
To do this we can implement the Outbox Pattern.

\\\\\

Шаблон проектирования "Исходящие сообщения"

Иногда при обработке бизнес-операции вам необходимо установить связь с внешним компонентом в режиме Fire-and-Forgot (отправить и забыть).
Для этого мы можем использовать паттерн проектирования "Outbox" ("Исходящие сообщения").

http://www.kamilgrzybek.com/design/the-outbox-pattern

t.me/middle_java
источник
middlejava
#microservices #outboxpattern #designpatterns #hibernate

Microservices & Data – Implementing the Outbox Pattern with Hibernate

When you apply the Outbox pattern, you split the communication between your microservice and the message broker into two parts. The key element is that your service provides an outbox within its database.

\\\\\

Микросервисы и данные - реализация шаблона "Исходящие сообщения" с помощью Hibernate

Применяя шаблон "Исходящие сообщения", вы разделяете взаимодействие между вашим микросервисом и брокером сообщений на две части. Ключевым элементом является то, что ваш сервис размещает исходящие соощения в своей базе данных.

https://thoughts-on-java.org/outbox-pattern-hibernate

t.me/middle_java
источник
2019 July 04
middlejava
#tutorial #microprofile #microservice #istio

Use MicroProfile OpenTracing and distributed tracing with Istio to enhance system observability.

In this code pattern, we’ll look at how Open Liberty, MicroProfile, and Open Tracing work alongside Istio to create an end-to-end view of requests flowing through a simulated manufacturing facility, based off of the original instrument craft shop. You’ll have an understanding of distributed tracing and a way to capture, visualize, and tell the story of what happens to an individual request.

In this pattern, we'll go through these steps:

- Installing Istio, enabling tracing and providing access to a dashboard.
- Add MicroProfile and OpenTracing to Open Liberty project.
- Run a simple microservice based application and explore a distributed tracing UI.
- Investigate application failures using information from distributed tracing.

\\\\\

Использование MicroProfile OpenTracing и распределенной трассировки с Istio для повышения наблюдаемости системы.

В этом тьюториале мы рассмотрим, как Open Liberty, MicroProfile и Open Tracing работают вместе с Istio для создания end-to-end представления запросов, проходящих через моделируемую компанию на базе мастерской по изготовлению инструментов. У вас будет понимание распределенной трассировки и способах захвата, визуализации запросов и понимания того, что происходит с отдельным запросом.

Мы выполним следующие шаги:

- Установка Istio, включение трассировки и предоставление доступа к панели инструментов.
- Добавление MicroProfile и OpenTracing в проект Open Liberty.
- Запуск простого приложения на основе микросервиса и изучение пользовательского интерфейса распределенной трассировки.
- Исследование сбоев приложений, на основе информации из распределенной трассировки.

https://github.com/IBM/opentracing-istio-troubleshooting/blob/master/README.md

https://t.me/middle_java
источник
2019 July 05
middlejava
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.

Highlights:

-- A mechanism for executing Gradle builds inside a Maven project

-- A basic example of an API gateway and service discovery using Spring Cloud Gateway

-- And while encrypted DNS is becoming more prevalent, it still presents many challenges

https://www.baeldung.com/java-weekly-288

t.me/middle_java
источник
2019 July 08
middlejava
#books #sql #russian

SQL. Сборник рецептов — Энтони Молинаро

Автор: Энтони Молинаро
Издательство: Символ-Плюс
Год: 2009
ISBN: 978-5-93286-125-7, 5-93286-125-8
PDF: 3 Мб

t.me/middle_java
источник
2019 July 09
middlejava
#tutorial #kotlin #coroutines

In this hands-on tutorial, we're going to get familiar with the concept of coroutines. Coroutines give us all the benefit of asynchronous and non-blocking behavior but without the lack of readability. We'll see how we can use coroutines to perform network requests without blocking the underlying thread and without using callbacks.

https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/01_Introduction

t.me/middle_java
источник
2019 July 10
middlejava
#companyculture #peopleoperations

Presentation: Building and Scaling a High-Performance Culture

Randy Shoup discusses team
Autonomy - how high-performing companies own their destiny from idea to development to deployment to operations;
Trust - how we need to foster a culture of trust among the individuals on a team, and between the teams themselves;
Pragmatism in the product development process - how we need to define the problem we are solving, and solve it in the simplest way possible.

\\\\\

Презентация: создание и расширение культуры высокопроизводительной работы

Randy Shoup ведёт беседу про:
Автономность - как высокопроизводительные компании управляют своей судьбой, от идеи до разработки и от развертывания до эксплуатации;  
Доверие - как нам нужно развивать культуру доверия между людьми в команде и между самими командами;  
Прагматизм в процессе разработки продукта - как мы должны определять проблему, которую решаем, и решать ее самым простым способом.

https://www.infoq.com/presentations/autonomy-trust-pragmacy-teams

t.me/middle_java
источник
middlejava
#job #java

В Сбербанке открыты новые вакансии:

Москва:
-- Java-разработчик
-- Старший инженер по разработке (системный аналитик)
-- Главный инженер по разработке (Инженер по сопровождению)

Санкт-Петербург:
-- Главный инженер по разработке (Java)

Подробное описание в приложенном файле.

Если интересно, то прошу присылать резюме на ящик middle.java@mail.ru

t.me/middle_java
источник
2019 July 11
middlejava
#books #sales

Издательство Питер. Летняя распродажа

9—14 июля.
-- Скидка 35% на все бумажные книги по купону — Бумажная книга.
-- Скидка 50% на все электронные книги по купону — Электронная книга.

https://www.piter.com/collection/top-prodazh

t.me/middle_java
источник
2019 July 12
middlejava
#hibernatetips #tutorial

Question:
I need to map tables of a legacy database using the SINGLE_TABLE strategy. But these tables don’t contain a discriminator column, and I can’t change the table definition.
Is there any other way to define the mapping to a specific subclass?


Solution:
Yes, Hibernate provides a proprietary annotation that allows you to provide an SQL snippet that returns a discriminator value. So, you don’t necessarily need a discriminator column.
Read more...

\\\\\

Вопрос:
Мне нужно смапить таблицы старой базы данных, используя стратегию SINGLE
_TABLE. Но в этих таблицах нет столбца дискриминатора, а определение таблицы я изменить не могу.
Есть ли другой способ определить маппинг на конкретный подкласс?


Решение:
Да, Hibernate предоставляет специальную аннотацию, позволяющую создать фрагмент кода SQL, возвращающий значение дискриминатора. Таким образом, столбец дискриминатора не обязателен нужен .
Читать далее...

https://thoughts-on-java.org/hibernate-tips-single_table-strategy-without-discriminator-column/#more-21972

https://t.me/middle_java
источник
2019 July 15
middlejava
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.


Highlights:

-- An overview of Kotlin scope functions

-- A new option in the Spring Initializr - gives us​ a peek at generated projects

-- And a collection of resources to kickstart your journey into AWS

https://www.baeldung.com/java-weekly-289

t.me/middle_java
источник
2019 July 16
middlejava
#books #sql

Spring Boot 2 Recipes,
Marten Deinum,
2018

Solve all your Spring Boot 2 problems using complete and real-world code examples. When you start a new project, you’ll be able to copy the code and configuration files from this book, and then modify them for your needs. This can save you a great deal of work over creating a project from scratch.
Using a problem-solution approach, Spring Boot 2 Recipes quickly introduces you to Pivotal’s Spring Boot 2 micro-framework, then dives into code snippets on how to apply and integrate Spring Boot 2 with the Spring MVC web framework, Spring Web Sockets, and microservices. You’ll also get solutions to common problems with persistence, integrating Spring Boot with batch processing, algorithmic programming via Spring Batch, and much more. Other recipes cover topics such as using and integrating Boot with Spring’s enterprise services, Spring Integration, testing, monitoring and more.

t.me/middle_java
источник
2019 July 18
middlejava
#java #lombok #fluxtion #java10

In this article, I am combining two products, Lombok and Fluxtion, to demonstrate how tools can reduce both the code written and time to delivery while improving the readability of the code. The use of var from Java 10 improves the situation even further. Both products and var use inference at build time to accelerate development.

\\\\\

В этой статье я объединю два продукта - Lombok и Fluxtion, чтобы продемонстрировать, как эти инструменты могут сократить и объем кода и время его доставки, одновременно улучшая читаемость кода. Использование var из Java 10 еще больше улучшает ситуацию. Lombok, Fluxtion и var используют вывод типов во время сборки для ускорения разработки.

https://dzone.com/articles/simplify-event-processing-with-lombok-and-fluxtion

t.me/middle_java
источник
2019 July 19
middlejava
#interview

Какие вопросы задавать программистам на собеседовании

Часто, при собеседовании кандидатов на позиции программистов сосредотачиваются на технических вопросах, наподобие, «Зачем нужен виртуальный деструктор?», предлагают разобрать фрагмент кода с хитрым синтаксисом, который редко встречается в реальной жизни или просто дают тестовое задание. В результате студент-олимпиадник может отлично пройти интервью, а человек с 10 годами работы нет. Между тем, далеко не факт, что студент, начитавшийся книжек, будет эффективно работать, а не тратить время на рассказы начальству «как правильно программировать» и разработку очередного красивого четырехколесного велосипеда.
Конечно, технические вопросы на собеседовании задавать нужно, но не менее полезно спросить о подходах к разработке, которые использовались на прошлых местах работы и поинтересоваться мнением кандидата о том, как правильно делать, а как нет. Человек, который работал в команде с хорошо поставленными процессами, вероятно, избавлен от привычек выкладывать несобирающийся код, ломать тесты и заниматься излишним рефакторингом.

https://pmlife.ru/opyt/voprosy-programmistam-na-sobesedovanii

t.me/middle_java
источник