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 <dma...@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 <clayteaho...@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 <dma...@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 <clayteaho...@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 <dma...@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 <clayteaho...@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 <dma...@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 <
>>>>>>> clayteaho...@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 <dma...@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 <
>>>>>>>>> clayteaho...@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
>>>>>>>>>>
>>>>>>>>>

Reply via email to