camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Cameron <steve.cameron...@gmail.com>
Subject Re: Fastest Data Holder
Date Sat, 03 May 2014 23:30:47 GMT
Regarding the need to "repeatingly parse XML again and again", surely this
should not be necessary if the message body that is being passed is along
the chain is a (reference to a) DOM object?


On Wed, Apr 30, 2014 at 7:18 PM, Jens Breitenstein <mailinglist@j-b-s.de>wrote:

> if you use JMS than your data will be send as ObjectMessage which makes
> use of JAVA object serialization thus it's converted to byte stream at some
> point in time.
> But this serialization only occurs ones when ActiveMQ sends your message
> to JMS listeners (regardless if same VM or another one). If you want to
> avoid the "heavy" default java object serialization you can try using a
> TextMessage and XML/JSON/Protobuffer whatever, but I wonder if performance
> is really a problem? An object makes handling of your business logic in all
> your camel processors far easier (a map, a business related class) in
> contrast to repeatingly parse XML again and again (in case your logic is
> spread accross multiple processors). If you create an instance ones and
> just send it immediately by JMS simply go for java's default serialization
> and you are done without writing any additional code until performance
> really matters
>
> Jens
>
>
> Am 30.04.14 10:06, schrieb Muhammad Ichsan:
>
>  Ah..!
>>
>> So, in the same JVM, using Java object simply uses an instance
>> pointer. But if I'm going to produce into an ActiveMQ endpoint, I
>> should make sure the MQ in the same JVM with vm transport or, I should
>> marshall into protobuf bytes. The MQ is used for my own system too,
>> but different physical location.
>>
>>
>> On Wed, Apr 30, 2014 at 3:49 PM, mailinglist@j-b-s.de
>> <mailinglist@j-b-s.de> wrote:
>>
>>> What do you mean by different systems? Different Camel Processors?
>>>
>>> You can store your data as body/property and this is a pure instance
>>> pointer. As long the message is not deep cloned/serialized as bytestream
>>> there is no overhead passing this message through the camel routes (in one
>>> vm).
>>>
>>> Can you provide more info maybe I simply did not get it?
>>>
>>> Jens
>>>
>>> Von meinem iPhone gesendet
>>>
>>>  Am 30.04.2014 um 08:34 schrieb Muhammad Ichsan <ichsan@gmail.com>:
>>>>
>>>> Hi
>>>>
>>>> I'm thinking about creating a common message which will hold all data
>>>> during all business invocations across different system in Camel (of
>>>> course with translation for vary systems).
>>>>
>>>> In my first thought, I'm going to use a simple one like Map. The the
>>>> payload is simple to use in processor. I can use
>>>>
>>>> public Map setFee(Map<String, String> commonMessage) {
>>>>   // Modif
>>>>
>>>>   return commonMessage;
>>>> }
>>>>
>>>> But sending Map along the way of transaction process means that there
>>>> will be conversion of java.util.Map into bytes over and over again.
>>>>
>>>> My second thought is, using XML or JSON text. But I face more complex
>>>> processing in the processor
>>>>
>>>> public String setFee(String commonMessage) {
>>>>   Map<String, String> map = helper.toMap(commonMessage);
>>>>
>>>>   // Modif
>>>>
>>>>   return helper.toString(map);
>>>> }
>>>>
>>>> So, which one is the most efficient way?
>>>>
>>>> --
>>>> ~The best men are men who benefit to others
>>>> http://www.michsan.web.id 一緒に勉強しましょう!
>>>>
>>>> Yang berkualitas memang beda rasanya!
>>>> http://rizqi-cookies.com
>>>>
>>>
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message