springBoot+dubbo+zookeeper

一、前言

? ? ? ? ? ? 網上各種各樣的列子,大部分都是復制,粘貼!按說明操作完全搭建不起來,決定親自操作一把!@供大家學習參考。

1、環境簡紹

? ? centOS7、VMware15.0.0、zookeeper-3.4.10

1、安裝zookeeper,怎么下載就不說了,如果下載都不會,您嘞該轉行了!開個玩笑!!

xft客戶端將zookeeper-3.4.10.tar.gz上傳到/home/zookeeper中(看自己情況)

解壓tar -zxvf zookeeper-3.4.10.tar.gz

修改配置文件

cp ?/home/zookeeper/zookeeper-3.4.10/conf/zoo_sample.cfg ? ? /home/zookeeper /zookeeper-3.4.10/conf/zoo.cfg (其實就是將zoo_sample.cfg復制一份,名字修改為zoo.cfg)

設置 vim zoo.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting anacknowledgement

syncLimit=5

# the directory where the snapshot isstored.

# do not use /tmp for storage, /tmp here isjust

# example sakes.

dataDir=/opt/zookeeper/data

# the port at which the clients willconnect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle moreclients

#maxClientCnxns=60

#

# Be sure to read the maintenance sectionof the

# administrator guide before turning onautopurge.

#

#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain indataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable autopurge feature

#autopurge.purgeInterval=1

dataLogDir=/opt/zookeeper/dataLog

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

備注:黑體部分是我們需要配置的地方

dataDir 、dataLogDir創建出來

mkdir /opt/zookeeper/data

mkdir /opt/zookeeper/dataLog

?在/opt/zookeeper/data目錄下新建myid并設置server.1中.后面的數字

vim myid

1

:wq!

cat myid

1

將master slave1 slave2映射到host的文件中

vim /etc/host

192.168.6.10 master

192.168.6.11 slave1

192.168.6.12 slave2

:wq!

設置環境變量

vim /etc/profile

export ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.10

export PATH=$PATH:$ZOOKEEPER_HOME/bin

:wq!

設置開機啟動

在/etc/rc.d/init.d目錄下新建zookeeper,并編輯

vim zookeeper

#!/bin/bash

#chkconfig: 2345 10 90

#description: service zookeeper

export JAVA_HOME=/usr/java/jdk1.8.0_11

export ZOO_LOG_DIR=/opt/zookeeper/dataLog

ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.10

su root ${ZOOKEEPER_HOME}/bin/zkServer.sh? "$1"

:wq!

為新建的/etc/rc.d/init.d/zookeeper文件添加可執行權限,命令是:

chmod?+x ?/etc/rc.d/init.d/zookeeper

?把zookeeper這個腳本添加到開機啟動項里面,命令是:

chkconfig?--add ? zookeeper

如果想看看是否添加成功,命令是:

??????chkconfig? --list

查看2181端口是否啟用,執行命令:

? lsof? -i:2181

啟動zookeeper

cd /home/zookeeper/zookeeper-3.4.10/bin

./ zkServer.sh start

停止?./zkServer.shstop

查看狀態 ./zkServer.sh status

復制該機器上的zookeeper-3.4.10到其他服務器上(如果不想集群,下面繞過!)

cd /home/

scp -r zookeeper slave1:/home/

scp -r zookeeper slave2:/home/

slave1、slave2(slave1、slave2上面已經加入到hosts文件中了,否則你的用ip地址)做上面相同的配置

查看zookeeper啟動狀態

方法一

service??zookeeper? status

方法二

lsof ?-i:2181

方法三

netstat ? -lntup

客戶端連接

cd /home/zookeeper/zookeeper-3.4.10/bin/

./zkCli.sh -server 192.168.6.11:2181

二、上面環境準備好后就可以開發項目了

1、用IDEA開發(eclipse也是可以的,只是eclipse對xml提示太差!)

2、先看下項目結構maven項目,按結構創建好項目

sb_parent是maven父工程

3、配置pom.xml

sb_parent是maven父工程?pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

? ? ? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

? ? ? ? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

? ? <modelVersion>4.0.0

? ? <groupId>com.hewanqiang

? ? <artifactId>sb_parent

? ? <packaging>pom

? ? <version>1.0-SNAPSHOT

? ? ? ? <module>spring-boot-dubbo-provider

? ? ? ? <module>spring-boot-dubbo-consumer

? ? ? ? ? ? ? ? <groupId>org.springframework.boot

? ? ? ? ? ? ? ? <artifactId>spring-boot-dependencies

? ? ? ? ? ? ? ? <version>2.0.6.RELEASE

? ? ? ? ? ? ? ? <type>pom

? ? ? ? ? ? ? ? <scope>import

? ? ? ? ? ? <groupId>org.springframework.boot

? ? ? ? ? ? <artifactId>spring-boot-starter-web

? ? ? ? ? ? <groupId>org.springframework.boot

? ? ? ? ? ? <artifactId>spring-boot-actuator

? ? ? ? ? ? <groupId>com.alibaba.boot

? ? ? ? ? ? <artifactId>dubbo-spring-boot-starter

? ? ? ? ? ? <version>0.2.0

? ? ? ? ? ? <groupId>org.apache.zookeeper

? ? ? ? ? ? <artifactId>zookeeper

? ? ? ? ? ? <version>3.4.9

? ? ? ? ? ? <groupId>com.github.sgroschupf

? ? ? ? ? ? <artifactId>zkclient

? ? ? ? ? ? <version>0.1

</project>

spring-boot-dubbo-provider 配置pom.xml(默認的)

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

? ? ? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

? ? ? ? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

? ? <parent>

? ? ? ? <artifactId>sb_parent</artifactId>

? ? ? ? <groupId>com.hewanqiang</groupId>

? ? ? ? <version>1.0-SNAPSHOT</version>

? ? </parent>

? ? <modelVersion>4.0.0</modelVersion>

? ? <artifactId>spring-boot-dubbo-provider</artifactId>

</project>

將spring-boot-dubbo-provider安裝到本地倉庫


spring-boot-dubbo-consumer 配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

? ? ? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

? ? ? ? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

? ? <parent>

? ? ? ? <artifactId>sb_parent</artifactId>

? ? ? ? <groupId>com.hewanqiang</groupId>

? ? ? ? <version>1.0-SNAPSHOT</version>

? ? </parent>

? ? <modelVersion>4.0.0</modelVersion>

? ? <artifactId>spring-boot-dubbo-consumer</artifactId>

? ? <dependencies>

? ? ? ? <dependency>

? ? ? ? ? ? <groupId>com.hewanqiang</groupId>

? ? ? ? ? ? <artifactId>spring-boot-dubbo-provider</artifactId>

? ? ? ? ? ? <version>1.0-SNAPSHOT</version>

? ? ? ? </dependency>

? ? </dependencies>

</project>

spring-boot-dubbo-provider 項目類創建

IHelloService.java

HelloServiceImpl.java

DubboProvider.java


package com.alibaba.edas.boot;

public interface IHelloService {

StringsayHello(String str);

}

package com.alibaba.edas.boot;

import com.alibaba.dubbo.config.annotation.Service;

@Service //這里的 Service 注解是 Dubbo 提供的一個注解類,類的全名稱為

public class HelloServiceImplimplements IHelloService {

public StringsayHello(String name) {

return "Hello, " + name +" (from Dubbo with Spring Boot)";

? ? }

}

package com.alibaba.edas.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class DubboProvider {

public static void main(String[] args) {

SpringApplication.run(DubboProvider.class,args);

? ? }

}


application.properties

# Base packages to scan Dubbo Components (e.g @Service , @Reference)

dubbo.scan.basePackages=com.alibaba.edas.boot

dubbo.application.name=dubbo-provider-demo

dubbo.registry.address=zookeeper://192.168.255.10:2181


spring-boot-dubbo-consumer 項目類創建


DemoConsumerController.java

package com.alibaba.edas.boot;

import com.alibaba.dubbo.config.annotation.Reference;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class DemoConsumerController

{

@Reference //alibaba的注解 前提是已經導入了 spring-boot-dubbo-provider的jar包(用maven的install首先將其安裝到本地倉庫)

? ? private IHelloServicedemoService;

? ? @RequestMapping("/sayHello/{name}")//REST風格

? ? public StringsayHello(@PathVariable String name)

{

return demoService.sayHello(name);

? ? }

}

DubboConsumer.java

package com.alibaba.edas.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class DubboConsumer {

public static void main(String[] args) {

SpringApplication.run(DubboConsumer.class,args);

? ? }

}

application.properties

##server.port=8089 springBoot 同時啟動多個項目,需要修改端口

server.port=8089

dubbo.application.name=dubbo-consumer-demo

dubbo.registry.address=zookeeper://192.168.255.10:2181


運行 DubboProvider.java、DubboConsumer.java

登路dubbo管理控制臺(怎么安裝百度),下載對應.war扔進tomcat webapp下面就可以了,當然還需修改點東西@zookeeper注冊中心地址

http://192.168.255.10:8080/dubbo-admin

over!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容