Тёмный

Helidon - Microservices on Modern Java 

Java
Подписаться 176 тыс.
Просмотров 16 тыс.
50% 1

This session covers the practical aspects of using Project Loom’s Virtual Threads (from OpenJDK) with Helidon Níma. Created by Oracle and currently in the Alpha stage, Helidon Níma is the first service framework designed for Virtual Threads. This session will explain what Project Loom brings to service development, compare it to Oracle’s reactive implementation, and show performance improvements that can be achieved. You’ll also get a short introduction into Helidon MicroProfile and understand how it benefits from Oracle’s switch to Virtual Threads.
An Oracle DevLive Level Up - Java Developer Day session.
Presented by Joe Di Pol - Consulting Member of Technical Staff
More info
➱ helidon.io/
➱ / @helidon_project
More Level Up videos ➱ • Oracle DevLive Level U...
Tags: #Java #Microservices #Helidon #OpenJDK

Наука

Опубликовано:

 

19 апр 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 17   
@rkalla
@rkalla Год назад
Excellent talk. The new virtual threads are as much a home run as the nio libs were when they got added to the JDK. Helidon/Nima - the focus on "simple" and "no magic" is delicious!
@softcoda
@softcoda Год назад
Thanks so much. Your simple yet practical explanation of virtual threads makes me understand VTs much better now. Will definitely explore Helidon MP for my next Micro-services based projects.
@funnycompilations8314
@funnycompilations8314 7 месяцев назад
Learned more in 40 minutes than in hours of reading medium articles and blog posts.
@abrahammoyo3457
@abrahammoyo3457 Год назад
Wow!!! Java has just been made fun to program in again! Well presented, well Don!
@kevinnguyen163
@kevinnguyen163 Год назад
Great short talk about virtual thread, sir. Thank you so much
@fdemilde
@fdemilde Год назад
Thx for this presentation. 👍
@JakobJenkov
@JakobJenkov Год назад
How will virtual threads work with a router - instead of a server? In a traditional server, the requests and responses come from and go to the same connection. Thus, one thread per connection works well. However, in a router requests may come from one connection and have to be forwarded to another connection. In that case, one thread per connection might not work so well. If we assume that the future of distributed computing will be variations of P2P topologies, not traditional client-server topologies - how well will virtual threads help us get there?
@DanielKec
@DanielKec Год назад
We do virtual thread per request(per stream in case of h2) and we have also our own VT powered clients with connection pooling etc, it will work just fine. VTs do the same trick as reactive code by avoiding context switches, in case of VTs it's just hidden behind the scenes. Only real difference is the simplicity of imperative code vs callback hell of reactive paradigm.
@Anbu_Sampath
@Anbu_Sampath Год назад
Excellent talk about Helidon Nima, is there any servlet spec implementation on top of Nima? so we can have alternative to tomcat.
@JoeDiPol
@JoeDiPol 10 месяцев назад
Helidon intentionally does not implement the servlet spec. Many common things that applications do using the servlet API you can also do a different way using the JAX-RS API. So if your application is already a JAX-RS application it is possible you can wean it off of the servlet API.
@mandarkulkarni7675
@mandarkulkarni7675 Год назад
A virtual thread is allocated a platform thread. As soon as Virtual thread performs a blocking operation, JVM will reclaim the allocated platform thread and allocate it to another virtual thread. Once the earlier thread completes it's blocking opreation, it will again request for a platform thread. At this point, what happens if all of platform threads are busy and there isn't any platform thread available ? It will be nice to understand if and how thread life-cycle state flow (ready-to-run --> running --> waiting - dead) changes with the introduction of Virtual threads.
@Mohamedrasvi
@Mohamedrasvi Год назад
I would like to understand this slightly opposite way. Platform thread gets assigned a virtual thread. As soon as virtual thread blocks, it puts away the blocking virtual thread and a different virtual thead is assigned. It is same as you said but different interpretations. When all the platform threads are busy, this can happen in some cases 1. Pinning - must be avoided in virtual threads. 2. Doing heavy computation - Virtual thread simply do not help here. Better of with normal thread for computation. When used for correct use case, that is highly concurrent IO heavy code that constantly blocks. Virtual thread can handle millions of such virtual thread switching/swapping per second. This means in a web server it can handle millions of connections per second possibly making the dependent remote services (or database) as bottleneck instead of Java server being bottleneck.
@BalaRawool
@BalaRawool 10 месяцев назад
> what happens if all of platform threads are busy and there isn't any platform thread available ? The virtual thread scheduler is a new scheduler added which is a ForkJoinPool running in FIFO mode. So if there isn't a platform thread available, the virtual thread will simply wait for a platform thread to be available. And once it is available, the virtual thread will be mounted on to it.
@scubemovies
@scubemovies 9 месяцев назад
Great presentation. We are from Bangalore JUG. Shall we get the speakers contact.
@jezamoraa
@jezamoraa Год назад
Helidon cli is useful
@hba6018
@hba6018 8 месяцев назад
Why "modern"?? Ok, I'll assume it's for the people who always criticize Java 7 in 2023 (java 21) to stop and watch this video.
@Nick-yd3rc
@Nick-yd3rc Год назад
Nice, approachable intro. Though I wouldn’t write it like that at 27:35 on the left, looks quite cluttered, the inner lambda doesn’t capture anything in that context. Identity is just for flattening the fanout result set. Otherwise pretty clear what it does even the way it’s written. One downside is that you gotta unlearn trying to avoid blocking invocations when you do it the fiber way now.🥹 29:26 more like a difference between declarative, functional style and imperative, procedural programming. But debugging is important, of course.
Далее
JavaFX 20 and Beyond
41:37
Просмотров 19 тыс.
GraalVM Native Image - Faster, Smarter, Leaner
46:12
Просмотров 13 тыс.
ГРАБИТЕЛЬ ИСПУГАЛСЯ МАМЫ
00:37
Просмотров 99 тыс.
КОРОЧЕ ГОВОРЯ, ШКОЛА БУДУЩЕГО
10:40
Java 21… and Beyond
48:30
Просмотров 22 тыс.
Java Virtual Threads
30:43
Просмотров 19 тыс.
OpenJDK - Change the Future of Java
39:58
Просмотров 15 тыс.
Helidon Introduction
1:06:02
Просмотров 4,5 тыс.
Value Objects in Valhalla #JVMLS
51:42
Просмотров 15 тыс.
Blackview N6000SE Краш Тест!
1:00
Просмотров 35 тыс.
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00