You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Clay Teahouse <cl...@gmail.com> on 2020/06/03 22:19:45 UTC

Re: embedded jetty & ignite

Thank you, Denis. I'll research this topic further.

Any recommendation for/against using jetty as an embedded servlet
container, in this case, say, deployed as an ignite service?

On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org> wrote:

> Clay,
>
> Just start your Jetty server and deploy as many instances of your web app
> as needed. Inside the logic of those apps start Ignite server nodes
> instances. Then, refer to this documentation page for session clustering
> configuration:
> https://apacheignite-mix.readme.io/docs/web-session-clustering
>
> Also, there were many related questions related to this topic. Try to
> search for specific by googling for "session clustering with ignite and
> jetty".
>
> Let us know if further help is needed.
>
>
> -
> Denis
>
>
> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
> wrote:
>
>> thank you Denis.
>> If I want to go with the first option, how would I deploy jetty as
>> embedded server? Do I deploy it as an ignite service?
>> How would I do session clustering in this case?
>>
>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org> wrote:
>>
>>> Hi Clay,
>>>
>>> I wouldn't suggest using Ignite's Jetty instance for the deployment of
>>> your services. Ignite's Jetty primary function is to handle REST requests
>>> specific to Ignite: https://apacheignite.readme.io/docs/rest-api
>>>
>>> Instead, deploy and manage your restful services separately. Then, if
>>> the goal is to do a web session clustering, deploy Ignite server nodes in
>>> the embedded mode making the sessions' caches replicated. Otherwise, deploy
>>> the server nodes independently and reach the cluster out from the restful
>>> services using existing Ignite APIs. This tutorial shows how to do the
>>> latter with Spring Boot:
>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <cl...@gmail.com>
>>> wrote:
>>>
>>>> hello,
>>>> I understand that ignite comes with embedded jetty server.
>>>> 1) Can I utilize this jetty server to deploy my own restful services
>>>> (using Jersey implementation)? If yes, can you please direct me to some
>>>> examples.
>>>> Further questions:
>>>> 2)How does the ignite embedded jetty work with regard to load
>>>> balancing? Are there multiple instances of the embedded jetty server
>>>> running behind a load balancer? In other words, can I invoke multiple
>>>> instances?
>>>> 2) How does this scheme work with web session clustering?
>>>> 3) Would the ignite node run in server mode?
>>>> 4) I want the jetty sessions access ignite caches (on the server side)
>>>> as the data source for the data returned from the restful services.
>>>>
>>>> Any help and advice would be much appreciated. Thank you
>>>>
>>>

Re: embedded jetty & ignite

Posted by Denis Magda <dm...@apache.org>.
Clay,

This 3-years old blogging series talks about a recommended architecture for
deployments with Ignite service grid:

   - Part 1:
   https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri
   - Part 2:
   https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri-1
   - Part 3:
   https://dzone.com/articles/microservices-on-top-of-an-in-memory-data-grid-par


That was before Kubernetes, Spring Boot REST, Quarkus, etc. became de-facto
standards for microservices architectures.

-
Denis


On Mon, Jun 8, 2020 at 12:08 PM Denis Magda <dm...@apache.org> wrote:

> Clay,
>
> I assume embedding jetty as an ignite service, i.e., as an ignite server
>> node, is not desirable (still don't know the reason).
>
>
> Let's suppose that your cluster has 3 server/data nodes with application
> records distributed evenly - so that each node keeps ~33% of the whole data
> set. Next, if to deploy Jetty as an ignite service on those 3 nodes and to
> assume that all application records are accessed frequently, then for ~33%
> of requests the service will serve local data of its node while for the
> rest ~66% request it will getting it from the other 2 remote nodes. So, the
> performance advantages of this deployment strategy are insignificant
> (unless all the data is fully replicated).
>
> Also, if an Ignite service is deployed on a server node, then each time
> you need to update service logic you'll restart the server node and trigger
> cluster rebalancing that might be a time-consuming operation depending on
> data size. This might be a more prominent implication that you would not
> want to have in the production environment.
>
>
>
> -
> Denis
>
>
> On Sun, Jun 7, 2020 at 3:04 AM Clay Teahouse <cl...@gmail.com>
> wrote:
>
>> Denis -- Thank you for the recommendation.
>> From what I read, embedded ignite servers has implications for
>> scalability, and write performance and I cannot afford either.
>> I assume embedding jetty as an ignite service, i.e., as an ignite server
>> node, is not desirable (still don't know the reason).
>> Yes, ultimatley my goal is to deploy the ignite services and data nodes
>> as microservices.
>>
>> On Sat, Jun 6, 2020 at 11:25 PM Denis Magda <dm...@apache.org> wrote:
>>
>>> Clay,
>>>
>>> Probably, such frameworks as Quarkus, Spring Boot, Micronaut would work
>>> as a better foundation for your microservices. As you know, those already
>>> go with embedded REST servers and you can always use Ignite clients to
>>> reach out to the cluster.
>>>
>>> Usually, Ignite servers are deployed in the embedded mode when you're
>>> dealing with ultra-low latency use case or doing web-sessions clustering:
>>>
>>> https://www.gridgain.com/docs/latest/installation-guide/deployment-modes#embedded-deployment
>>>
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Sat, Jun 6, 2020 at 9:03 AM Clay Teahouse <cl...@gmail.com>
>>> wrote:
>>>
>>>> Hi Denis -- My main reason was for embedding jetty as an ignite service
>>>> was to have ignite manage jetty instance, the same it does for any other
>>>> kind of service.
>>>>
>>>> On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:
>>>>
>>>>> Clay,
>>>>>
>>>>> Do you have any specific requirements in mind for the ignite service +
>>>>> jetty deployment? If possible, please tell us a bit more about your
>>>>> application.
>>>>>
>>>>> Generally, I would deploy Jetty separately and use load balancers when
>>>>> several instances of an application are needed.
>>>>>
>>>>> -
>>>>> Denis
>>>>>
>>>>>
>>>>> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Thank you, Denis. I'll research this topic further.
>>>>>>
>>>>>> Any recommendation for/against using jetty as an embedded servlet
>>>>>> container, in this case, say, deployed as an ignite service?
>>>>>>
>>>>>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org>
>>>>>> wrote:
>>>>>>
>>>>>>> Clay,
>>>>>>>
>>>>>>> Just start your Jetty server and deploy as many instances of your
>>>>>>> web app as needed. Inside the logic of those apps start Ignite server nodes
>>>>>>> instances. Then, refer to this documentation page for session clustering
>>>>>>> configuration:
>>>>>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>>>>>
>>>>>>> Also, there were many related questions related to this topic. Try
>>>>>>> to search for specific by googling for "session clustering with ignite and
>>>>>>> jetty".
>>>>>>>
>>>>>>> Let us know if further help is needed.
>>>>>>>
>>>>>>>
>>>>>>> -
>>>>>>> Denis
>>>>>>>
>>>>>>>
>>>>>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <
>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>
>>>>>>>> thank you Denis.
>>>>>>>> If I want to go with the first option, how would I deploy jetty as
>>>>>>>> embedded server? Do I deploy it as an ignite service?
>>>>>>>> How would I do session clustering in this case?
>>>>>>>>
>>>>>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Clay,
>>>>>>>>>
>>>>>>>>> I wouldn't suggest using Ignite's Jetty instance for the
>>>>>>>>> deployment of your services. Ignite's Jetty primary function is to handle
>>>>>>>>> REST requests specific to Ignite:
>>>>>>>>> https://apacheignite.readme.io/docs/rest-api
>>>>>>>>>
>>>>>>>>> Instead, deploy and manage your restful services separately. Then,
>>>>>>>>> if the goal is to do a web session clustering, deploy Ignite server nodes
>>>>>>>>> in the embedded mode making the sessions' caches replicated. Otherwise,
>>>>>>>>> deploy the server nodes independently and reach the cluster out from the
>>>>>>>>> restful services using existing Ignite APIs. This tutorial shows how to do
>>>>>>>>> the latter with Spring Boot:
>>>>>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>>>>>
>>>>>>>>> -
>>>>>>>>> Denis
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <
>>>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> hello,
>>>>>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>>>>>> 1) Can I utilize this jetty server to deploy my own restful
>>>>>>>>>> services (using Jersey implementation)? If yes, can you please direct me to
>>>>>>>>>> some examples.
>>>>>>>>>> Further questions:
>>>>>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>>>>>> instances?
>>>>>>>>>> 2) How does this scheme work with web session clustering?
>>>>>>>>>> 3) Would the ignite node run in server mode?
>>>>>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>>>>>
>>>>>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>>>>>
>>>>>>>>>

Re: embedded jetty & ignite

Posted by Clay Teahouse <cl...@gmail.com>.
Understood. Thank you, Denis for the explanation.

On Mon, Jun 8, 2020 at 2:08 PM Denis Magda <dm...@apache.org> wrote:

> Clay,
>
> I assume embedding jetty as an ignite service, i.e., as an ignite server
>> node, is not desirable (still don't know the reason).
>
>
> Let's suppose that your cluster has 3 server/data nodes with application
> records distributed evenly - so that each node keeps ~33% of the whole data
> set. Next, if to deploy Jetty as an ignite service on those 3 nodes and to
> assume that all application records are accessed frequently, then for ~33%
> of requests the service will serve local data of its node while for the
> rest ~66% request it will getting it from the other 2 remote nodes. So, the
> performance advantages of this deployment strategy are insignificant
> (unless all the data is fully replicated).
>
> Also, if an Ignite service is deployed on a server node, then each time
> you need to update service logic you'll restart the server node and trigger
> cluster rebalancing that might be a time-consuming operation depending on
> data size. This might be a more prominent implication that you would not
> want to have in the production environment.
>
>
>
> -
> Denis
>
>
> On Sun, Jun 7, 2020 at 3:04 AM Clay Teahouse <cl...@gmail.com>
> wrote:
>
>> Denis -- Thank you for the recommendation.
>> From what I read, embedded ignite servers has implications for
>> scalability, and write performance and I cannot afford either.
>> I assume embedding jetty as an ignite service, i.e., as an ignite server
>> node, is not desirable (still don't know the reason).
>> Yes, ultimatley my goal is to deploy the ignite services and data nodes
>> as microservices.
>>
>> On Sat, Jun 6, 2020 at 11:25 PM Denis Magda <dm...@apache.org> wrote:
>>
>>> Clay,
>>>
>>> Probably, such frameworks as Quarkus, Spring Boot, Micronaut would work
>>> as a better foundation for your microservices. As you know, those already
>>> go with embedded REST servers and you can always use Ignite clients to
>>> reach out to the cluster.
>>>
>>> Usually, Ignite servers are deployed in the embedded mode when you're
>>> dealing with ultra-low latency use case or doing web-sessions clustering:
>>>
>>> https://www.gridgain.com/docs/latest/installation-guide/deployment-modes#embedded-deployment
>>>
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Sat, Jun 6, 2020 at 9:03 AM Clay Teahouse <cl...@gmail.com>
>>> wrote:
>>>
>>>> Hi Denis -- My main reason was for embedding jetty as an ignite service
>>>> was to have ignite manage jetty instance, the same it does for any other
>>>> kind of service.
>>>>
>>>> On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:
>>>>
>>>>> Clay,
>>>>>
>>>>> Do you have any specific requirements in mind for the ignite service +
>>>>> jetty deployment? If possible, please tell us a bit more about your
>>>>> application.
>>>>>
>>>>> Generally, I would deploy Jetty separately and use load balancers when
>>>>> several instances of an application are needed.
>>>>>
>>>>> -
>>>>> Denis
>>>>>
>>>>>
>>>>> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Thank you, Denis. I'll research this topic further.
>>>>>>
>>>>>> Any recommendation for/against using jetty as an embedded servlet
>>>>>> container, in this case, say, deployed as an ignite service?
>>>>>>
>>>>>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org>
>>>>>> wrote:
>>>>>>
>>>>>>> Clay,
>>>>>>>
>>>>>>> Just start your Jetty server and deploy as many instances of your
>>>>>>> web app as needed. Inside the logic of those apps start Ignite server nodes
>>>>>>> instances. Then, refer to this documentation page for session clustering
>>>>>>> configuration:
>>>>>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>>>>>
>>>>>>> Also, there were many related questions related to this topic. Try
>>>>>>> to search for specific by googling for "session clustering with ignite and
>>>>>>> jetty".
>>>>>>>
>>>>>>> Let us know if further help is needed.
>>>>>>>
>>>>>>>
>>>>>>> -
>>>>>>> Denis
>>>>>>>
>>>>>>>
>>>>>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <
>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>
>>>>>>>> thank you Denis.
>>>>>>>> If I want to go with the first option, how would I deploy jetty as
>>>>>>>> embedded server? Do I deploy it as an ignite service?
>>>>>>>> How would I do session clustering in this case?
>>>>>>>>
>>>>>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Clay,
>>>>>>>>>
>>>>>>>>> I wouldn't suggest using Ignite's Jetty instance for the
>>>>>>>>> deployment of your services. Ignite's Jetty primary function is to handle
>>>>>>>>> REST requests specific to Ignite:
>>>>>>>>> https://apacheignite.readme.io/docs/rest-api
>>>>>>>>>
>>>>>>>>> Instead, deploy and manage your restful services separately. Then,
>>>>>>>>> if the goal is to do a web session clustering, deploy Ignite server nodes
>>>>>>>>> in the embedded mode making the sessions' caches replicated. Otherwise,
>>>>>>>>> deploy the server nodes independently and reach the cluster out from the
>>>>>>>>> restful services using existing Ignite APIs. This tutorial shows how to do
>>>>>>>>> the latter with Spring Boot:
>>>>>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>>>>>
>>>>>>>>> -
>>>>>>>>> Denis
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <
>>>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> hello,
>>>>>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>>>>>> 1) Can I utilize this jetty server to deploy my own restful
>>>>>>>>>> services (using Jersey implementation)? If yes, can you please direct me to
>>>>>>>>>> some examples.
>>>>>>>>>> Further questions:
>>>>>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>>>>>> instances?
>>>>>>>>>> 2) How does this scheme work with web session clustering?
>>>>>>>>>> 3) Would the ignite node run in server mode?
>>>>>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>>>>>
>>>>>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>>>>>
>>>>>>>>>

Re: embedded jetty & ignite

Posted by Denis Magda <dm...@apache.org>.
Clay,

I assume embedding jetty as an ignite service, i.e., as an ignite server
> node, is not desirable (still don't know the reason).


Let's suppose that your cluster has 3 server/data nodes with application
records distributed evenly - so that each node keeps ~33% of the whole data
set. Next, if to deploy Jetty as an ignite service on those 3 nodes and to
assume that all application records are accessed frequently, then for ~33%
of requests the service will serve local data of its node while for the
rest ~66% request it will getting it from the other 2 remote nodes. So, the
performance advantages of this deployment strategy are insignificant
(unless all the data is fully replicated).

Also, if an Ignite service is deployed on a server node, then each time you
need to update service logic you'll restart the server node and trigger
cluster rebalancing that might be a time-consuming operation depending on
data size. This might be a more prominent implication that you would not
want to have in the production environment.



-
Denis


On Sun, Jun 7, 2020 at 3:04 AM Clay Teahouse <cl...@gmail.com> wrote:

> Denis -- Thank you for the recommendation.
> From what I read, embedded ignite servers has implications for
> scalability, and write performance and I cannot afford either.
> I assume embedding jetty as an ignite service, i.e., as an ignite server
> node, is not desirable (still don't know the reason).
> Yes, ultimatley my goal is to deploy the ignite services and data nodes as
> microservices.
>
> On Sat, Jun 6, 2020 at 11:25 PM Denis Magda <dm...@apache.org> wrote:
>
>> Clay,
>>
>> Probably, such frameworks as Quarkus, Spring Boot, Micronaut would work
>> as a better foundation for your microservices. As you know, those already
>> go with embedded REST servers and you can always use Ignite clients to
>> reach out to the cluster.
>>
>> Usually, Ignite servers are deployed in the embedded mode when you're
>> dealing with ultra-low latency use case or doing web-sessions clustering:
>>
>> https://www.gridgain.com/docs/latest/installation-guide/deployment-modes#embedded-deployment
>>
>>
>> -
>> Denis
>>
>>
>> On Sat, Jun 6, 2020 at 9:03 AM Clay Teahouse <cl...@gmail.com>
>> wrote:
>>
>>> Hi Denis -- My main reason was for embedding jetty as an ignite service
>>> was to have ignite manage jetty instance, the same it does for any other
>>> kind of service.
>>>
>>> On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:
>>>
>>>> Clay,
>>>>
>>>> Do you have any specific requirements in mind for the ignite service +
>>>> jetty deployment? If possible, please tell us a bit more about your
>>>> application.
>>>>
>>>> Generally, I would deploy Jetty separately and use load balancers when
>>>> several instances of an application are needed.
>>>>
>>>> -
>>>> Denis
>>>>
>>>>
>>>> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
>>>> wrote:
>>>>
>>>>> Thank you, Denis. I'll research this topic further.
>>>>>
>>>>> Any recommendation for/against using jetty as an embedded servlet
>>>>> container, in this case, say, deployed as an ignite service?
>>>>>
>>>>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> Clay,
>>>>>>
>>>>>> Just start your Jetty server and deploy as many instances of your web
>>>>>> app as needed. Inside the logic of those apps start Ignite server nodes
>>>>>> instances. Then, refer to this documentation page for session clustering
>>>>>> configuration:
>>>>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>>>>
>>>>>> Also, there were many related questions related to this topic. Try to
>>>>>> search for specific by googling for "session clustering with ignite and
>>>>>> jetty".
>>>>>>
>>>>>> Let us know if further help is needed.
>>>>>>
>>>>>>
>>>>>> -
>>>>>> Denis
>>>>>>
>>>>>>
>>>>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> thank you Denis.
>>>>>>> If I want to go with the first option, how would I deploy jetty as
>>>>>>> embedded server? Do I deploy it as an ignite service?
>>>>>>> How would I do session clustering in this case?
>>>>>>>
>>>>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Clay,
>>>>>>>>
>>>>>>>> I wouldn't suggest using Ignite's Jetty instance for the deployment
>>>>>>>> of your services. Ignite's Jetty primary function is to handle REST
>>>>>>>> requests specific to Ignite:
>>>>>>>> https://apacheignite.readme.io/docs/rest-api
>>>>>>>>
>>>>>>>> Instead, deploy and manage your restful services separately. Then,
>>>>>>>> if the goal is to do a web session clustering, deploy Ignite server nodes
>>>>>>>> in the embedded mode making the sessions' caches replicated. Otherwise,
>>>>>>>> deploy the server nodes independently and reach the cluster out from the
>>>>>>>> restful services using existing Ignite APIs. This tutorial shows how to do
>>>>>>>> the latter with Spring Boot:
>>>>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>>>>
>>>>>>>> -
>>>>>>>> Denis
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <
>>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> hello,
>>>>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>>>>> 1) Can I utilize this jetty server to deploy my own restful
>>>>>>>>> services (using Jersey implementation)? If yes, can you please direct me to
>>>>>>>>> some examples.
>>>>>>>>> Further questions:
>>>>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>>>>> instances?
>>>>>>>>> 2) How does this scheme work with web session clustering?
>>>>>>>>> 3) Would the ignite node run in server mode?
>>>>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>>>>
>>>>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>>>>
>>>>>>>>

Re: embedded jetty & ignite

Posted by Clay Teahouse <cl...@gmail.com>.
Denis -- Thank you for the recommendation.
From what I read, embedded ignite servers has implications for scalability,
and write performance and I cannot afford either.
I assume embedding jetty as an ignite service, i.e., as an ignite server
node, is not desirable (still don't know the reason).
Yes, ultimatley my goal is to deploy the ignite services and data nodes as
microservices.

On Sat, Jun 6, 2020 at 11:25 PM Denis Magda <dm...@apache.org> wrote:

> Clay,
>
> Probably, such frameworks as Quarkus, Spring Boot, Micronaut would work as
> a better foundation for your microservices. As you know, those already go
> with embedded REST servers and you can always use Ignite clients to
> reach out to the cluster.
>
> Usually, Ignite servers are deployed in the embedded mode when you're
> dealing with ultra-low latency use case or doing web-sessions clustering:
>
> https://www.gridgain.com/docs/latest/installation-guide/deployment-modes#embedded-deployment
>
>
> -
> Denis
>
>
> On Sat, Jun 6, 2020 at 9:03 AM Clay Teahouse <cl...@gmail.com>
> wrote:
>
>> Hi Denis -- My main reason was for embedding jetty as an ignite service
>> was to have ignite manage jetty instance, the same it does for any other
>> kind of service.
>>
>> On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:
>>
>>> Clay,
>>>
>>> Do you have any specific requirements in mind for the ignite service +
>>> jetty deployment? If possible, please tell us a bit more about your
>>> application.
>>>
>>> Generally, I would deploy Jetty separately and use load balancers when
>>> several instances of an application are needed.
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
>>> wrote:
>>>
>>>> Thank you, Denis. I'll research this topic further.
>>>>
>>>> Any recommendation for/against using jetty as an embedded servlet
>>>> container, in this case, say, deployed as an ignite service?
>>>>
>>>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org> wrote:
>>>>
>>>>> Clay,
>>>>>
>>>>> Just start your Jetty server and deploy as many instances of your web
>>>>> app as needed. Inside the logic of those apps start Ignite server nodes
>>>>> instances. Then, refer to this documentation page for session clustering
>>>>> configuration:
>>>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>>>
>>>>> Also, there were many related questions related to this topic. Try to
>>>>> search for specific by googling for "session clustering with ignite and
>>>>> jetty".
>>>>>
>>>>> Let us know if further help is needed.
>>>>>
>>>>>
>>>>> -
>>>>> Denis
>>>>>
>>>>>
>>>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> thank you Denis.
>>>>>> If I want to go with the first option, how would I deploy jetty as
>>>>>> embedded server? Do I deploy it as an ignite service?
>>>>>> How would I do session clustering in this case?
>>>>>>
>>>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Clay,
>>>>>>>
>>>>>>> I wouldn't suggest using Ignite's Jetty instance for the deployment
>>>>>>> of your services. Ignite's Jetty primary function is to handle REST
>>>>>>> requests specific to Ignite:
>>>>>>> https://apacheignite.readme.io/docs/rest-api
>>>>>>>
>>>>>>> Instead, deploy and manage your restful services separately. Then,
>>>>>>> if the goal is to do a web session clustering, deploy Ignite server nodes
>>>>>>> in the embedded mode making the sessions' caches replicated. Otherwise,
>>>>>>> deploy the server nodes independently and reach the cluster out from the
>>>>>>> restful services using existing Ignite APIs. This tutorial shows how to do
>>>>>>> the latter with Spring Boot:
>>>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>>>
>>>>>>> -
>>>>>>> Denis
>>>>>>>
>>>>>>>
>>>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <
>>>>>>> clayteahouse@gmail.com> wrote:
>>>>>>>
>>>>>>>> hello,
>>>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>>>> 1) Can I utilize this jetty server to deploy my own restful
>>>>>>>> services (using Jersey implementation)? If yes, can you please direct me to
>>>>>>>> some examples.
>>>>>>>> Further questions:
>>>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>>>> instances?
>>>>>>>> 2) How does this scheme work with web session clustering?
>>>>>>>> 3) Would the ignite node run in server mode?
>>>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>>>
>>>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>>>
>>>>>>>

Re: embedded jetty & ignite

Posted by Denis Magda <dm...@apache.org>.
Clay,

Probably, such frameworks as Quarkus, Spring Boot, Micronaut would work as
a better foundation for your microservices. As you know, those already go
with embedded REST servers and you can always use Ignite clients to
reach out to the cluster.

Usually, Ignite servers are deployed in the embedded mode when you're
dealing with ultra-low latency use case or doing web-sessions clustering:
https://www.gridgain.com/docs/latest/installation-guide/deployment-modes#embedded-deployment


-
Denis


On Sat, Jun 6, 2020 at 9:03 AM Clay Teahouse <cl...@gmail.com> wrote:

> Hi Denis -- My main reason was for embedding jetty as an ignite service
> was to have ignite manage jetty instance, the same it does for any other
> kind of service.
>
> On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:
>
>> Clay,
>>
>> Do you have any specific requirements in mind for the ignite service +
>> jetty deployment? If possible, please tell us a bit more about your
>> application.
>>
>> Generally, I would deploy Jetty separately and use load balancers when
>> several instances of an application are needed.
>>
>> -
>> Denis
>>
>>
>> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
>> wrote:
>>
>>> Thank you, Denis. I'll research this topic further.
>>>
>>> Any recommendation for/against using jetty as an embedded servlet
>>> container, in this case, say, deployed as an ignite service?
>>>
>>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org> wrote:
>>>
>>>> Clay,
>>>>
>>>> Just start your Jetty server and deploy as many instances of your web
>>>> app as needed. Inside the logic of those apps start Ignite server nodes
>>>> instances. Then, refer to this documentation page for session clustering
>>>> configuration:
>>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>>
>>>> Also, there were many related questions related to this topic. Try to
>>>> search for specific by googling for "session clustering with ignite and
>>>> jetty".
>>>>
>>>> Let us know if further help is needed.
>>>>
>>>>
>>>> -
>>>> Denis
>>>>
>>>>
>>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
>>>> wrote:
>>>>
>>>>> thank you Denis.
>>>>> If I want to go with the first option, how would I deploy jetty as
>>>>> embedded server? Do I deploy it as an ignite service?
>>>>> How would I do session clustering in this case?
>>>>>
>>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org> wrote:
>>>>>
>>>>>> Hi Clay,
>>>>>>
>>>>>> I wouldn't suggest using Ignite's Jetty instance for the deployment
>>>>>> of your services. Ignite's Jetty primary function is to handle REST
>>>>>> requests specific to Ignite:
>>>>>> https://apacheignite.readme.io/docs/rest-api
>>>>>>
>>>>>> Instead, deploy and manage your restful services separately. Then, if
>>>>>> the goal is to do a web session clustering, deploy Ignite server nodes in
>>>>>> the embedded mode making the sessions' caches replicated. Otherwise, deploy
>>>>>> the server nodes independently and reach the cluster out from the restful
>>>>>> services using existing Ignite APIs. This tutorial shows how to do the
>>>>>> latter with Spring Boot:
>>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>>
>>>>>> -
>>>>>> Denis
>>>>>>
>>>>>>
>>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <cl...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> hello,
>>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>>> 1) Can I utilize this jetty server to deploy my own restful services
>>>>>>> (using Jersey implementation)? If yes, can you please direct me to some
>>>>>>> examples.
>>>>>>> Further questions:
>>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>>> instances?
>>>>>>> 2) How does this scheme work with web session clustering?
>>>>>>> 3) Would the ignite node run in server mode?
>>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>>
>>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>>
>>>>>>

Re: embedded jetty & ignite

Posted by Clay Teahouse <cl...@gmail.com>.
Hi Denis -- My main reason was for embedding jetty as an ignite service was
to have ignite manage jetty instance, the same it does for any other kind
of service.

On Thu, Jun 4, 2020 at 3:30 PM Denis Magda <dm...@apache.org> wrote:

> Clay,
>
> Do you have any specific requirements in mind for the ignite service +
> jetty deployment? If possible, please tell us a bit more about your
> application.
>
> Generally, I would deploy Jetty separately and use load balancers when
> several instances of an application are needed.
>
> -
> Denis
>
>
> On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com>
> wrote:
>
>> Thank you, Denis. I'll research this topic further.
>>
>> Any recommendation for/against using jetty as an embedded servlet
>> container, in this case, say, deployed as an ignite service?
>>
>> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org> wrote:
>>
>>> Clay,
>>>
>>> Just start your Jetty server and deploy as many instances of your web
>>> app as needed. Inside the logic of those apps start Ignite server nodes
>>> instances. Then, refer to this documentation page for session clustering
>>> configuration:
>>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>>
>>> Also, there were many related questions related to this topic. Try to
>>> search for specific by googling for "session clustering with ignite and
>>> jetty".
>>>
>>> Let us know if further help is needed.
>>>
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
>>> wrote:
>>>
>>>> thank you Denis.
>>>> If I want to go with the first option, how would I deploy jetty as
>>>> embedded server? Do I deploy it as an ignite service?
>>>> How would I do session clustering in this case?
>>>>
>>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org> wrote:
>>>>
>>>>> Hi Clay,
>>>>>
>>>>> I wouldn't suggest using Ignite's Jetty instance for the deployment of
>>>>> your services. Ignite's Jetty primary function is to handle REST requests
>>>>> specific to Ignite: https://apacheignite.readme.io/docs/rest-api
>>>>>
>>>>> Instead, deploy and manage your restful services separately. Then, if
>>>>> the goal is to do a web session clustering, deploy Ignite server nodes in
>>>>> the embedded mode making the sessions' caches replicated. Otherwise, deploy
>>>>> the server nodes independently and reach the cluster out from the restful
>>>>> services using existing Ignite APIs. This tutorial shows how to do the
>>>>> latter with Spring Boot:
>>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>>
>>>>> -
>>>>> Denis
>>>>>
>>>>>
>>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <cl...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> hello,
>>>>>> I understand that ignite comes with embedded jetty server.
>>>>>> 1) Can I utilize this jetty server to deploy my own restful services
>>>>>> (using Jersey implementation)? If yes, can you please direct me to some
>>>>>> examples.
>>>>>> Further questions:
>>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>>> instances?
>>>>>> 2) How does this scheme work with web session clustering?
>>>>>> 3) Would the ignite node run in server mode?
>>>>>> 4) I want the jetty sessions access ignite caches (on the server
>>>>>> side) as the data source for the data returned from the restful services.
>>>>>>
>>>>>> Any help and advice would be much appreciated. Thank you
>>>>>>
>>>>>

Re: embedded jetty & ignite

Posted by Denis Magda <dm...@apache.org>.
Clay,

Do you have any specific requirements in mind for the ignite service +
jetty deployment? If possible, please tell us a bit more about your
application.

Generally, I would deploy Jetty separately and use load balancers when
several instances of an application are needed.

-
Denis


On Wed, Jun 3, 2020 at 3:20 PM Clay Teahouse <cl...@gmail.com> wrote:

> Thank you, Denis. I'll research this topic further.
>
> Any recommendation for/against using jetty as an embedded servlet
> container, in this case, say, deployed as an ignite service?
>
> On Fri, May 29, 2020 at 11:22 PM Denis Magda <dm...@apache.org> wrote:
>
>> Clay,
>>
>> Just start your Jetty server and deploy as many instances of your web app
>> as needed. Inside the logic of those apps start Ignite server nodes
>> instances. Then, refer to this documentation page for session clustering
>> configuration:
>> https://apacheignite-mix.readme.io/docs/web-session-clustering
>>
>> Also, there were many related questions related to this topic. Try to
>> search for specific by googling for "session clustering with ignite and
>> jetty".
>>
>> Let us know if further help is needed.
>>
>>
>> -
>> Denis
>>
>>
>> On Fri, May 29, 2020 at 6:57 PM Clay Teahouse <cl...@gmail.com>
>> wrote:
>>
>>> thank you Denis.
>>> If I want to go with the first option, how would I deploy jetty as
>>> embedded server? Do I deploy it as an ignite service?
>>> How would I do session clustering in this case?
>>>
>>> On Fri, May 29, 2020 at 3:18 PM Denis Magda <dm...@apache.org> wrote:
>>>
>>>> Hi Clay,
>>>>
>>>> I wouldn't suggest using Ignite's Jetty instance for the deployment of
>>>> your services. Ignite's Jetty primary function is to handle REST requests
>>>> specific to Ignite: https://apacheignite.readme.io/docs/rest-api
>>>>
>>>> Instead, deploy and manage your restful services separately. Then, if
>>>> the goal is to do a web session clustering, deploy Ignite server nodes in
>>>> the embedded mode making the sessions' caches replicated. Otherwise, deploy
>>>> the server nodes independently and reach the cluster out from the restful
>>>> services using existing Ignite APIs. This tutorial shows how to do the
>>>> latter with Spring Boot:
>>>> https://www.gridgain.com/docs/tutorials/spring/spring_ignite_tutorial
>>>>
>>>> -
>>>> Denis
>>>>
>>>>
>>>> On Fri, May 29, 2020 at 8:25 AM Clay Teahouse <cl...@gmail.com>
>>>> wrote:
>>>>
>>>>> hello,
>>>>> I understand that ignite comes with embedded jetty server.
>>>>> 1) Can I utilize this jetty server to deploy my own restful services
>>>>> (using Jersey implementation)? If yes, can you please direct me to some
>>>>> examples.
>>>>> Further questions:
>>>>> 2)How does the ignite embedded jetty work with regard to load
>>>>> balancing? Are there multiple instances of the embedded jetty server
>>>>> running behind a load balancer? In other words, can I invoke multiple
>>>>> instances?
>>>>> 2) How does this scheme work with web session clustering?
>>>>> 3) Would the ignite node run in server mode?
>>>>> 4) I want the jetty sessions access ignite caches (on the server side)
>>>>> as the data source for the data returned from the restful services.
>>>>>
>>>>> Any help and advice would be much appreciated. Thank you
>>>>>
>>>>