SpringBoot+Dubbo项目整合搭建
一、Dubbo的实现架构图Dubbo内部组成机制:分为服务的提供者,Dubbo的容器,服务消费者,注册中心(zookeeper)、监控中心(Monitor)通信机制:使用netty通信服务器进行通信,netty是基于nio字符缓冲流来实现。二、环境的安装1、zookeeper环境搭建:下载地址:wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/zook
一、Dubbo的实现架构图
Dubbo内部组成部分:分为服务的提供者,Dubbo的容器,服务消费者,注册中心(zookeeper)、监控中心(Monitor)
通信机制:使用netty通信服务进行通信,netty是基于nio字符缓冲流来实现。
二、环境的安装
1、zookeeper环境搭建:
下载地址:
下载解压后得到apache-zookeeper-3.6.1-bin目录
(2)、找到apache-zookeeper-3.6.1-bin/conf/zoo_sample.cfg,将zoo_sample.cfg文件修改为zoo.cfg, vi进去可以查看到zookeeper的默认端口号2181.
(3)、进入apache-zookeeper-3.6.1-bin/bin目录,执行:./zkServer.sh start ./zkCli.sh 启动zookeeper服务。
2、Dubbo控制台admin和监控中心的环境搭建
(1)、去gitHub下载我们的Dubbo相关服务
git clone git@github.com:apache/dubbo-admin.git,将Dubbo项目克隆到本地服务器得到dubbo-admin-master项目目录
(2)、进入dubbo-admin-master/dubbo-admin/src/main/resource/application.properties配置文件查看里面的zookeeper的连接配置是否正确,配置入下:
server.port=7001 #dubbo访问控制台端口 spring.velocity.cache=false spring.velocity.charset=UTF-8 spring.velocity.layout-url=/templates/default.vm spring.messages.fallback-to-system-locale=false spring.messages.basename=i18n/message spring.root.password=root spring.guest.password=guest dubbo.registry.address=zookeeper://127.0.0.1:2181 #zookeeper的访问地址
(3)、进入dubbo-admin-master/dubbo-admin目录
执行mvn clean package将项目进行打包(jar)
打包后会生成jar文件target,进入jar包文件:dubbo-admin-master/dubbo-admin/target,执行 java -jar dubbo-admin-0.0.1- SNAPSHOT.jar 进行jar包的运行
然后http+ip+7001就可以访问我们的dubbo访问控制台了。
3、监控中心(Monitor)的搭建
(1)、进入dubbo-admin-master/dubbo-monitor-simple目录,执行mvn clean package进行项目打包
(2)、进入打包后的target目录会看到压缩文件(dubbo-monitor-simple-2.0.0-assembly.tar.gz),将其进行解压
(3)、解压后进入dubbo-admin-master/dubbo-monitor-simple/target/dubbo-monitor-simple-2.0.0/conf目录,进行
vi dubbo.properties文件的查看,检查配置是否正确,配置如下:
dubbo.container=log4j,spring,registry,jetty-monitor dubbo.application.name=simple-monitor dubbo.application.owner=dubbo #dubbo.registry.address=multicast://224.5.6.7:1234 dubbo.registry.address=zookeeper://127.0.0.1:2181 #dubbo.registry.address=redis://127.0.0.1:6379 #dubbo.registry.address=dubbo://127.0.0.1:9090 dubbo.protocol.port=7070 dubbo.jetty.port=8089 #监控中心的访问端口 dubbo.jetty.directory=${user.home}/monitor dubbo.charts.directory=${user.home}/monitor/charts dubbo.statistics.directory=${user.home}/monitor/statistics dubbo.log4j.file=logs/dubbo-monitor-simple.log dubbo.log4j.level=WARN
然后进入target/dubbo-monitor-simple-2.0.0/assembly.bin/目录执行 ./start.sh start 启动我们的监控中心
然后http+ip+8089来访问我们的监控中心
4、本地私服中央仓Nexus的搭建
(1)、下载地址:wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.13.0-01-bundle.tar.gz
(2)、解压下载的压缩包进入nexus-2.14.3-02/conf/nexus.properties查看和配置
# Jetty section application-port=8087 #这个地方我将访问的端口更改为了8087 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-path=/nexus # Nexus section nexus-work=${bundleBasedir}/../sonatype-work/nexus runtime=${bundleBasedir}/nexus/WEB-INF # orientdb buffer size in megabytes storage.diskCache.bufferSize=4096
[root@localhost conf]# vi nexus-2.14.3-02/bin/nexus #RUN_AS_USER= 改为: RUN_AS_USER=root
(3)、进入nexus-2.14.3-02/bin目录执行nexus start启动我们的访问控制台
5、中央仓的切换(将其切换为阿里云的中央仓)
为啥要切换呢?由于默认中央仓访问下载速度太慢
切换流程配置如下:
(1)、切换中央仓库为阿里云仓库,修复索引
(2)、加入central到public仓库地址,这样才能正常下载到依赖
(3)、项目配置(Maven配置)
首先需要配置是的maven的setting.xml文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/Users/trx/.m2/repository/</localRepository> <!--本地仓库 -->
<servers>
<server>
<id>sc</id>
<username>admin</username> <!--私服用户名 -->
<password>admin123</password>
</server>
</servers>
<profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<id>sc</id>
<name>Public Repositories</name>
<url>http://127.0.0.1:8087/nexus/content/repositories/releases/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>sc</id>
<name>Public Repositories</name>
<url>http://127.0.0.1:8087/nexus/content/repositories/releases/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
</settings>
(4)、ide具体项目配置
配置具体项目的pom.xml文件
根节点project中增加
<distributionManagement>
<!-- 两个ID必须与 setting.xml中的<server><id>nexus-rs</id></server>保持一致-->
<repository>
<id>sc</id>
<name>Public Repositories</name>
<url>http://127.0.0.1:8087/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>sc</id>
<name>Public Repositories</name>
<url>http://127.0.0.1:8087/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
好了,到这所有环境配置已经全部配置完成了,将其全部启动。
三、基于Dubbo项目,接口之间互调步骤
1、建立服务的提供者(如下是个springboot项目)
第一步:需要在我们的服务提供者的pom.xml文件中引入我们的dubbo的依赖jar包dubbo-starter
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> <exclusions> <exclusion> <artifactId>spring</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency>
第二步:去boot项目的application.properties配置文件中配置相关连接信息
dubbo.application.name=boot-user-service-provider dubbo.registry.address=127.0.0.1:2181 dubbo.registry.protocol=zookeeper dubbo.protocol.name=dubbo dubbo.protocol.port=20880 dubbo.monitor.protocol=registry
第三步:
在我们的boot项目启动类的头部加上“@EnableDubbo //开启基于注解的dubbo功能”,将其启动dubbo注解模式的配置
第四步:暴露服务
在我们具体的实现层类的头部增加@Service //暴露服务。
导入包是dubbo的service包里面的:import com.alibaba.dubbo.config.annotation.Service;
第五步:启动项目,然后去我们的dubbo管控中心里面就可以看到我们的服务提供者的相关信息。
2、建立服务的消费者
与上面提供者步骤一致。
不同的地方:在我们的具体引用dubbo的service的时候需要使用@Reference注解,如下:
@Reference
UsersService usersService;
配置完成后启动我们的项目进行dubbo接口的调用, 在我们的dubbo的管控台就可以看到我们的消费者信息。
更多推荐
所有评论(0)