spring cloud Ribbon 自定義規則

2021-09-29 20:41:56 字數 2075 閱讀 3712

**

spring cloud ribbon 自定義規則分為兩種方式,第一種是通過**配置,第二種是通過配置檔案;

第一種:通過**配置:

建立註冊中心,服務提供者,服務呼叫者,這裡不再詳述,本文是在建立好這些基礎之上,實現自定義規則,本文自定義的規則比較簡單,只是為了測試怎樣實現自定義規則,自定義規則是始終呼叫第乙個url服務,同時本文也自定義了ping,

本文的工程目錄結構:

1.建立好以上三個服務後,自定義規則在呼叫者模組實現,首先建立myrule類,繼承abstractloadbalancerrule 類,也可以實現irule,但是實現這個類,在啟動時使用iloadbalancer 一直不能注入bean ,報空指標異常,所以就繼承了它的子類abstractloadbalancerrule 。

public class myrule extends abstractloadbalancerrule 

@override

public server choose(object o)

return servers.get(0); // 始終返回第乙個服務

}@override

public void initwithniwsconfig(iclientconfig iclientconfig)

}

2.建立自定義的ping,未設定規則,需要可以自行定義:

public class myping implements iping 

}

3.建立 myconfig類,注意新增@configuration註解;

@configuration  //注意新增註解

public class myconfig

@bean

public iping getping()

}

@configuration

@ribbonclient(name="consumer",configuration=myconfig.class) //name:建議寫服務名稱 configuration:配置類

public class cloudproviderconfig

4.服務呼叫者的 controller

@restcontroller

@configuration

public class invokercontroller

}

服務提供者的controller

@restcontroller

public class studenthandler ")

private string port;

public string index()

}

server:

port: 8020

啟動服務發現輸出的當前埠號,始終只有第乙個。

consumer: #這裡寫服務呼叫者應用名和提供者應用名都生效。

ribbon:

nfloadbalancerruleclassname: consumer.cloud.myrule

nfloadbalancerpingclassname: consumer.cloud.myping

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...

自定義控制項及自定義屬性

自定義控制項在android開發中的重要性,是不言而喻,眾人皆知的。希望通過這二天的學習,能讓大家了解自定義控制項的原理,熟悉自定義控制項的使用步驟,並能寫出一些普通的效果。內容介紹 1 使用系統控制項,實現自定義的效果,案例有 優酷環形選單 廣告條 viewpager 下拉列表 spinner 2...