首先放上dubbo官网 dubbo.apache.org ,官网的介绍还是比较全面的。 当垂直应用程序越来越多时,应用程序之间的交互是不可避免的,一些核心业务被提取出来并作为独立的服务提供服务,逐渐形成一个稳定的服务中心,这样前端应用程序可以更好地响应不断变化的市场需求。很快。此时,用于业务重用和集成的分布式服务框架(RPC)是关键。 调用流程 注册中心 官网下载zookeeper,下载好之后解压打开解压后的文件夹,新建data和log的文件夹。进入conf目录,拷贝zoo_sample.cfg,重命名为zoo.cfg。使用文本编辑器打开zoo.cfg,更改dataDir=/tmp/zookeeper为(data和log所在路径) dataDir=H:toolsapache-zookeeper-3.6.1-binconf 进入bin目录,双击zkServer.cmd启动 下载dubbo-admin,解压并进入dubbo-admin文件夹,在空白处shift+右键,打开dos命令,执行 mvn package -Dmaven.skip.test=true 将打好的war包放入tomcat的webapps目录下,双击startup.bat启动tomcat,会在webapps下生成解压war包后文件夹,关掉tomcat启动窗口,进入webappsdubbo-admin-2.6.0WEB-INF,文本编辑器打开dubbo.properties,输入一下配置并保存。 dubbo.registry.address=zookeeper://127.0.0.1:2181 新建maven工程 在demo-dubbo工程下新建子模块demo-dubbo-api,同样是maven项目,修改pom.xml如下 新建接口TestService.java 在demo-dubbo工程下新建子模块demo-dubbo-provider,这次新建springboot项目。 修改application.properties如下 新建TestService.java的实现类TestServiceImpl.java 在启动类DemoDubboProviderApplication.java上加上注解@EnableDubboConfiguration 在demo-dubbo工程下新建子模块demo-dubbo-consumer,这次也是新建springboot项目。 修改application.properties如下 新建TestController.java 在启动类DemoDubboConsumerApplication.java上加上注解@EnableDubboConfiguration 运行DemoDubboProviderApplication.java和DemoDubboConsumerApplication.java启动项目。观察dubbo-admin,访问localhost:8002。成功
dubbo+zookeeper的简单demo
1、分布式服务架构简介

Provider:服务提供方
Consumer:服务消费者
Registry:注册中心
Monitor:统计服务调用次数和调用时间的监控中心
Container:容器管理服务的生命周期
0.启动服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
服务提供方:针对所提供的服务到注册中心发布。
服务消费方:到服务中心订阅所需的服务。
对于任何一方,不论服务提供方或者服务消费方都有可能同时兼具两种角色,即需要提供服务也需要消费服务。2、安装zookeeper
dataLogDir=H:toolsapache-zookeeper-3.6.1-binlog

3、安装dubbo-admin
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
删掉ROOT,将dubbo-admin-2.6.0文件夹重命名为ROOT。双击startup.bat启动tomcat。访问https://localhost:8080,账号密码都是root

4、创建父工程demo-dubbo

修改pom.xml如下<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tao</groupId> <artifactId>demo-dubbo</artifactId> <packaging>pom</packaging> <version>1.0.0</version> <!-- module是该工程下的所有子模块--> <modules> <module>demo-dubbo-api</module> <module>demo-dubbo-provider</module> <module>demo-dubbo-consumer</module> </modules> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <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> </project> 5、父工程下创建子模块demo-dubbo-api
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>demo-dubbo</artifactId> <groupId>com.tao</groupId> <version>1.0.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>demo-dubbo-api</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.1.RELEASE</version> </dependency> <!--com.dubbo-springBoot依赖 --> <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> </project>

package com.tao.service; public interface TestService { String test(); } 6、父工程下创建子模块demo-dubbo-provider

修改pom.xml如下<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>demo-dubbo-provider</artifactId> <parent> <groupId>com.tao</groupId> <artifactId>demo-dubbo</artifactId> <version>1.0.0</version> </parent> <dependencies> <dependency> <groupId>com.tao</groupId> <artifactId>demo-dubbo-api</artifactId> <version>1.0.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> server.port=8001 spring.dubbo.application.id=demo-dubbo-provider spring.dubbo.application.name=demo-dubbo-provider spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.server=true spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880

package com.tao.demodubboprovider.service.impl; import com.alibaba.dubbo.config.annotation.Service; import com.tao.service.TestService; import org.springframework.stereotype.Component; @Service(interfaceClass = TestService.class) @Component public class TestServiceImpl implements TestService { public String test() { return "Hello world"; } } package com.tao.demodubboprovider; import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @EnableDubboConfiguration public class DemoDubboProviderApplication { public static void main(String[] args) { SpringApplication.run(DemoDubboProviderApplication.class, args); } } 7、父工程下创建子模块demo-dubbo-consumer
修改pom.xml如下<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>demo-dubbo-consumer</artifactId> <parent> <groupId>com.tao</groupId> <artifactId>demo-dubbo</artifactId> <version>1.0.0</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.tao</groupId> <artifactId>demo-dubbo-api</artifactId> <version>1.0.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> server.port=8002 #Dubbo 服务消费者配置 spring.dubbo.application.name=demo-dubbo-consumer spring.dubbo.application.id=demo-dubbo-consumer spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.protocol.port=20800 spring.dubbo.protocol.name=dubbo

package com.tao.demodubboconsumer.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.tao.service.TestService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class TestController { @Reference public TestService testService; @ResponseBody @RequestMapping("/") public String test(){ return testService.test(); } } 8、启动项目


9、各项目maven依赖结构

本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)