Meta tags:
Headings (most frequently used words):
microservices, patterns, architecture, microservice, service, context, about, need, help, your, consulting, learn, the, pattern, client, side, discovery, problem, forces, solution, examples, resulting, related, io, modernizing, 2nd, edition, ask, chris, premium, content, workshops, remote, session, assess, get, book, example, applications, virtual, bootcamp, distributed, data, in, how, to, create, template, and, chassis, build, services, eventuate, platform,
Text of the page (most frequently used words):
the (55), #service (39), and (26), microservices (21), discovery (18), microservice (16), for (16), client (16), architecture (15), resttemplate (13), side (12), chris (11), your (11), that (10), patterns (9), pattern (8), example (8), application (8), help (7), learn (7), http (7), instances (7), using (6), use (6), services (6), chassis (6), this (6), distributed (5), you (5), how (5), about (5), eureka (5), which (5), locations (5), another (5), data (4), consulting (4), more (4), richardson (4), available (4), need (4), modernization (4), framework (4), registry (4), spring (4), location (4), instance (4), string (4), number (4), dynamically (4), eventuate (3), implement (3), can (3), api (3), virtual (3), now (3), see (3), book (3), problem (3), question (3), avoid (3), workshops (3), premium (3), modern (3), based (3), has (3), following (3), network (3), requests (3), registration (3), user (3), scalaobjectmapper (3), user_registration_url (3), rest (3), typically (3), one (3), enable (2), javascript (2), group (2), saga (2), cqrs (2), queries (2), management (2), platform (2), create (2), engage (2), teaches (2), template (2), are (2), multiple (2), video (2), code (2), ask (2), including (2), bootcamp (2), want (2), applications (2), get (2), assess (2), architect (2), session (2), design (2), monolith (2), organization (2), adopt (2), got (2), related (2), remote (2), essential (2), such (2), will (2), content (2), organizations (2), through (2), software (2), edition (2), legacy (2), system (2), new (2), with (2), systems (2), all (2), supported (2), kong (2), inter (2), communication (2), solution (2), server (2), each (2), language (2), scala (2), provides (2), clients (2), netflix (2), context (2), annotation (2), enables (2), ribbon (2), configured (2), endpoint (2), querying (2), loadbalanced (2), enableeurekaclient (2), case (2), val (2), def (2), class (2), various (2), cloud (2), when (2), set (2), order (2), password (2), emailaddress (2), userregistrationurl (2), registrationserviceproxy (2), component (2), uses (2), their (2), changes (2), mechanism (2), call (2), please, view, comments, powered, disqus, join, google, ready, start, latest, startup, makes, easy, manage, transactions, tackle, challenges, adoption, roadmap, define, build, email, marketing, trust, signup, newsletter, take, look, develop, manning, liveproject, regular, price, 395, person, but, coupon, offefkcw, sign, valid, until, sept, 30th, 2025, there, deeper, discounts, buying, seats, consists, lectures, labs, weekly, anything, conference, repeated, timezones, covers, key, composition, open, enrollment, check, out, read, offers, numerous, other, resources, learning, identify, what, needs, improved, conduct, review, consider, signing, two, hour, highly, focussed, facing, tricky, know, migrate, wondering, whether, should, specific, pitfalls, adopting, topics, decomposition, refactor, architects, developers, effectively, comprehensive, paid, subscribers, training, engagements, improve, agility, competitiveness, better, fill, write, blog, post, answers, form, very, excited, announce, meap, second, 2nd, trap, creating, same, old, problems, contact, discuss, goals, modernizing, created, creator, original, cloudfoundry, com, author, advises, building, becoming, copyright, 2026, rights, reserved, alternative, responsibility, part, logic, programming, used, java, nodejs, proxy, approach, non, jvm, prana, couples, also, drawbacks, fewer, moving, parts, hops, compared, benefits, resulting, configures, been, result, handle, find, setobjectmapper, mappingjackson2httpmessageconverter, foreach, getmessageconverters, bean, eurekaclientconfiguration, enableeureka, array, profile, configuration, annotations, deployed, url, file, logical, name, resolved, implemented, components, route, oss, docker, compose, yml, injected, specifies, registrationbackendresponse, classof, registrationbackendrequest, postforentity, response, registrationerror, either, registeruser, override, var, value, registrationservice, extends, autowired, register, invokes, written, boot, they, provide, capabilities, examples, handled, diagram, shows, structure, making, request, obtains, knows, might, vary, ec2, autoscaling, adjusts, load, machines, containers, usually, assigned, dynamic, addresses, exposes, thrift, etc, particular, host, port, forces, does, gateway, discover, consequently, must, make, changing, ephemeral, monolithic, invoke, level, method, procedure, calls, traditional, deployment, run, fixed, well, known, hosts, ports, easily, some, rpc, however, runs, virtualized, containerized, environments, where, testing, refactoring, presentations, articles,
Text of the page (random words):
pattern client side service discovery microservice architecture supported by kong patterns articles presentations adopt refactoring testing modernization help about pattern client side service discovery pattern inter service communication service discovery context services typically need to call one another in a monolithic application services invoke one another through language level method or procedure calls in a traditional distributed system deployment services run at fixed well known locations hosts and ports and so can easily call one another using http rest or some rpc mechanism however a modern microservice based application typically runs in a virtualized or containerized environments where the number of instances of a service and their locations changes dynamically consequently you must implement a mechanism for that enables the clients of service to make requests to a dynamically changing set of ephemeral service instances problem how does the client of a service the api gateway or another service discover the location of a service instance forces each instance of a service exposes a remote api such as http rest or thrift etc at a particular location host and port the number of services instances and their locations changes dynamically virtual machines and containers are usually assigned dynamic ip addresses the number of services instances might vary dynamically for example an ec2 autoscaling group adjusts the number of instances based on load solution when making a request to a service the client obtains the location of a service instance by querying a service registry which knows the locations of all service instances the following diagram shows the structure of this pattern this is typically handled by a microservice chassis framework examples the microservices example application is an example of an application that uses client side service discovery it is written in scala and uses spring boot and spring cloud as the microservice chassis they provide various capabilities including client side discovery registrationserviceproxy is a component of that application in order to register a user it invokes another service using the spring framework s resttemplate component class registrationserviceproxy autowired resttemplate resttemplate extends registrationservice value user_registration_url var userregistrationurl string _ override def registeruser emailaddress string password string either registrationerror string val response resttemplate postforentity userregistrationurl registrationbackendrequest emailaddress password classof registrationbackendresponse it is injected with the resttemplate and the user_registration_url which specifies the rest endpoint when the application is deployed user_registration_url is set to this url http registration service user see the docker compose yml file registration service is the logical service name that is resolved to a network location using client side service discovery the service discovery is implemented using netflix oss components it provides eureka which is a service registry and ribbon which is an http client that queries eureka in order to route http requests to an available service instance client side service discovery is configured using various spring cloud annotations configuration enableeurekaclient profile array enableeureka class eurekaclientconfiguration bean loadbalanced def resttemplate scalaobjectmapper scalaobjectmapper resttemplate val resttemplate new resttemplate resttemplate getmessageconverters foreach case mc mappingjackson2httpmessageconverter mc setobjectmapper scalaobjectmapper case _ resttemplate the enableeurekaclient annotation enables the eureka client the loadbalanced annotation configures the resttemplate to use ribbon which has been configured to use the eureka client to do service discovery as a result the resttemplate will handle requests to the http registration service user endpoint by querying eureka to find the network locations of available service instances resulting context client side discovery has the following benefits fewer moving parts and network hops compared to server side discovery client side discovery also has the following drawbacks this pattern couples the client to the service registry you need to implement client side service discovery logic for each programming language framework used by your application e g java scala javascript nodejs for example netflix prana provides an http proxy based approach to service discovery for non jvm clients related patterns service registry an essential part of service discovery microservice chassis client side service discovery is the responsibility the microservice chassis framework server side discovery is an alternative solution to this problem pattern inter service communication service discovery modernization help copyright 2026 chris richardson all rights reserved supported by kong about microservices io microservices io is created by chris richardson software architect creator of the original cloudfoundry com and author of microservices patterns chris advises organizations on modernization architecture and building systems that avoid becoming modern legacy systems need help modernizing your architecture avoid the trap of creating a modern legacy system a new architecture with the same old problems contact me to discuss your modernization goals get help microservices patterns 2nd edition i am very excited to announce that the meap for the second edition of my book microservices patterns is now available learn more ask chris got a question about microservices fill in this form if i can i ll write a blog post that answers your question need help i help organizations improve agility and competitiveness through better software architecture learn more about my consulting engagements and training workshops premium content premium content now available for paid subscribers at premium microservices io microservices workshops chris teaches comprehensive workshops for architects and developers that will enable your organization use microservices effectively avoid the pitfalls of adopting microservices and learn essential topics such as service decomposition and design and how to refactor a monolith to microservices learn more remote consulting session got a specific microservice architecture related question for example wondering whether your organization should adopt microservices want to know how to migrate your monolith to microservices facing a tricky microservice architecture design problem consider signing up for a two hour highly focussed consulting session assess your architecture assess your application s microservice architecture and identify what needs to be improved engage chris to conduct an architect review learn about microservices chris offers numerous other resources for learning the microservice architecture get the book microservices patterns read chris richardson s book example microservices applications want to see an example check out chris richardson s example applications see code virtual bootcamp distributed data patterns in a microservice architecture my virtual bootcamp distributed data patterns in a microservice architecture is now open for enrollment it covers the key distributed data management patterns including saga api composition and cqrs it consists of video lectures code labs and a weekly ask me anything video conference repeated in multiple timezones the regular price is 395 person but use coupon offefkcw to sign up for 95 valid until sept 30th 2025 there are deeper discounts for buying multiple seats learn more learn how to create a service template and microservice chassis take a look at my manning liveproject that teaches you how to develop a service template and microservice chassis signup for the newsletter for email marketing you can trust build microservices ready to start using the microservice architecture consulting services engage chris to create a microservices adoption roadmap and help you define your microservice architecture the eventuate platform use the eventuate io platform to tackle distributed data management challenges in your microservices architecture eventuate is chris s latest startup it makes it easy to use the saga pattern to manage transactions and the cqrs pattern to implement queries join the microservices google group please enable javascript to view the comments powered by disqus
|