1. 程式人生 > >Dubbo學習筆記:註冊到zookeeper並實現遠端呼叫

Dubbo學習筆記:註冊到zookeeper並實現遠端呼叫

我們選擇zookeeper作為註冊中心。

一、首先要下載zookeeper,把程式解壓,進入conf,把zoo_sample.cfg修改為zoo.cfg。進入bin資料夾,在這裡開啟命令列,輸入zkserver.cmd,這樣就啟動了zookeeper。


可以看出,zookeeper註冊中心監聽的是2181埠。

二、建立服務提供者工程。

1. 建立一個springboot專案,在pom中新增以下內容:


2. 修改application.yml檔案為以下內容

spring:
  dubbo:
    application:
      name: dubbo-provider
    registry:
      address: zookeeper://localhost:2181
    protocol:
      name: dubbo
      port: 20880
    scan: com.chris.dubbo
scan是放服務的地方,要特別提醒的是,服務提供者scan的包名和消費者服務的包名必須一致,否則找不到提供的服務。
3.建立一個實體類UserModel
public class UserModel implements Serializable{
    private int id;
    private String name;
    private int age;
    private String address;

    public UserModel() {
    }

    public UserModel(int id, String name, int age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
注意必須實現序列化介面。

4. 在dubbo下寫一個介面檔案

public interface UserService {
    UserModel getUser(int id);
}
5.寫個實現類,實現這個介面
@Service(version = "1.0.0")
public class UserServiceImpl implements UserService {

    @Override
    public UserModel getUser(int id) {
        switch (id) {
            case 1:
                return new UserModel(id, "Kaly Chen", 36, "中國漢中");
            case 2:
                return new UserModel(id, "Devin Chen", 37, "中國西安");
            case 3:
                return new UserModel(id, "Chris Chen", 38, "中國上海");
            default:
                return new UserModel(id, "Fabio Chen", 39, "中國");

        }
    }
}
注意類上面加的註解是dubbo包下面的,不是SpringBoot下面的
import com.alibaba.dubbo.config.annotation.Service;

好了,可以運行了,在zookeeper中可以看到程式已經註冊,並且註冊了服務提供者。


三、建立服務消費者專案

1. 建立一個springboot專案,其建立過程和服務提供者一樣。

2. yml檔案內容是這樣:

server:
  port: 8081
spring:
  dubbo:
    application:
      name: dubbo-consumer
    registry:
      address: zookeeper://localhost:2181
    scan: com.chris.dubbo

由於8080埠已經被服務提供者佔用,我們將消費者埠改為其他值。

3. UserModel和UserService可以複製過來。另外建立一個服務類,內容是這樣:

@Service
@Component
public class UserServiceImpl {
    @Reference(version = "1.0.0")
    private UserService userService;

    public UserModel getUser(int id) {
        return userService.getUser(id);
    }
}

這裡的註解是SpringBoot包下面的@Service.

4. 建立controller,實現對service的呼叫

@RestController
public class UserController {
    @Autowired
    UserServiceImpl userService;

    @RequestMapping("/getUser")
    public UserModel getUSer(int id) {
        return userService.getUser(id);
    }
}

好了,也跑起來。看看已經在zookeeper中進行了註冊。

嘗試在瀏覽器中輸入http://192.168.2.19:8081/getUser?id=4

結果:


相關推薦

Dubbo學習筆記註冊zookeeper實現遠端呼叫

我們選擇zookeeper作為註冊中心。 一、首先要下載zookeeper,把程式解壓,進入conf,把zoo_sample.cfg修改為zoo.cfg。進入bin資料夾,在這裡開啟命令列,輸入zkserver.cmd,這樣就啟動了zookeeper。 可以看出,zook

Python學習筆記bisect模塊實現二分搜索

筆記 class tro -s clas range mar block 圖片   在Python中可以利用bisect模塊來實現二分搜索,該模塊包含函數只有幾個: import bisect L = [1,3,4,5,5,5,8,10] x = 5 bisect.

Java技術學習筆記過濾器鏈的實現方法、配置和案例分析

今天給大家分享的是Java技術學習筆記:過濾器鏈的實現方法、配置和案例分析。 過濾器能夠對網站中的各種內容進行過濾(頁面、Servlet、圖片、檔案),可以在網站內容請求和響應時進行一些操作,完成一些通用的功能。 過濾器鏈 在專案中可以建立多個過濾器,網站內容可能會經過多個過濾器,多個過濾器就形成了過濾

小程式學習筆記迴圈陣列顯示內容

使用上一篇中的條件渲染框架。 index.js: //index.js //獲取應用例項 const app = getApp() Page({ data: { boolean: fa

第一行程式碼學習筆記關於BroadcastReceiver的實現方式

最近在學習郭霖大神的第一行程式碼第二版,在進行自定義廣播部分的例項練習時發現點選按鈕後未能接收到廣播訊息,經過程式碼排查和度娘查詢才知道原來是8.0版本開始已經不支援大部分的靜態註冊廣播了,然後結合網友們提供的方法並進行測試總結下: 方法1 動態註冊 既然靜態

TensorFlow北大公開課學習筆記-8 復現vgg16實現圖片識別

注:本系列文章主要是復現北京大學TensorFlow筆記中的程式碼,方便以後使用,並沒有詳細講解流程,因為我並不是專門做教程的。何況北大的教程講的已經很好了,有需要了解詳細過程的可以去看北大的教程哈。 一,app.py #coding:utf-8 import

Dubbo學習筆記No provider available for the service ...異常問題的解決

剛開始學習dubbo,先跑了一下github上面down下來的demo,開洞zookeeper,執行provider和consumer,實現遠端呼叫。然後就自己敲程式碼,對邏輯做一點靈活性的改變。我也指導真正敲起程式碼來,就會踩到坑。果然,提供者能夠成功註冊,執行消費者就找

dubbo學習筆記 第一章 zookeeper安裝配置

       dubbo的實際使用中,基本都是使用zookeeper來管理它的服務,以及實現分散式呼叫。至於zookeeper是什麼,具有什麼使用者,大家可以百度搜索瞭解一下。實際生產環境中,zookeeper的應用服務數目,基本都是奇數個,這是由於它的選舉演算法決定的:z

cocos2dx學習筆記自定義動作實現圓周運動

最近在翻帖子的時候發現很多大牛都自己實現自定義動作,而不是通過各種動作進行組合,正好最近需要一個圓周運動的效果,就自己寫了一個自定義的動作,這裡備註下大致的實現思路。 Contents[hide] 備註: 該動作並未實際應用在遊戲中,可能有b

MVC學習筆記MVC實現用戶登錄驗證ActionFilterAttribute用法實現統一授權

重置 ids filter .config detail close login out gif 在項目下新建一個文件夾來專門放過濾器類,首先創建一個類LoginFilter,這個類繼承ActionFilterAttribute。用來檢查用戶是否登錄和用戶權限。: u

學習筆記Android SQLite,實現SQLite基本CRUD操作的Demo

package com.steven.mydatabasetest; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; im

Zookeeper學習筆記簡單註冊中心

  zookeeper可以作為微服務註冊中心,spring cloud也提供了zookeeper註冊中心的支援。   本文介紹如何實現一個簡單的zookeeper註冊中心,主要的實現方式: n個服務提供者對外提供http介面獲取資料,這些服務提供者把自己的主機、埠資訊註冊到zook

Dubbo學習筆記001---分散式服務呼叫_Dubbo簡介_依賴zookeeper做為註冊中心進行服務註冊與發現

Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。

9.Laravel5學習筆記在laravel中註冊自己的服務到容器中

pri script -128 ring nts date require 一次 name 問題描寫敘述 或許標題寫的不夠清楚。實際情況是,在我使用laravel的過程中。須要將自己的一個類,通過服務提供者註冊到IOC容器中,可是在實際操作過程中。

學習筆記矩陣的基本運算的實現

for int size data stdin mat 轉置 span font 2017-09-05 21:33:33 writer:pprp 昨天開始就上課了,沒有整天整天的時間去編代碼了,充分抓住每天晚上的時間吧, 今天下午預習了一下線性代數中矩陣最基本的運算,今晚就

Python學習筆記_05:使用Flask+MySQL實現用戶登陸註冊以及增刪查改操作

英文博客 註冊頁面 con 實現 sof 來源 doc 學習過程 microsoft 前言:本文代碼參考自兩篇英文博客,具體來源點擊文末代碼鏈接中文檔說明。 運行效果: 首頁: 註冊頁面: 登陸界面: 管理員登陸後界面: 添加、刪除、修改和查詢員工所

Dubbo學習筆記5Dubbo整體框架分析

什麽 資源 AD 文本文件 font ren factor exporter 服務提供者 Dubbo的分層架構 本文將簡單介紹Dubbo的分層架構設計,如下圖是Dubbo官方的整體架構圖: Dubbo官方提供的該架構圖很復雜,一開始我們沒必要深入細節,下面我們簡單介紹

Dubbo學習筆記10Dubbo服務消費方啟動流程源碼分析

exec checked 自己 當前 In rpc mod png collect 同理我們看下服務消費端啟動流程時序圖: 在《Dubbo整體架構分析》一文中,我們提到服務消費方需要使用ReferenceConfig API來消費服務,具體是調用代碼(1)get()方法來

SpringMVC學習筆記單例與發問題

一個 獲得 app parseint 本地服務 屬性 als min c學習 Spring中的Bean默認都是單例(singleton),Spring中Bean的scope屬性有五種類型: singleton 表示在spring容器中的單例,通過spring容器獲得該be

Python學習筆記bisect模組實現二分搜尋

  在Python中可以利用bisect模組來實現二分搜尋,該模組包含函式只有幾個: import bisect L = [1,3,4,5,5,5,8,10] x = 5 bisect.bisect_left(L,x) # 3 # 在L中查詢x,x存在時返回x最左側的位置,x不存在返回應該插入