spring rest endpoint call propagation using kafka












0















I have this requirement and can't think of a way forward. Any help is appreciated.



I have two instances of same REST spring boot application running with different data version. Let say, instance 1-> running on data version 1 and instance 2 -> running data version 2. This is a REST application which has few REST controllers and exposes some endpoints.



Consider all the traffic is handled by instance 1. If i hit a "endpoint1" on instance1 then it perform's some action and the data is stored in-memory. I want the same action to be performed on instance 2 so that i create the same thing in-memory for instance 2 without manually calling the endpoint. In-memory object are very large and takes around 1 GB each.



I want to achieve this so that when instance 1 is ready to die and instance3-> running on data version 3 is available then i can migrate the user to instance 2 without loosing the in-memory objects.



One option is to publish a msg on KAFKA capturing all the parameters using AOP from instance 1 but am not sure how to handle it in instance 2. I don't have any code right now to paste here.










share|improve this question























  • What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

    – bittu
    Nov 14 '18 at 18:50
















0















I have this requirement and can't think of a way forward. Any help is appreciated.



I have two instances of same REST spring boot application running with different data version. Let say, instance 1-> running on data version 1 and instance 2 -> running data version 2. This is a REST application which has few REST controllers and exposes some endpoints.



Consider all the traffic is handled by instance 1. If i hit a "endpoint1" on instance1 then it perform's some action and the data is stored in-memory. I want the same action to be performed on instance 2 so that i create the same thing in-memory for instance 2 without manually calling the endpoint. In-memory object are very large and takes around 1 GB each.



I want to achieve this so that when instance 1 is ready to die and instance3-> running on data version 3 is available then i can migrate the user to instance 2 without loosing the in-memory objects.



One option is to publish a msg on KAFKA capturing all the parameters using AOP from instance 1 but am not sure how to handle it in instance 2. I don't have any code right now to paste here.










share|improve this question























  • What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

    – bittu
    Nov 14 '18 at 18:50














0












0








0








I have this requirement and can't think of a way forward. Any help is appreciated.



I have two instances of same REST spring boot application running with different data version. Let say, instance 1-> running on data version 1 and instance 2 -> running data version 2. This is a REST application which has few REST controllers and exposes some endpoints.



Consider all the traffic is handled by instance 1. If i hit a "endpoint1" on instance1 then it perform's some action and the data is stored in-memory. I want the same action to be performed on instance 2 so that i create the same thing in-memory for instance 2 without manually calling the endpoint. In-memory object are very large and takes around 1 GB each.



I want to achieve this so that when instance 1 is ready to die and instance3-> running on data version 3 is available then i can migrate the user to instance 2 without loosing the in-memory objects.



One option is to publish a msg on KAFKA capturing all the parameters using AOP from instance 1 but am not sure how to handle it in instance 2. I don't have any code right now to paste here.










share|improve this question














I have this requirement and can't think of a way forward. Any help is appreciated.



I have two instances of same REST spring boot application running with different data version. Let say, instance 1-> running on data version 1 and instance 2 -> running data version 2. This is a REST application which has few REST controllers and exposes some endpoints.



Consider all the traffic is handled by instance 1. If i hit a "endpoint1" on instance1 then it perform's some action and the data is stored in-memory. I want the same action to be performed on instance 2 so that i create the same thing in-memory for instance 2 without manually calling the endpoint. In-memory object are very large and takes around 1 GB each.



I want to achieve this so that when instance 1 is ready to die and instance3-> running on data version 3 is available then i can migrate the user to instance 2 without loosing the in-memory objects.



One option is to publish a msg on KAFKA capturing all the parameters using AOP from instance 1 but am not sure how to handle it in instance 2. I don't have any code right now to paste here.







java rest spring-boot






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 14 '18 at 13:24









ProgrammerBoyProgrammerBoy

501212




501212













  • What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

    – bittu
    Nov 14 '18 at 18:50



















  • What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

    – bittu
    Nov 14 '18 at 18:50

















What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

– bittu
Nov 14 '18 at 18:50





What you need is Distributed Object store because of large object size. You may thiink about using a distributed object store which will store the data behind scene and in case of fail over, instance 2 will be ready to serve. Applicaton Processes In-Memory caches are not that good option so need to move to distbuted object store.

– bittu
Nov 14 '18 at 18:50












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53301300%2fspring-rest-endpoint-call-propagation-using-kafka%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53301300%2fspring-rest-endpoint-call-propagation-using-kafka%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python