容錯
減少延遲/提高效能
可用性負載均衡
總而言之,其實目的只有乙個,」使用者體驗「。
分布式系統是由使用分發中介軟體連線的自治計算機組成的網路。它們有助於共享不同的資源和功能,為使用者提供單一且整合的連貫網路。
1)在伺服器(虛擬機器)上安裝zookeeper(我這裡使用docker安裝)。
(1)去docker-cn.com獲取映象加速位址
(3)使用docker run --name zk01 -p 2181 --restart always -d zookeeper命令安裝zookeeper
(4)使用docker ps命令檢視程序,至此zookeeper已安裝完成,具體的安裝文件請參照
2)建立服務提供者,服務消費者(我使用的開發工具是idea)。
(1)new project 選擇 empty project
(2)建立乙個子工程作為服務提供者。
2.1 new model 選擇spring initalizr為了測試方便引入web模組。
2.2 建立乙個service
package com.example.ticket.service;
public inte***ce ticketservice
2.3 建立serviceimpl,注意引入的包
package com.example.ticket.service;
import com.alibaba.dubbo.config.annotation.service;
import org.springframework.stereotype.component;
@component
@service //將服務發布出去
public class ticketserviceimpl implements ticketservice
}
2.4 引入dubbo和zklient相關依賴
com.alibaba.boot
dubbo-spring-boot-starter
0.1.0
com.github.sgroschupf
zkclient
0.1
2.5 配置dubbo的掃瞄包和註冊中心位址
#當前應用的名稱
#註冊中心的位址
#掃瞄哪些包(發布什麼內容)
dubbo.scan.base-packages=com.example.ticket.service
(3)子工程作為服務消費者。
3.1 new model 選擇spring initalizr為了測試方便引入web模組。
3.2 建立乙個userservice
3.3 引入dubbo和zklient相關依賴
com.alibaba.boot
dubbo-spring-boot-starter
0.1.0
com.github.sgroschupf
zkclient
0.1
3.4 配置dubbo的註冊中心位址
#應用名稱
#註冊中心的位址
3.5 將所需服務提供者工程的service copy過來(一定要全類名相同),之後的目錄結構如下圖
3.6 編寫userservice
package com.example.user.service;
import com.alibaba.dubbo.config.annotation.reference;
import com.example.ticket.service.ticketservice;
import org.springframework.stereotype.service;
@service
public class userservice
}
至此,乙個簡單的分布式系統就搭建完畢。 一文帶你徹底搞懂ThreadLocal
共享變數一直是併發中的老大難問題,每個執行緒都對它有操作權,所以執行緒之間的同步很關鍵,鎖也就應運而生。這裡換乙個思路,是否可以把共享變數私有化?即每個執行緒都擁有乙份共享變數的本地副本,每個執行緒對應乙個副本,同時對共享變數的操作也改為對屬於自己的副本的操作,這樣每個執行緒處理自己的本地變數,形成...
一文帶你搞懂python中的property
通常我們在獲得變數的一些私有屬性時,必須通過方法來獲取私有屬性,並不能直接訪問 修改其數值的時候也是要通過方法去修改,這樣非常的不方便 所以python提供了一種方式,將呼叫方法的的形式轉變為訪問屬性,這樣使用非常方便 class student def init self 這是乙個私有屬性 sel...
一文搞懂transform skew
目錄 如何理解斜切 skew,先看乙個 demo。在下面的 demo 中,有 4 個正方形,分別是 紅色 不做 skew 變換,綠色 x 方向變換,藍色 y 方向變換,黑色 兩個方向都變換,拖動下面的滑塊可以檢視改變 skew 角度後的效果。切換 selector 可以設定 transform or...