20221116 Dubbo+Zookeeper
创始人
2024-01-25 20:07:46
0

  • Dubbo+Zookeeper实现分布式布局
    • 加入Zookeeper
    • Dubbo
    • 编写provider代码(简单示例)
      • 添加依赖
      • 代码
    • 编写consumer代码(简单示例)
      • 加入依赖
      • 代码
    • 加入Dubbo管理控制台

Dubbo+Zookeeper实现分布式布局

加入Zookeeper

在服务器端使用docker 下载Zookeeper镜像

docker pull ovfftd6p.mirror.aliyuncs.com/library/zookeeper

下载完成后启动Zookeeper

docker run -name zk01 --restart always -d -p 2181:2181 {IMAGE ID}

使用 docker ps 查看是否启动成功
在这里插入图片描述

Dubbo

官方文档:http://dubbo.apache.org/
github:
https://github.com/apache/dubbo

https://github.com/apache/dubbo-spring-boot-project

https://github.com/apache/dubbo-spring-boot-project/blob/0.2.x/README_CN.md

Dubbo是什么?

  • Dubbo是:
    • 一款分布式服务框架
    • 高性能和透明化的RPC远程服务调用方案
    • SOA服务治理方案
    • Dubbo每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。
      在这里插入图片描述
      在这里插入图片描述

编写provider代码(简单示例)

添加依赖

com.alibaba.bootdubbo-spring-boot-starter0.2.1.RELEASEcom.alibabadubbo2.6.5org.apache.curatorcurator-recipes2.12.0

代码

实体类

public class User implements Serializable {private int id;private String name;private int age;@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}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 interface UserService {public User getUserById(int id);
}

服务实现类

@Service
@com.alibaba.dubbo.config.annotation.Service
public class UserServiceImpl implements UserService {@Overridepublic User getUserById(int id) {User user = new User();user.setId(id);user.setAge(20);user.setName("zzm");return user;}
}

application.properties

server.port=8081spring.application.name=dubbo-provider-userdubbo.application.name=dubbo-provider-userdubbo.scan.base-packages=com.etc.servicedubbo.registry.address=zookeeper://192.168.88.128:2181

springboot启动类

@SpringBootApplication
@EnableDubbo
public class DemoproviderApplication {public static void main(String[] args) {SpringApplication.run(DemoproviderApplication.class, args);}}

执行springboot启动类

编写consumer代码(简单示例)

加入依赖


com.alibaba.bootdubbo-spring-boot-starter0.2.1.RELEASE

com.alibabadubbo2.6.5
org.apache.curatorcurator-recipes2.12.0

代码

实体类和服务接口 与provider一致
在这里插入图片描述
ConUserService

public interface ConUserService {public User getUserById(int id);
}

ConUserServiceImpl

@Service
public class ConUserServiceImpl implements ConUserService {@Referenceprivate UserService userService;@Overridepublic User getUserById(int id) {return userService.getUserById(1);}
}

UserController

@RestController
public class UserController {@Autowiredprivate ConUserService service;@GetMapping("user/{id}")public User getById(@PathVariable("id") int id){User userById = service.getUserById(id);return userById;}
}

执行springboot启动类

加入Dubbo管理控制台

自己封装了一个jar 可以直接使用

需要修改的地方

在这里插入图片描述
在这里插入图片描述
修改完后打开cmd 使用java -jar jar包

相关内容

热门资讯

适合新手的15个小本创业好项目... 没经验也可以创业,关键你要选对项目,新手能做的创业项目有哪些呢?不仅火爆,而且低成本?一起来看看吧!...
2018年穷人专区 看完让你慌... 创业并不一定是缺钱,也有可能是不满足于现状,不过对于大多数人来说,创业确实是一个摆脱贫困的方法。当然...
2018年几个能赚大钱的小本创... 据分析,目前广州市面旗袍的价格大约在200元到5000元之间。由于穿旗袍的人具有一定的消费能力,所以...
五大2019小本创业首选项目小... 2019小本创业项目有哪些呢?创业首先就是要确定一个好的创业项目,有了好的创业项目创业就会事半功倍,...
适合白手起家的6个 适合白手... "生活中有很多不为人知的冷门生意,只要你胆子大,也许你就可以靠它们发家!很多人对于创业只是空有想法,...
【15年创业好项目】15年创业... 为什么穷人多不敢去创业蛋糕创业蛋糕店创业30岁女人创业做什么适合女性创业的大学生适合什么创业毕业生如...
0加盟费用的小本创业项目有哪些... 加盟商开展加盟主要有2个目的:1、通过加盟来赚取更多利润,其中费用会涉及到,加盟费或者代理费,设备费...
小本创业加盟什么项目好,月入2... 随着经济的发展,新兴行业不断增多,正如雷军曾说的“站在风口上,猪都可以飞起来”,在现实生活中,抓住行...
2020年最具潜力的小本创业项... 照片书就是一个把照片做成书的项目,整个微商界并没有一款像照片书这样老小皆宜的个性化定制产物,所以才显...
2018年有特色的小本投资创业... 3、拼图小店针对时下很多人追求既有个性又能带来情味的休闲方式,可开一家既能让消费者怡情消遣,又可以装...