springboot+dubbo 生产者(提供者)
2018-03-22 19:46
302 查看
需要的工具:
链接: https://pan.baidu.com/s/1Mwv-vI2Tp73A1eAN4xNo-w
密码:rj1i
配置zookeeper,百度下,内容主要是配置data和log的输出路径以及zookeeper的路径。
dubbo-admin.war,放在本地启动的tomcat的webapp下,直接启动。这边dubbo-admin是需要jdk1.7才能正常启动,否则会报错,报错原因是dubbo-admin中引入的spring的版本太低。可以百度下怎么解决。个人原本是1.8的环境后来配置了1.7的环境,不过使用idea能随意切换本机拥有的jdk,所以下面的代码也是直接用1.8启动,电脑的环境变量是1.7。
dubbo-admin登录问题:
在web-inf下的dubbo.properties文件配置账户密码,以及zookeeper的地址:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
坑人的是这边其实是两个账户,一个是root,密码是root;一个是guest,密码是guest。而且我这边只能用guest登录。dubbo-admin的作用是能看见生成者和消费者。其实数量少的话,在zookeeper中就能看见,不想配置的同学可以不启动dubbo-admin。
下面是介绍生产者的流程:
idea新建一个Springboot的web项目。
然后在引入dubbo相关的jar包。
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.6</version>
</dependency>
sevice:
public interface DubboTest {
public String test();
}
impl:
@Service
public class DubboTestImpl implements DubboTest{
@Override
public String test() {
return "123";
}
}
创建实体类impl后,添加service标签,这个service表示是dubbo引入的,不是springMVC的标签,具体为:
importcom.alibaba.dubbo.config.annotation.Service;创建完之后的目录结构:
到这边,项目的配置已经结束。启动springboot项目,在zookeeper中注册提供服务的生产者。
我在这边遇到的坑,十分重要:
1.springboot启动的端口不能冲突,很容易和启动dubbo-admin的tomcat产生8080(默认)冲突,这边改下springboot的端口;
2.服务端口冲突,就是生产者dubb个人的端口也会和当前电脑中的其他服务的端口差生冲突;
3.springboot继承父类的版本太高,导致springboot在启动后,一直报找不到log4j的日志报,这边我之前引入的这个包,但是没有什么用处,可能和springboot自带的日志logback冲突。冲突的父类引用:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
解决的办法是将maven引入的springboot手动改低版本。改动后:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>这边引入的父类版本 还是注意下,我个人引入的是1.5.0(这个版本肯定试用),最好是1.5.+版本以上,少于2.0。之前遇见过低版本的忘记产生了什么问题,也麻烦了我本人好久的时间。
再次启动,在zookeeper中可以看见启动的结果:
项目下载的地址,码云:https://gitee.com/zwfazt/springboot_dubbo.git
链接: https://pan.baidu.com/s/1Mwv-vI2Tp73A1eAN4xNo-w
密码:rj1i
配置zookeeper,百度下,内容主要是配置data和log的输出路径以及zookeeper的路径。
dubbo-admin.war,放在本地启动的tomcat的webapp下,直接启动。这边dubbo-admin是需要jdk1.7才能正常启动,否则会报错,报错原因是dubbo-admin中引入的spring的版本太低。可以百度下怎么解决。个人原本是1.8的环境后来配置了1.7的环境,不过使用idea能随意切换本机拥有的jdk,所以下面的代码也是直接用1.8启动,电脑的环境变量是1.7。
dubbo-admin登录问题:
在web-inf下的dubbo.properties文件配置账户密码,以及zookeeper的地址:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
坑人的是这边其实是两个账户,一个是root,密码是root;一个是guest,密码是guest。而且我这边只能用guest登录。dubbo-admin的作用是能看见生成者和消费者。其实数量少的话,在zookeeper中就能看见,不想配置的同学可以不启动dubbo-admin。
下面是介绍生产者的流程:
idea新建一个Springboot的web项目。
然后在引入dubbo相关的jar包。
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.6</version>
</dependency>
配置application.properties.
## Dubbo 服务提供者配置 spring.dubbo.application.name=springbootProvider #服务的命名 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #在本地的端口为2181的zookeeper上进行注册 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 #服务的端口号 spring.dubbo.scan=com.example.demo.service #这边是需要扫描的包创建需要所谓服务的接口service以及实体类 impl。
sevice:
public interface DubboTest {
public String test();
}
impl:
@Service
public class DubboTestImpl implements DubboTest{
@Override
public String test() {
return "123";
}
}
创建实体类impl后,添加service标签,这个service表示是dubbo引入的,不是springMVC的标签,具体为:
importcom.alibaba.dubbo.config.annotation.Service;创建完之后的目录结构:
到这边,项目的配置已经结束。启动springboot项目,在zookeeper中注册提供服务的生产者。
我在这边遇到的坑,十分重要:
1.springboot启动的端口不能冲突,很容易和启动dubbo-admin的tomcat产生8080(默认)冲突,这边改下springboot的端口;
2.服务端口冲突,就是生产者dubb个人的端口也会和当前电脑中的其他服务的端口差生冲突;
3.springboot继承父类的版本太高,导致springboot在启动后,一直报找不到log4j的日志报,这边我之前引入的这个包,但是没有什么用处,可能和springboot自带的日志logback冲突。冲突的父类引用:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
解决的办法是将maven引入的springboot手动改低版本。改动后:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>这边引入的父类版本 还是注意下,我个人引入的是1.5.0(这个版本肯定试用),最好是1.5.+版本以上,少于2.0。之前遇见过低版本的忘记产生了什么问题,也麻烦了我本人好久的时间。
再次启动,在zookeeper中可以看见启动的结果:
项目下载的地址,码云:https://gitee.com/zwfazt/springboot_dubbo.git
相关文章推荐
- 由浅入深分布式(5)dubbo提供者用内网地址注册provider以及 spring boot admin client用主机名注册spring boot admin server
- 使用springboot+dubbo+zookeeper构建搭建生产者平台
- 使用SpringBoot和Dubbo开发分布式系统
- dubbo+zookeeper+springboot构建服务
- Spring boot 集成Dubbox的方法示例
- Spring boot 整合Dubbo
- Spring Boot (十四)集成Dubbo
- springboot如何使用dubbo
- Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析
- Springboot整合dubbo构建maven多模块项目(三) - 把server分为api(服务接口定义)和server(服务实现)两个子module
- 快速开发Dubbo Spring Boot项目
- spring boot (三) 集成dubbo
- Spring Boot 集成Dubbo框架实例
- spring-boot整合dubbo:Spring-boot-dubbo-starter
- Springboot整合Dubbo - 项目创建和环境搭建
- springboot 集成dubbo
- springboot+dubbo+zookeeper项目部署笔记(摸索阶段,记一下笔记)
- spring boot + dubbo开发遇到过的异常
- springboot如何接入dubbo
- Dubbo+SpringBoot(四)