Thanks John and Michael. I can use client/server no problem.
However my reason to use an embedded Geode was that based on my experience with other memory Grids its always faster to have it embedded. And I have some requirements for extremely low latency so I thought it would have saved some time and given better latency than having the client/server model. On Tue, Nov 15, 2016 at 9:15 AM, John Blum <jb...@pivotal.io> wrote: > @Mike - correct me if I am wrong, and I wouldn't recommend this, but... > > You could emulate a pub/sub system even with peers by taking advantage of > a Subscription > <http://geode.incubator.apache.org/docs/guide/reference/topics/cache_xml.html#subscription-attributes> > [1] > policy on peer *Regions* (REPLICATE or PARTITION, either or). I.e. a > Region's Subscription policy controls what data is replicated between them, > which in effect, could serve a similar purpose to topics and what data > events a peer Region receives. Then a CacheListener registered on the > Region could process events when entries (of interests expressed through > the Region Subscription policy) are updated. > > Of course, this is a superficially limited approach and not advisable for > any practical use of a Region's Subscription policy, IMO. First, you would > need to pre-populate the Region with keys (for events) you are interested > in. Then, you would set the Subscription interest-policy to > "cache-content" where your peer would then be notified of updates from any > other peer also defining the same Region and, as well, also storing the > same key/value. So, as you can see, this is not a intended use of this > feature, but it is doable. You can read additional information here > <http://geode.incubator.apache.org/docs/guide/developing/events/configure_p2p_event_messaging.html> > [2]. > > As @Mike points out, a better approach it to use the client/server > topology > <http://geode.incubator.apache.org/docs/guide/topologies_and_comm/cs_configuration/chapter_overview.html> > [3] > and Register Interests > <http://geode.incubator.apache.org/docs/guide/developing/events/configure_client_server_event_messaging.html> > [4], > or better yet, use CQs > <http://geode.incubator.apache.org/docs/guide/developing/continuous_querying/chapter_overview.html> > [5]. > > Hope this helps. > > Cheers, > John > > > [1] http://geode.incubator.apache.org/docs/guide/reference/ > topics/cache_xml.html#subscription-attributes > [2] http://geode.incubator.apache.org/docs/guide/ > developing/events/configure_p2p_event_messaging.html > [3] http://geode.incubator.apache.org/docs/guide/topologies_and_comm/cs_ > configuration/chapter_overview.html > [4] http://geode.incubator.apache.org/docs/guide/ > developing/events/configure_client_server_event_messaging.html > [5] http://geode.incubator.apache.org/docs/guide/developing/continuous_ > querying/chapter_overview.html > > > On Mon, Nov 14, 2016 at 2:57 PM, Michael Stolz <mst...@pivotal.io> wrote: > >> Ok Got it. >> But Peer caches can't do pub/sub unless they go to the extra trouble of >> setting up a pool, whereas clients get a pool automatically. >> >> -- >> Mike Stolz >> Principal Engineer, GemFire Product Manager >> Mobile: 631-835-4771 >> >> On Mon, Nov 14, 2016 at 3:02 PM, John Blum <jb...@pivotal.io> wrote: >> >>> Well, what I think Amit means (correct me if I am wrong) is the Geode >>> embedded peer cache use case, meaning the application is also a peer cache >>> in the cluster, while not the most common UC (nor maybe recommended in most >>> UCs), it is a valid UC none-the-less. >>> >>> It is to have your application participate a peer in the Geode cluster >>> by simply constructing a peer Cache using the CacheFactory >>> <http://geode.incubator.apache.org/releases/latest/javadoc/org/apache/geode/cache/CacheFactory.html> >>> [1], >>> and setting the locators property have your application join existing >>> cluster, something like so... >>> >>> Cache peerCache = new CacheFactory().set("locators", >>> "<host>[<port>]").set(..)...create(); >>> >>> You can also do this in SDG with... >>> >>> <util:properties id="geodeProperties"> >>> <prop key="name">MyApplication</prop> >>> <prop key="mcast-port">0</prop> >>> <prop key="log-level">${geode.log.level:config}</prop> >>> <prop key="locators">${geode.locators.host-port:localhost[10334]}</prop >>> > >>> <prop key="start-locator">${geode.locator.embedded.host-port:}</prop> >>> </util:properties> >>> >>> <gfe:cache properties-ref="geodeProperties"/> >>> >>> The <gfe:cache> element created a "peer" cache (as opposed to the >>> <gfe:client-cache> element). >>> >>> You are then free to create Regions used by your application as >>> necessary. >>> >>> I have examples of both GemFire peer and client/server configurations >>> here <https://github.com/jxblum/pivotal-gemfire-clientserver-examples> [2] >>> and here >>> <https://github.com/jxblum/contacts-application/tree/apache-geode> [3] >>> (see configuration examples). >>> >>> Hope this helps. >>> >>> Cheers, >>> John >>> >>> [1] http://geode.incubator.apache.org/releases/latest/javado >>> c/org/apache/geode/cache/CacheFactory.html >>> [2] https://github.com/jxblum/pivotal-gemfire-clientserver-examples >>> [3] https://github.com/jxblum/contacts-application/tree/apache-geode >>> >>> >>> On Mon, Nov 14, 2016 at 11:28 AM, Michael Stolz <mst...@pivotal.io> >>> wrote: >>> >>>> Geode clients have the ability to registerInterest(key) which works a >>>> lot like a topic. >>>> >>>> Not sure what you mean by using Geode embedded and with a cluster of >>>> external processes, but what I THINK you're asking is, can you use the >>>> Geode client/server model where the client is embedded into your >>>> application process and the servers that are responsible for holding all >>>> the data are in a separate cluster. The answer is YES, that is the most >>>> common configuration for Geode usage. >>>> >>>> >>>> >>>> -- >>>> Mike Stolz >>>> Principal Engineer, GemFire Product Manager >>>> Mobile: 631-835-4771 >>>> >>>> On Sat, Nov 12, 2016 at 12:41 PM, Amit Pandey < >>>> amit.pandey2...@gmail.com> wrote: >>>> >>>>> Hi Guys, >>>>> >>>>> Is there any example of public subscribe with geode? Hazelcast and >>>>> Ignite seem to have topics, is there any such thing in Geode. >>>>> >>>>> Also I want to use Geode embedded. Can I use it with a cluster of >>>>> external processes as well. >>>>> >>>>> Regards >>>>> >>>> >>>> >>> >>> >>> -- >>> -John >>> 503-504-8657 >>> john.blum10101 (skype) >>> >> >> > > > -- > -John > 503-504-8657 > john.blum10101 (skype) >