Ribbon實現Cloud負載均衡

安裝Zookeeper要先安裝JDK環境

解壓

tar -zxvf /usr/local/develop/jdk-8u191-linux-x64.tar.gz -C /usr/local/develop

配置JAVA_HOME

vim /etc/profile

export JAVA_HOME=/usr/local/develop/jdk1.8.0_191

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib

讓環境變量生效

source /etc/profile

java -version?查看jdk版本?至此JDK安裝完成

which java 查看調用的是安裝在哪里的java

做Zookeeper做服務治理(安裝Zookeeper)

Apache ZooKeepericon-default.png?t=N7T8https://zookeeper.apache.org/

進入Zookeeper 包目錄

cd /usr/local/develop/

解壓

tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/develop

進入配置文件 ?

cd /usr/local/develop/apache-zookeeper-3.9.1-bin/conf

復制文件

cp zoo_sample.cfg zoo.cfg

編輯文件?

vim zoo.cfg

現在可以進入bin目錄直接啟動

cd /usr/local/develop/apache-zookeeper-3.9.1-bin/bin

啟動Zookeeper

./zkServer.sh start

如果需要配置Zookeeper為系統服務

vim /etc/systemd/system/zookeeper.service

[Unit]
Description=Apache ZooKeeper server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/develop/apache-zookeeper-3.9.1-bin/bin/zkServer.sh start
ExecStop=/usr/local/develop/apache-zookeeper-3.9.1-bin/bin/zkServer.sh stop
User=root
Group=root
Restart=on-failure
Environment="JAVA_HOME=/usr/local/develop/jdk1.8.0_191"

[Install]
WantedBy=multi-user.target

是配置生效

systemctl daemon-reload

開機自啟 ?看自己實際需要

systemctl enable zookeeper.service

systemctl start zookeeper.service ? ?啟動
systemctl stop zookeeper.service ? ?停止
systemctl restart zookeeper.service ? ?重啟
systemctl status zookeeper.service ? 查看狀態

admin.serverPort=8888指定了ZooKeeper的管理服務器端口。這個管理服務器提供了一個簡單的HTTP接口,用于獲取ZooKeeper服務的狀態和性能指標等信息。通過訪問這個端口,你可以獲取到ZooKeeper實例的各種管理信息,比如運行狀態、連接數、節點數量等。

默認情況下,ZooKeeper的管理界面并不提供一個全面的Web界面來瀏覽這些信息,而是提供了一個簡單的HTTP服務,通過發送HTTP請求到這個端口,可以獲取到JSON格式的狀態信息。

IP:8888/commands/stat

搭建Cloud項目

創建父項目,只做依賴版本管理

pom.xml

 <!-- 統一管理jar包版本 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.12</junit.version><log4j.version>1.2.17</log4j.version><lombok.version>1.16.18</lombok.version><mysql.version>5.1.47</mysql.version><druid.version>1.1.16</druid.version><mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version></properties><!-- 子模塊繼承之后,提供作用:鎖定版本+子modlue不用寫groupId和version  --><dependencyManagement><dependencies><!--spring boot 2.2.2--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.2.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--spring cloud Hoxton.SR1--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency><!--spring cloud alibaba 2.1.0.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><optional>true</optional></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.2.2.RELEASE</version><configuration><fork>true</fork><addResources>true</addResources></configuration></plugin></plugins></build>

生產者模塊

pom.xml

 <dependencies><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-zookeeper-discovery --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

application.yml

server:port: 8081spring:application:name: cloud-provider-paymentcloud:zookeeper:connect-string: 222.22.22.2:2181

啟動類

業務類

按相同套路 再創建個8082

消費者模塊

依賴

 <dependencies><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-zookeeper-discovery --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

啟動類

業務類

配置類

雖然沒有直接引入Ribbon? Ribbon依賴通過以下依賴已經在了

?<dependency>
? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? ? ? <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>

application.yml

如何改變Ribbon負載均衡策略

啥意思??

就是要放在啟動類掃描不到的地方

重啟8083消費者? 可以自己多點點? ?現在是隨機的

如果需要恢復輪詢可以將啟動類上的@RibbonClient注釋掉

這樣即使MySlefRule這個類存在,也沒有效果? ?因為在啟動類所在包以外

Ribbon負載均衡原理

負載均衡算法:rest接口第幾次請求數%服務器集群總數量=實際調用服務器位置下標,每次服務重啟后Rest接口計數從1開始

上面 生產者總共2個實例

List? ?2個實例

index=1

1%2=1? ? 這個1? 做為list.get(1%2)

index變成2

2%2=0? ?這個0? 做為list.get(1%2)

index變成3

3%2=1? ?這個1? 做為list.get(3%2)

index變成4

4%2=0? ?這個0? 做為list.get(4%2)

以此類推

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718116.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

npm install 一直在等待sill idealTree buildDeps

最近在整vue的前端項目&#xff0c;npm install的時候一直在等待&#xff0c;記錄下處理過程。 1.檢查當前npm鏡像的地址 輸入命令&#xff1a;"npm config get registry"&#xff0c;如果結果是"https://registry.npmjs.org/"。 更換下地址&#xff0c…

Windows Server 各版本搭建文件服務器實現共享文件(03~19)

一、Windows Server 2003 打開服務器&#xff0c;點擊左下角開始?管理工具?管理您的服務器?添加或刪除角色 點擊下一步等待測試 勾選自定義配置&#xff0c;點擊下一步 選擇文件服務器&#xff0c;點擊下一步 勾選設置默認磁盤空間&#xff0c;數據自己更改&#xff0c;最…

【JavaEE】_Spring MVC 項目傳參問題

目錄 1. 傳遞單個參數 1.1 關于參數名的問題 2. 傳遞多個參數 2.1 關于參數順序的問題 2.2 關于基本類型與包裝類的問題 3. 使用對象傳參 4. 后端參數重命名問題 4.1 關于RequestPara注解 1. 傳遞單個參數 現創建Spring MVC項目&#xff0c;.java文件內容如下&#xff…

2024年3月計劃

根據規劃&#xff0c;為了要考慮把產品代碼吃透。先對于計算幾何&#xff0c;圖像處理&#xff0c;測量學基礎進行 當然&#xff0c;也要把ue繼續進行著。ue的rpg和底層渲染。收集下虛幻商城的免費資源&#xff0c;萬一以后做獨立游戲用得到。其他的可以暫時不進行。因為ue的工…

Apache Flink連載(三十七):Flink基于Kubernetes部署(7)-Kubernetes 集群搭建-3

?? 個人主頁:IT貧道-CSDN博客 ?? 私聊博主:私聊博主加WX好友,獲取更多資料哦~ ?? 博主個人B棧地址:豹哥教你學編程的個人空間-豹哥教你學編程個人主頁-嗶哩嗶哩視頻 目錄

AI-數學-高中-32-概率-樣本空間與隨機事件

原作者視頻&#xff1a;【概率】【一數辭典】1樣本空間與隨機事件_嗶哩嗶哩_bilibili 1.隨機試驗&#xff1a; 2.樣本點、樣本空間、有限樣本空間&#xff1a; 示例1 示例2 3.事件&#xff1a; 示例&#xff1a;

PAT基礎練習

本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”&#xff0c;要求按下列格式打印 ************ *****所謂“沙漏形狀”&#xff0c;是指每行輸出奇數個符號&#xff1b;各行符號中心對齊&#xff1b;相鄰兩行符號數差2&#xff1b;符號數先從大到小順序遞減…

自己本地模擬內存數據庫增刪改查

目錄 學習初衷準備代碼實現結果感謝閱讀 學習初衷 用于滿足自己的測試要求&#xff0c;不連接數據庫&#xff0c;也不在意數據丟失 準備 maven依賴 org.springframework.boot spring-boot-starter-test test 代碼實現 內存數據庫&#xff08;InMemoryDatabase&#xff0…

[AutoSar]BSW_Com08 CAN driver 模塊介紹及參數配置說明 (二)

目錄 關鍵詞平臺說明一、CanControllers二、CanTxProcessing三、CanFilterMask四、CanHardwareObjects五、CanGeneral 關鍵詞 嵌入式、C語言、autosar、OS、BSW 平臺說明 項目ValueOSautosar OSautosar廠商vector &#xff0c;芯片廠商TI 英飛凌編程語言C&#xff0c;C編譯器…

游戲引擎分層簡介

游戲引擎分層架構&#xff08;自上而下&#xff09; 工具層&#xff08;Tool Layer&#xff09; 在一個現代游戲引擎中&#xff0c;我們最先看到的可能不是復雜的代碼&#xff0c;而是各種各樣的編輯器&#xff0c;利用這些編輯器&#xff0c;我們可以制作設計關卡、角色、動畫…

數據類型和變量

1.數據類型 在Java中數據類型主要分為兩類&#xff1a;基本數據類型和引用數據類型。 基本數據類型有四類八種&#xff1a; 1. 四類&#xff1a;整型、浮點型、字符型以及布爾型 2.八種&#xff1a; 整形是分為如上四種 byte short int long 浮點型分為 float 和double …

Docker Compose系列--搭建halo與mysql

原文網址&#xff1a;使用Docker Compose系列--搭建halo與mysql_IT利刃出鞘的博客-CSDN博客 簡介 說明 本文介紹如何使用Docker Compose搭建halo與mysql。 官網網址 使用 Docker 部署 Halo 和 MySQL | Halo Documents Docker Compose搭建mysql 見&#xff1a;Docker Com…

【大廠AI課學習筆記NO.64】機器學習開發框架

機器學習開發框架本質上是一種編程庫或工具&#xff0c;目的是能夠讓開發人員更容易、更快速地構建機器學習模型。 機器學習開發框架封裝了大量的可重用代碼&#xff0c;可以直接調用&#xff0c;目的是避免“重復造輪子’大幅降低開發人員的開發難度&#xff0c;提高開發效率…

軟考高級:候選碼、主碼、全碼、外碼、主屬性、主鍵、主關鍵字、非主屬性概念和例題

一、AI 講解 候選碼、主碼、全碼、外碼、主屬性、主鍵、主關鍵字、非主屬性是數據庫設計和數據建模中的基本概念&#xff0c;特別是在關系數據庫模型中。下面將對這些概念進行簡單講解&#xff0c;并給出相應的例子。 概念講解 候選碼&#xff08;Candidate Key&#xff09;…

Spring框架精髓:帶你手寫IoC

個人名片&#xff1a; &#x1f43c;作者簡介&#xff1a;一名大三在校生&#xff0c;喜歡AI編程&#x1f38b; &#x1f43b;???個人主頁&#x1f947;&#xff1a;落798. &#x1f43c;個人WeChat&#xff1a;hmmwx53 &#x1f54a;?系列專欄&#xff1a;&#x1f5bc;?…

足球青訓俱樂部|基于Springboot的足球青訓俱樂部管理系統設計與實現(源碼+數據庫+文檔)

足球青訓俱樂部管理系統目錄 目錄 基于Springboot的足球青訓俱樂部管理系統設計與實現 一、前言 二、系統設計 1、系統架構設計 三、系統功能設計 1、管理員登錄界面 2、公告信息管理界面 3、學員管理界面 4、商品信息管理界面 5、課程安排管理界面 四、數據庫設計…

ArcGIS Runtime For Android開發之符號化和圖層渲染

一、用Symbol對要素進行符號化 首先我們看一下Symbol 接口關系&#xff1a; 1、SimpleFillSymbol 他是用來進行簡單的Graphic面要素填充符號化的&#xff0c;它可以設置要素的填充顏色&#xff0c;邊線顏色、線寬&#xff0c;其用法如下&#xff1a; Polygon polygonnew Po…

常用的電阻、電容的種類和應用場合?

電阻的 a.按阻值特性:固定電阻、可調電阻、特種電阻(敏感電阻)&#xff0c;不能調節的,我們稱之為固定電阻,而可以調節的,我們稱之為可調電阻.常見的例如收音機音量調節的,主要應用于電壓分配的,我們稱之為電位器. b.按制造材料:碳膜電阻、金屬膜電阻、線繞電阻&#xff0c;捷…

Go切片特點筆記

特點 1.只有append操作2.支持子切片3.內存共享問題 1.只有append操作 不支持隨機增刪 2.支持子切片 數組和切片都可以通過[start:end] 的形式 來獲取子切片: 1.arr[start:end],獲得[start,end)之間的元素。 2.arr[:end],獲得[0,end)之間的元素。 3.arr[start:],獲得[start,l…

二叉樹葉節點個數,根節點個數,樹的深度,查找數據為x的節點

文章目錄 一、計算二叉樹葉節點個數二、葉節點的個數 引言&#xff1a;補充樹的概念 節點的度&#xff1a;一個節點含有的子樹的個數稱為節點的度 葉節點或終端節點&#xff1a;度為0的節點稱為葉節點 節點的層次&#xff1a;從根開始為第一層&#xff0c;以此類推 樹的度&…