{"id":18769,"date":"2024-03-15T17:35:51","date_gmt":"2024-03-15T17:35:51","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/"},"modified":"2024-03-21T14:06:03","modified_gmt":"2024-03-21T14:06:03","slug":"how-can-load-balancing-be-achieved-in-feign","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/","title":{"rendered":"How can load balancing be achieved in feign?"},"content":{"rendered":"<p>Feign is a declarative web service client that works alongside load balancers like Ribbon to achieve load balancing.<\/p>\n<p>To implement load balancing using Feign, follow these steps:<\/p>\n<ol>\n<li>Add dependencies for Feign and Ribbon. Add the following dependencies to the project&#8217;s pom.xml file:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependencies<\/span>&gt;<\/span>\r\n    <span class=\"hljs-comment\">&lt;!-- \u6dfb\u52a0Feign\u4f9d\u8d56 --&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>org.springframework.cloud<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>spring-cloud-starter-openfeign<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n    <span class=\"hljs-comment\">&lt;!-- \u6dfb\u52a0Ribbon\u4f9d\u8d56 --&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>org.springframework.cloud<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>spring-cloud-starter-ribbon<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependencies<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Enable the Feign Clients<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@SpringBootApplication<\/span>\r\n<span class=\"hljs-meta\">@EnableFeignClients(basePackages = \"com.example.feignclient\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Application<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        SpringApplication.run(Application.class, args);\r\n    }\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Using the @FeignClient annotation<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@FeignClient(name = \"example-service\", url = \"http:\/\/example-service\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title class_\">ExampleServiceClient<\/span> {\r\n    <span class=\"hljs-meta\">@GetMapping(\"\/api\/example\")<\/span>\r\n    String <span class=\"hljs-title function_\">getExample<\/span><span class=\"hljs-params\">()<\/span>;\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Utilize the Feign client to make service calls. Inject the Feign client interface in the code and call its methods to communicate with the service. Feign automatically works with Ribbon to achieve load balancing. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@RestController<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ExampleController<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">final<\/span> ExampleServiceClient exampleServiceClient;\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">ExampleController<\/span><span class=\"hljs-params\">(ExampleServiceClient exampleServiceClient)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.exampleServiceClient = exampleServiceClient;\r\n    }\r\n\r\n    <span class=\"hljs-meta\">@GetMapping(\"\/example\")<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title function_\">getExample<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> exampleServiceClient.getExample();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>By following the steps above, you can achieve load balancing using Feign and Ribbon. Feign will retrieve a list of available instances from the service registry based on the service name specified in the @FeignClient annotation, and then use Ribbon for load balancing to distribute requests to different instances.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Feign is a declarative web service client that works alongside load balancers like Ribbon to achieve load balancing. To implement load balancing using Feign, follow these steps: Add dependencies for Feign and Ribbon. Add the following dependencies to the project&#8217;s pom.xml file: &lt;dependencies&gt; &lt;!&#8211; \u6dfb\u52a0Feign\u4f9d\u8d56 &#8211;&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; &lt;artifactId&gt;spring-cloud-starter-openfeign&lt;\/artifactId&gt; &lt;\/dependency&gt; &lt;!&#8211; \u6dfb\u52a0Ribbon\u4f9d\u8d56 &#8211;&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18769","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How can load balancing be achieved in feign? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How can load balancing be achieved in feign?\" \/>\n<meta property=\"og:description\" content=\"Feign is a declarative web service client that works alongside load balancers like Ribbon to achieve load balancing. To implement load balancing using Feign, follow these steps: Add dependencies for Feign and Ribbon. Add the following dependencies to the project&#8217;s pom.xml file: &lt;dependencies&gt; &lt;!-- \u6dfb\u52a0Feign\u4f9d\u8d56 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; &lt;artifactId&gt;spring-cloud-starter-openfeign&lt;\/artifactId&gt; &lt;\/dependency&gt; &lt;!-- \u6dfb\u52a0Ribbon\u4f9d\u8d56 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T17:35:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T14:06:03+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How can load balancing be achieved in feign?\",\"datePublished\":\"2024-03-15T17:35:51+00:00\",\"dateModified\":\"2024-03-21T14:06:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\"},\"wordCount\":145,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\",\"name\":\"How can load balancing be achieved in feign? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T17:35:51+00:00\",\"dateModified\":\"2024-03-21T14:06:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How can load balancing be achieved in feign?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How can load balancing be achieved in feign? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/","og_locale":"en_US","og_type":"article","og_title":"How can load balancing be achieved in feign?","og_description":"Feign is a declarative web service client that works alongside load balancers like Ribbon to achieve load balancing. To implement load balancing using Feign, follow these steps: Add dependencies for Feign and Ribbon. Add the following dependencies to the project&#8217;s pom.xml file: &lt;dependencies&gt; &lt;!-- \u6dfb\u52a0Feign\u4f9d\u8d56 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; &lt;artifactId&gt;spring-cloud-starter-openfeign&lt;\/artifactId&gt; &lt;\/dependency&gt; &lt;!-- \u6dfb\u52a0Ribbon\u4f9d\u8d56 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt; [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T17:35:51+00:00","article_modified_time":"2024-03-21T14:06:03+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How can load balancing be achieved in feign?","datePublished":"2024-03-15T17:35:51+00:00","dateModified":"2024-03-21T14:06:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/"},"wordCount":145,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/","name":"How can load balancing be achieved in feign? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T17:35:51+00:00","dateModified":"2024-03-21T14:06:03+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-load-balancing-be-achieved-in-feign\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How can load balancing be achieved in feign?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18769"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18769\/revisions"}],"predecessor-version":[{"id":52472,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18769\/revisions\/52472"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}