| extend ../_components/base.pug |
| |
| block pagetitle |
| title Apache Ignite Services, Distributed Service Grid |
| meta(name="description", content="Apache Ignite Service Grid allows to deploy various types of singleton services in the cluster or multiple service instances. Build a fault-tolerant, scalable, high-performant, microservice-based solution with Apache Ignite.") |
| link(rel="canonical", href="https://ignite.apache.org/features/service-apis.html") |
| |
| meta(property="og:title", content="Apache Ignite Services, Distributed Service Grid") |
| meta(property="og:type", content="article") |
| meta(property="og:url", content="https://ignite.apache.org/features/service-apis.html") |
| meta(property="og:image", content="/img/og-pic.png") |
| meta(property="og:description", content="Apache Ignite Service Grid allows to deploy various types of singleton services in the cluster or multiple service instances. Build a fault-tolerant, scalable, high-performant, microservice-based solution with Apache Ignite.") |
| |
| block css |
| link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version) |
| link(rel="stylesheet", href="../css/service.css?ver=" + config.version) |
| link(rel="stylesheet", href="../css/compute-apis.css?ver=" + config.version) |
| link(rel="stylesheet", href="../js/vendor/highlight/night-owl.css?ver=" + config.version) |
| |
| script(src="../js/vendor/highlight/highlight.min.js") |
| script(src="../js/vendor/highlight/java.min.js") |
| script(src="../js/vendor/highlight/xml.min.js") |
| script(src="../js/vendor/highlight/csharp.min.js") |
| |
| |
| |
| block main |
| - global.pageHref = "features" |
| - config.hdrClassName = "hdr__blue" |
| include ../_components/header.pug |
| |
| |
| section.innerhero |
| .container.innerhero__cont |
| .innerhero__main |
| .innerhero__pre.pb-3 Apache Ignite |
| h1.h1.innerhero__h1 Service APIs |
| .innerhero__descr.pt-2.h5. |
| Deploy your microservices straight on the cluster nodes and<br> trigger execution from the application code |
| .innerhero__action |
| a.button.innerhero__button(href="https://ignite.apache.org/docs/latest/index") Start Coding |
| img.innerhero__pic.innerhero__pic--servicegrid(src="/img/features/service/service-hero.svg", alt="Distributed In-Memory Cache") |
| // /.innerhero |
| |
| |
| |
| section.service1 |
| .container |
| h2.service1__h2 Apache Ignite Service APIs Overview |
| .fz20.service1__text With the services API, you can create and deploy arbitrary services on the cluster. For instance, you may want to implement custom counters, hierarchical maps, or anything that you treat as a microservice. |
| // /.service1 |
| |
| |
| section.nativecode.container.jsTabWrap |
| header.blockheader.blockheader--spl.flexi |
| h2.h4.blockheader__left Use Contemporary Powerful Languages |
| .blockheader__right.service-subtextvideo.fz20 |
| p Create scalable microservices in languages such as Java or C# |
| .nativecode__tabctrls.flexi |
| a(href="#", data-tablink="nativeTabJava").nativecode__link.active Java |
| |
| .nativecode__tabs |
| .nativecode__tab(data-tab="nativeTabJava").active |
| pre.nativecode__codebox |
| code.java. |
| Ignite ignite = Ignition.start(); |
| |
| //get the services interface associated with all server nodes |
| IgniteServices services = ignite.services(); |
| |
| //start a node singleton |
| services.deployClusterSingleton("myCounterService", new MyCounterServiceImpl()); |
| |
| // /.nativecode |
| |
| section.service2 |
| .container |
| h2.service2__h2.h4 Services Deployment Modes |
| .service2__text Deploy single or many instances of a service on the cluster |
| .service2__block |
| .service2item.service2item__one.flexi |
| .service2item__info |
| h3.service2item__title Cluster Singleton |
| p.service2item__text The most commonly used feature is to deploy singleton services on the cluster. |
| p.service2item__text There is only one instance of the service in the cluster, and Ignite guarantees<br> that the instance is always available. |
| p.service2item__text In case the cluster node on which the service is deployed disconnects, Ignite automatically redeploys the instance to another node. |
| |
| img.service2item__image1(src="/img/features/service/one-image.svg", alt="one-image") |
| |
| .service2item.service2item__two.flexi |
| img.service2item__image2(src="/img/features/service/two-image.svg", alt="two-image") |
| .service2item__info.service2item__info2 |
| h3.service2item__title Node Singleton |
| p.service2item__text You can specify your service as part of the node configuration and start<br> the service together with the node. |
| p.service2item__text The service is started on each node of the cluster. If the service is a cluster singleton, it is started in the first cluster node, and is redeployed to one <br>of the other nodes if the first node terminates. |
| |
| |
| |
| |
| section.compute2 |
| .container |
| h2.compute2__h2 Benefits Of Apache Ignite Service APIs |
| .compute2__grid |
| .compute2item |
| .compute2-points__item.fz20 |
| .compute2item__block |
| h3.fz20.compute2item__title Load balancing |
| p.compute2__text In all cases, other than singleton service deployment, Ignite makes sure that an equal number of services are deployed on each node within the cluster. |
| p.compute2__text Whenever cluster topology changes, Ignite will re-evaluate service deployments and may re-deploy an already deployed service on another node for better load balancing. |
| .compute2item |
| .compute2-points__item.fz20 |
| .compute2item__block |
| h3.fz20.compute2item__title Fault Tolerance |
| p.compute2__text Ignite always guarantees that services are continuously available, and are deployed according to the specified configuration, regardless of any topology changes or node crashes. |
| .compute2item |
| .compute2-points__item.fz20 |
| .compute2item__block |
| h3.fz20.compute2item__title Hot Redeployment |
| p.compute2__text You can update the implementation of a service without stopping the cluster. |
| p.compute2__text Use Ignite’s DeploymentSpi configuration to re-deploy services without restarting the cluster. |
| // /.compute2 |
| |
| section.native-bottom.container |
| .native-bottom__grid |
| article.nativebotblock |
| .h4.nativebotblock__title |
| img(src="/img/features/native-rocket.svg", alt="").nativebotblock__icon |
| span Ready to Start? |
| p.nativebotblock__text Start coding with Ignite Service APIs |
| a.nativebotblock__link.arrowlink(href="https://ignite.apache.org/docs/latest/services/services#re-deploying-services", target="_blank") Performing Service APIs |
| article.nativebotblock.nativebotblock--learn |
| .h4.nativebotblock__title |
| img(src="/img/features/native-docs.svg", alt="").nativebotblock__icon |
| span Want to Learn More? |
| p.nativebotblock__text Check out a special tutorial that shows how to build and deploy microservices with Ignite Service APIs |
| a.nativebotblock__link.servicenativelink.arrowlink(href="https://www.gridgain.com/resources/blog/implementing-microservices-apache-ignite-service-apis-part-iii", target="_blank") Implementing Microservices<br> With Apache Ignite Service APIs |
| |
| |
| |
| |