说明:
Dubbo用于发布微服务、跨服务调用接口。
一、搭建zookeeper服务:
1.安装:
地址:https://blog.csdn.net/a526001650a/article/details/103667691
IP与端口配置为:172.16.122.129:2281
2.修改Zookeeper admin端口:
修改admin.serverPort=63010 #修改Zookeeper admin端口
二、使用dubbo发布/调用服务:
1.在发布/调用两个工程的pom中添加dubbo的maven依赖:
<dependencies>
<!-- 导入dubbo依赖包 -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<type>pom</type>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
</dependencies>
2.使用dubbo发布微服务(发布服务工程):
(1)启动类中添加@EnableDubbo:
@SpringBootApplication
@EnableDubbo //注册服务
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class);
}
}
(2)application.yml配置dubbo+zookeeper信息:
spring:
application:
name: userservice
server:
port: 10001
dubbo:
application:
name: dubbo-userservice
config-center:
timeout: 30000 #超时时间
registry:
address: zookeeper://192.168.233.147:2181 #配置zookeeper服务器地址
protocol: zookeeper
check: false #false关闭检查,true时检查注册中心是否存在,不存在就报错
metadata-report:
address: zookeeper://192.168.233.147:2181 #配置zookeeper服务器地址
timeout: 30000 #超时时间
protocol: #配置协议相关
name: dubbo #协议名称
port: 20880 #端口
monitor:
protocol: redister #监控中心等信息
(3)使用@DubboService声明服务接口实现:
@DubboService //@DubboService声明为服务接口
public class UserService implements IUserService {
@Override
public String getUser(String userNo) {
return "跨服务调用接口成功";
}
}
3.使用dubbo跨服务调用接口(调用工程):
(1)启动类中添加@EnableDubbo:
@SpringBootApplication
@EnableDubbo //发现服务
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class);
}
}
(2)application.yml配置dubbo+zookeeper信息:
spring:
application:
name: usersweb
server:
port: 10002
dubbo:
application:
name: dubbo-userweb
config-center:
timeout: 30000 #超时时间
registry:
address: zookeeper://192.168.233.147:2181 #配置zookeeper服务器地址
protocol: zookeeper
check: false #false关闭检查,true时检查注册中心是否存在,不存在就报错
metadata-report:
address: zookeeper://192.168.233.147:2181 #配置zookeeper服务器地址
timeout: 30000 #超时时间
monitor:
protocol: redister #监控中心等信息
consumer:
check: false #false关闭检查,true时检查服务发布者是否存在,不存在就报错
timeout: 30000 #超时时间
(3)Controller中调用服务接口:
@RestController
public class UserController {
//@DubboReference自动创建实例,类似@Autowired
@DubboReference(loadbalance = "roundrobin") //loadbalance指定负载均衡为RoundRobin规则
private IUserService iUserService;
@GetMapping(value = "/user")
public String user(@RequestParam String userNo) {
return iUserService.getUser(userNo).toString();
}
}
三、使用Dubbo-Admin管理服务:
1.安装npm环境:
(1)下载并安装node.js(npm编译环境):
https://nodejs.org/en/
(2)添加npm代理镜像(windows环境):
安装nrm:
C:\Users\Administrator>npm install -g nrm
查看镜像列表:
C:\Users\Administrator>nrm ls
选择taobao镜像:
C:\Users\Administrator>nrm use taobao
2.下载Dubbo-Admin源码(此处放在D:\目录):
https://github.com/apache/dubbo-admin/
3.使用IntelliJ IDEA打开并运行dubbo-admin-master/dubbo-admin-server(Dubbo-Admin后台服务):
(1)修改dubbo-admin-server工程application.properties中的zookeeper地址(与zookeeper同台主机时不用改):
admin.registry.address=zookeeper://192.168.233.147:2181 #zookeeper主机地址
admin.config-center=zookeeper://192.168.233.147:2181
admin.metadata-report.address=zookeeper://192.168.233.147:2181
(2)运行启动类org.apache.dubbo.admin.DubboAdminApplication.java,正式使用需打成jar包部署到服务器中运行。
4.安装/运行dubbo-admin-master/dubbo-admin-ui(Dubbo-Admin前端管理页面):
(1)进入dubbo-admin-ui目录,执行npm install命令安装:
D:\dubbo-admin-master\dubbo-admin-ui>npm install
(2)进入dubbo-admin-ui目录,执行npm run dev命令运行。
D:\dubbo-admin-master\dubbo-admin-ui>npm run dev
5.打开浏览器,进入管理页面查看效果:
http://localhost:8081