wordpress页面怎么编辑器,seo高手培训,如何做网站竞品分析,湛江做网站建设Dubbo
学习地址#xff1a;Dubbo3 简介_w3cschool#xff1b;
01-Dubbo入门案例
我们先来新建一个Dubbo的小案例来体验一下Dubbo的使用#xff0c;我们先来创建一个springboot的项目。
1.1-zookeeper下载启动
在编写我们的入门案例之前#xff0c;我们需要先去下…Dubbo
学习地址Dubbo3 简介_w3cschool
01-Dubbo入门案例
我们先来新建一个Dubbo的小案例来体验一下Dubbo的使用我们先来创建一个springboot的项目。
1.1-zookeeper下载启动
在编写我们的入门案例之前我们需要先去下载一个注册中心我们这里选择zookeeper接下来介绍windows和Linux下载zookeeper。我们先去到清华大学镜像网址Index of /apache/zookeeper (tsinghua.edu.cn)选择自己需要的对应版本。
zookeeper的详解可以去看看这篇文章Zookeeper——简介 下载 Linux下配置安装启动 解读相关配置参数_linux启动zk是什么用-CSDN博客
1.1.1-Linux系统下载
在Linux下执行如下命令【注这里根据自己的版本进行下载和解压】
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.2/apache-zookeeper-3.7.2-bin.tar.gz可以看到我们现在下载成功了下载成功后对其进行解压执行如下命令
tar -xzvf apache-zookeeper-3.7.2-bin.tar.gz 解压成功后我们可以选择给zookeeper重新命名一下
mv apache-zookeeper-3.7.2-bin zookeeper-3.7.2 进入到zookeeper的安装路径使用mkdir zkData命令创建zkData的目录这个目录是专门用来存放 zookeeper 相关的数据节点信息创建完成后进入到zookeeper的配置文件
vim conf/zoo_sample.cfg 将dataDir的目录改为我们刚刚创建的目录 我们将配置文件修改后我们将配置文件复制一份并改名为zoo.cfg命令如下
cp zoo_sample.cfg zoo.cfg修改完成后我们就可以启动zookeeper了进入到zookeeper的bin目录下【注必须得进到bin目录下】使用如下命令启动zookeeper
./zkServer.sh start 使用ps -ef|grep zookeeper命令就可以看到如下内容说明我们zookeeper启动成功了 1.2-父模块-DubboDemo
创建一个父模块DubboDemo 创建之后将如下内容粘贴如pom.xml中如果自己导入pom依赖注意版本兼容的问题
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdDubboDemo/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduleprovider/modulemoduleconsumer/modulemoduleprovider-server/module/modules!-- Spring Boot的父依赖定义了Spring Boot版本和其他依赖的版本管理 --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.13/version/parent!-- 依赖管理 --dependencies!--导入依赖--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.3/version/dependency!--zkclient--dependencygroupIdcom.github.sgroschupf/groupIdartifactIdzkclient/artifactIdversion0.1/version/dependency!--解决日志冲突--!--引入zookeeper--dependencygroupIdorg.apache.curator/groupIdartifactIdcurator-framework/artifactIdversion2.12.0/version/dependency!--解决 java.lang.NoClassDefFoundError: org/apache/curator/framework/recipes/cache/TreeCacheListener--dependencygroupIdorg.apache.curator/groupIdartifactIdcurator-recipes/artifactIdversion2.8.0/version/dependencydependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactIdversion3.4.14/versionexclusionsexclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies!-- 构建配置 --buildplugins!-- Spring Boot的Maven插件用于打包成可执行的jar文件 --plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/buildpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/properties/project
创建完父项目后可以把父项目中的src模块删掉
1.3-接口模块-provider-server
在父项目下创建provider-server模块并定义service层的接口如下图所示 创建完provider-server之后我们需要把该模块打包到本地先在pom文件中添加如下构建信息
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdDubboDemo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionpackagingpom/packaging!-- 这里的groupId和artifactId填写自己的包名和组名 --groupIdcom.lhl/groupIdartifactIdprovider-server/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project
1.4-提供者模块-provider
在父项目下新建子模块provider如图所示这个controller包入门案例不必理会。 provider的pom文件需要依赖我们刚刚打包的provider-server这是我的依赖如下【可以不一样】 dependencygroupIdcom.lhl/groupIdartifactIdprovider-server/artifactIdversion1.0-SNAPSHOT/version/dependency 添加application.yml文件内容如下
server:port: 8081
dubbo:application:# 注册的应用名name: dubbo-springboot-provider-8082protocol:# 协议名称name: dubbo# port -1表示端口号随机port: -1registry:# zookeeper地址address: zookeeper://自己zookeeper地址:2181
zookeeper:#zookeeper请求超时时间request-timeout: 10000 HelloServiceImpl具体代码如下
// 注意这个Service要选择dubbo包下的这个Service的意思是将这个service实现注册到dubbo中
Service
public class HelloServiceImpl implements HelloService {Overridepublic String sayHello() {return hello8081;}
} ProviderApplication类具体代码如下
SpringBootApplication
EnableDubbo
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class);}
}1.5-消费者模块-consumer
consumer的目录如下 在父模块下同样创建consumer模块同样添加如下依赖 dependencygroupIdcom.lhl/groupIdartifactIdprovider-server/artifactIdversion1.0-SNAPSHOT/version/dependency 添加application.yml配置文件
server:port: 8080
dubbo:application:# 注册的应用名name: dubbo-springboot-consumerprotocol:# 协议名称name: dubbo# port -1表示端口号随机port: -1registry:# zookeeper地址address: zookeeper://159.75.134.127:2181
zookeeper:request-timeout: 10000 HelloController的内容如下
RestController
public class HelloController {// 这个注解是用来获取远程实现类的ReferenceHelloService helloService;RequestMapping(/hello)public String sayHello(){return helloService.sayHello();}
}1.6-启动项目验证
最后我们先运行provider模块启动完成后我们再启动consumer模块最后我们在访问127.0.0.1:8080/hello控制台打印hello8081入门案例完成。如图所示