springboot整合dubbo
2018-03-01 00:09
711 查看
这里只是简单的整合,先要下载zookeeper,附上链接http://zookeeper.apache.org/releases.html
下载后就能打开zkServer.cmd(window版本,linux是zkServer.sh)
然后再java端建三个项目,也就是服务提供者provider,服务消费者consumer,还有一个接口(个人理解:就是把本来service层拆出来做服务集群,可让服务承载量上去,也可以跨系统进行通信,无需转化json,只需返回对象,也就扯到rpc原理,这样还可以保证服务实现不可见,安全,分布式架构更清晰!)
第一步:建第一个项目 接口层(类似本来的service层)
package com.java.One;
public interface DubboService {
public String dubboTest();
}第二步:新建第二个项目服务提供者provider(类似之前的serviceimpl)
导入依赖 <dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.3</version>
<exclusions>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
package com.java.two;
import com.alibaba.dubbo.config.annotation.Service;
import com.java.One.DubboService;
@Service
public class DubboServiceImpl implements DubboService{
@Override
public String dubboTest() {
return "great,you can do it";
}
}建springboot结构的前面文章有,翻下,谢谢!
再application.properties文件添加dubbo注册服务参数#应用名称,消费者还是提供方
spring.dubbo.application.name=provider
#zk注册中心的地址,如果是多个,用"," 分开
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#协议类型
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
#dubbo的扫描包,具体是自己引用dubbo的那个bean的位置
spring.dubbo.scan=com.java.two第三步:最后的消费者consumer(类似controller)
这个项目导入的依赖和服务提供者provider一样
package com.java.Olym.explore.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.dubbo.config.annotation.Reference;
import com.java.One.DubboService;
@Controller
@RequestMapping("dubbo")
public class DubboController {
private final Logger log = Logger.getLogger(this.getClass());
@Reference//dubbo注入方式
private DubboService dubboService;
@RequestMapping("train")
public String train(){
log.info(dubboService.dubboTest());
return "yes";
}
}
还有application.properties文件#dubbo配置
#应用名称,消费者还是提供方
spring.dubbo.application.name=consumer
#zk注册中心的地址,如果是多个,用"," 分开
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo的扫描包,具体是自己引用dubbo的那个bean的位置
spring.dubbo.scan=com.java.Olym.explore.controller还有页面的测试代码,这个页面是在consumer工程类(由远程服务调用者去调用服务提供者,zk起注册中心,集群等作用)<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String ctx = request.getContextPath();
String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + ctx;
%>
<html>
<head>
<script>
function dubbo(){
location.href = "<%=ctx%>/dubbo/train";
}
</script>
</head>
<body>
<h1>Hello World!</h1>
<div id="dubbo">
<input type="button" value="dubboButton" onclick="dubbo();">
</div>
</body>
</html>至此,配置完成,先启动provider的服务,再启动consumer服务。可以观察到zookeeper的黑窗口在注册服务(如果没动就是没弄好,估计是配置参数问题)
zookeeper图太长,没发
页面测试
,后端控制台打印
成功!
下载后就能打开zkServer.cmd(window版本,linux是zkServer.sh)
然后再java端建三个项目,也就是服务提供者provider,服务消费者consumer,还有一个接口(个人理解:就是把本来service层拆出来做服务集群,可让服务承载量上去,也可以跨系统进行通信,无需转化json,只需返回对象,也就扯到rpc原理,这样还可以保证服务实现不可见,安全,分布式架构更清晰!)
第一步:建第一个项目 接口层(类似本来的service层)
package com.java.One;
public interface DubboService {
public String dubboTest();
}第二步:新建第二个项目服务提供者provider(类似之前的serviceimpl)
导入依赖 <dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.3</version>
<exclusions>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.0.0</version> </dependency>如果有spring-boot-devtools这个包,记得不要用,然后导入之前的接口包
package com.java.two;
import com.alibaba.dubbo.config.annotation.Service;
import com.java.One.DubboService;
@Service
public class DubboServiceImpl implements DubboService{
@Override
public String dubboTest() {
return "great,you can do it";
}
}建springboot结构的前面文章有,翻下,谢谢!
再application.properties文件添加dubbo注册服务参数#应用名称,消费者还是提供方
spring.dubbo.application.name=provider
#zk注册中心的地址,如果是多个,用"," 分开
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#协议类型
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
#dubbo的扫描包,具体是自己引用dubbo的那个bean的位置
spring.dubbo.scan=com.java.two第三步:最后的消费者consumer(类似controller)
这个项目导入的依赖和服务提供者provider一样
package com.java.Olym.explore.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.dubbo.config.annotation.Reference;
import com.java.One.DubboService;
@Controller
@RequestMapping("dubbo")
public class DubboController {
private final Logger log = Logger.getLogger(this.getClass());
@Reference//dubbo注入方式
private DubboService dubboService;
@RequestMapping("train")
public String train(){
log.info(dubboService.dubboTest());
return "yes";
}
}
还有application.properties文件#dubbo配置
#应用名称,消费者还是提供方
spring.dubbo.application.name=consumer
#zk注册中心的地址,如果是多个,用"," 分开
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo的扫描包,具体是自己引用dubbo的那个bean的位置
spring.dubbo.scan=com.java.Olym.explore.controller还有页面的测试代码,这个页面是在consumer工程类(由远程服务调用者去调用服务提供者,zk起注册中心,集群等作用)<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String ctx = request.getContextPath();
String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + ctx;
%>
<html>
<head>
<script>
function dubbo(){
location.href = "<%=ctx%>/dubbo/train";
}
</script>
</head>
<body>
<h1>Hello World!</h1>
<div id="dubbo">
<input type="button" value="dubboButton" onclick="dubbo();">
</div>
</body>
</html>至此,配置完成,先启动provider的服务,再启动consumer服务。可以观察到zookeeper的黑窗口在注册服务(如果没动就是没弄好,估计是配置参数问题)
zookeeper图太长,没发
页面测试
,后端控制台打印
成功!
相关文章推荐
- dubbo 与spring boot 整合遇到的坑
- Spring Boot整合Dubbo框架demo
- SpringBoot与Dubbo整合的三种方式
- SpringBoot 整合 dubbo xml实现
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Spring-boot:5分钟整合Dubbo构建分布式服务 - jaycekong - 博客园
- Springboot整合Dubbo/ZooKeeper demo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- spring boot 与dubbo 2.8.4整合的一些问题
- SpringBoot与Dubbo的整合
- Spring Boot整合Dubbo框架demo
- dubbo和spring boot整合简约版(xml和annotation)
- Spring Boot整合Dubbo
- Springboot整合dubbo构建maven多模块项目(三) - 把server分为api(服务接口定义)和server(服务实现)两个子module
- spring boot 学习笔记(3) 整合dubbo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- spring boot+dubbo+zookeeper(SOA详细整合)
- [ Spring Boot ] 整合Dubbo开发笔记(一)
- springboot2.0整合dubbo的示例代码