準備
因為使用springboot2.0,需要jdk1.8
然后需要對springboot基本了解
搭建注冊中心(zookerper)
1、下載windows版本的zookerper
下載地址:https://zookeeper.apache.org/releases.html

image.png

image.png

image.png
2、修改配置文件并啟動

image.png
解壓后:

image.png
在conf文件夾下面將zoo.sample.cfg修改為zoo.cfg文件,

image.png
然后到bin目錄下,啟動zkServer.cnd就可以了

image.png
看一下zkEnv.cmd文件,這也是為什么剛才要修改為zoo.cfg文件,因為這里默認找的那個文件,所以你換成其他文件名也可以,只要和這里對應(yīng)就行

image.png
啟動成功,默認端口2181

image.png
安裝dubbo-admin(注冊中心的可視化管理平臺)
1、下載dubbo-admin
https://gitee.com/shyf2019/dubbo-admin

image.png
如果熟悉git,也可以用git命令下載,這個也是從github上面復(fù)制過來的
2、導(dǎo)入eclipse
因為它是maven項目,所以導(dǎo)入一個maven項目到eclipse,等待下載好他的依賴
3、修改配置文件,主要是zookerper地址

image.png
4.啟動項目后看效果
訪問localhost:7001

image.png
服務(wù)注冊
寫一個member服務(wù),注冊到zookerper上面
1、聚合項目member的目錄結(jié)構(gòu)

image.png
父模塊member兩個子模塊api和server
2、父模塊member
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
2、api模塊

image.png
在api模塊中就一個接口
3、server模塊

image.png
pom.xml
<dependencies>
<dependency>
<groupId>com.shyf.dubboA</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
</dependencies>
application.yml
server:
port: 9091
spring:
dubbo:
scan:
basePackages: com.shyf.service
application:
id: member-service
name: member-service
protocol:
id: dubbo
name: dubbo
port: 12345
registry:
id: my-registry
address: zookeeper://127.0.0.1:2181
MemberServerImpl.java
import org.springframework.stereotype.Component;
import com.alibaba.dubbo.config.annotation.Service;
@Service
@Component
public class MemberServiceIMpl implements MemberService{
@Override
public String getMember(String s) {
return "hello "+s;
}
}
啟動類MemberApp.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
@SpringBootApplication
@ComponentScan("com.shyf")
@EnableDubboConfiguration
public class MemberApp {
public static void main(String[] args) {
SpringApplication.run(MemberApp.class, args);
}
}
4、啟動server子模塊
查看dubbo-admin

image.png

image.png
5、發(fā)布api模塊
在dubbo中,服務(wù)的消費者需要依賴,服務(wù)生產(chǎn)者的服務(wù)接口
maven install api

image.png
服務(wù)調(diào)用
創(chuàng)建一個order項目,maven項目,作為服務(wù)的消費者
1、項目目錄

image.png
2、pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>com.shyf.dubboA</groupId>
<artifactId>api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
</dependencies>
3、application.yml
server:
port: 9093
4、spring-dubbo.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application id="member-service" name="member-service"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:protocol id="dubbo" name="dubbo" port="12345"/>
<dubbo:reference id="memberService" interface="com.shyf.service.MemberService" />
</beans>
5、OrderController.java
@RestController
public class OrderController {
@Autowired
private MemberService memberService;
@RequestMapping("/getOrder")
public Object getOrder(){
return memberService.getMember("ly");
}
}
6、啟動類OrderApp.java
@SpringBootApplication
@EnableDubboConfig
@ImportResource(locations={"spring-dubbo.xml"})
public class OrderApp {
public static void main(String[] args) {
SpringApplication.run(OrderApp.class, args);
}
}
7、啟動
查看dubbo-admin

image.png
8、訪問

image.png