Dubbo学习笔记:注册到zookeeper并实现远程调用
来源:互联网 发布:办公软件学校 编辑:程序博客网 时间:2024/05/21 10:36
我们选择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.dubboscan是放服务的地方,要特别提醒的是,服务提供者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);}
@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: 8081spring: dubbo: application: name: dubbo-consumer registry: address: zookeeper://localhost:2181 scan: com.chris.dubbo
由于8080端口已经被服务提供者占用,我们将消费者端口改为其他值。
3. UserModel和UserService可以复制过来。另外建立一个服务类,内容是这样:
@Service@Componentpublic class UserServiceImpl { @Reference(version = "1.0.0") private UserService userService; public UserModel getUser(int id) { return userService.getUser(id); }}
这里的注解是SpringBoot包下面的@Service.
4. 建立controller,实现对service的调用
@RestControllerpublic 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
结果:
阅读全文
0 0
- Dubbo学习笔记:注册到zookeeper并实现远程调用
- dubbo+zookeeper实现服务远程调用
- dubbo+zookeeper 简单实现远程接口调用
- dubbo+zookeeper实现服务远程调用
- Dubbo 学习2 Dubbo-Admin及服务注册到Zookeeper
- 实际工作中:----dubbo+zookeeper实现服务远程调用
- Dubbo学习笔记(三)------Zookeeper注册中心
- dubbo+zookeeper实现分布式调用
- Dubbo+Zookeeper远程调用服务以及管理
- dubbo学习总结-(2)dubbo+zookeeper注册中心
- Spring整合Dubbo,使用zookeeper作为注册中心,进行远程调用及负载均衡、自动失效转移(何志雄)
- Dubbo无法访问远程Zookeeper已注册服务的问题
- Dubbo注册中心zookeeper
- 本机搭建dubbo服务并依赖zookeeper注册中心
- zookeeper结合dubbo实现分布式接口调用
- dubbo注册到zookeeper很慢5秒一个
- Dubbo+Zookeeper+Spring的demo--远程调用初探
- dubbo学习笔记 第一章 zookeeper安装配置
- solr分词中的近义词处理
- layui页面加载简单模式
- Mybatis多个条件的查询
- Activity/Fragment生命周期变化
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- Dubbo学习笔记:注册到zookeeper并实现远程调用
- 对同一个标签奇偶行设置不同的样式
- Boosting总结
- spring boot+jpa+thymeleaf 练习
- 关于手机移动端的触屏的事件的加载的方法
- [NA]Lab6:正交多项式拟合
- Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)
- java开发中的异常处理
- 醒目!!!