spring cloud的兩種呼叫方式

2021-10-09 22:38:46 字數 1776 閱讀 5069

新建乙個spring-cloud專案

引入依賴包

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-ribbon

修改配置檔案

name: service-ribbon在工程的啟動類中,通過@enablediscoveryclient向服務中心註冊;並且向程式的ioc注入乙個bean: resttemplate;並通過@loadbalanced註解表明這個restremplate開啟負載均衡的功能。

@enablediscoveryclient

public static void main(string args)

@bean

@loadbalanced

resttemplate resttemplate() }

所有都配置好後,你就可以通過注入resttemplate,來呼叫其他服務

@autowired

resttemplate resttemplate;

public string hiservice(string name)

在ribbon中它會根據服務名來選擇具體的服務例項,根據服務例項在請求的時候會用具體的url替換掉服務名(service-hi)

另外:這裡面還有乙個負載均衡的點(@loadbalanced)

當resttemplate呼叫service-hi的hi介面時,因為用ribbon進行了負載均衡,如果service-hi在服務註冊中心上面註冊了多個例項,這時候就會輪流的呼叫service-hi多個埠的不同介面;

新建spring-cloud專案

匯入依賴包

org.springframework.cloud

spring-cloud-starter-feign

配置檔案(同上)

name: service-feign這時候就可以定義乙個feign介面,通過@ feignclient(「服務名」),來指定呼叫哪個服務。比如在**中呼叫了service-hi服務的「/hi」介面,

@feignclient(value = "service-hi")

public inte***ce schedualservicehi

這時候你就可以在你所需的位置通過注入該介面去呼叫該服務:如:

@autowired

schedualservicehi schedualservicehi;

public string sayhi(@requestparam string name)

SpringCloud兩種服務降級的方法

1.feign整合hystrix的降級 2.hystrix本身的降級 3.進行熔斷的處理 package com.mcloud.nis.knowledge.feign import com.alibaba.fastjson.jsonobject import com.mcloud.nis.knowl...

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...

Divide Two Integers 的兩種解法

divide two integers without using multiplication,division and mod operator.if it is overflow,return max int.解題思路 1.通過被除數減去除數來得到被除數中包含多少個除數,一直減到被除數小於等於...