32、SpringBoot-整合Dubbo
分布式应用
在分布式系统中,国内常用zookeeper+dubbo组合,而Spring Boot推荐使用全栈的Spring,
Spring Boot+Spring Cloud。
分布式系统:
Zookeeper和Dubbo
dockers安装zookeeper
官方运行的解释命令:
测试代码的使用:
服务提供者:
引入依赖:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.</version>
</dependency>
提供服务的接口类:
package com.cr.provider.service;
public interface TicketService {
public String getTicket();
}
服务接口类的实现:
package com.cr.provider.service.impl; import com.alibaba.dubbo.config.annotation.Service;
import com.cr.provider.service.TicketService;
import org.springframework.stereotype.Component; @Component
//import com.alibaba.dubbo.config.annotation.Service;
@Service//暴露服务
public class TicketServiceImpl implements TicketService {
@Override
public String getTicket() {
return "战狼2";
}
}
配置文件:
#名字
dubbo.application.name=provider
#
dubbo.registry.address=zookeeper://192.168.43.157:2181
#
dubbo.registry.protocol=zookeeper
#
dubbo.protocol.name=dubbo
dubbo.protocol.port=
#
dubbo.monitor.protocol=registry
#
dubbo.scan.base-packages=com.cr.provider.service
主程序:
package com.cr.provider; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
@EnableDubbo
public class ProviderApplication { public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
} }
服务消费者
引入依赖:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.</version>
</dependency>
package com.cr.provider.service; public interface TicketService {
public String getTicket();
}
用于调用TicketService实现的方法
package com.cr.consumer.service; public interface UserService {
public void hello();
}
实现类
package com.cr.consumer.service.impl; import com.alibaba.dubbo.config.annotation.Reference;
import com.cr.consumer.service.UserService;
import com.cr.provider.service.TicketService;
import org.springframework.stereotype.Service; @Service
public class UserServiceImpl implements UserService {
@Reference
TicketService ticketService; public void hello(){
System.out.println("ticketService:" + ticketService);
String ticket = ticketService.getTicket();
System.out.println("buy:" + ticket);
}
}
dubbo.application.name=consumer
dubbo.registry.address=zookeeper://192.168.43.157:2181
主类中:
@EnableDubbo
@SpringBootApplication
public class ConsumerApplication { public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
用于开发Dubbo的注解@EnableDubbo
测试时:服务提供者必须处于工作的状态
@Autowired
UserService userService;
@Test
public void tt(){
userService.hello();
}
测试结果:
@Reference
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
public @interface Reference { Class<?> interfaceClass() default void.class; String interfaceName() default ""; String version() default ""; String group() default ""; String url() default ""; String client() default ""; boolean generic() default false; boolean injvm() default false; boolean check() default true; boolean init() default false; boolean lazy() default false; boolean stubevent() default false; String reconnect() default ""; boolean sticky() default false; String proxy() default ""; String stub() default ""; String cluster() default ""; int connections() default 0; int callbacks() default 0; String onconnect() default ""; String ondisconnect() default ""; String owner() default ""; String layer() default ""; int retries() default 0; String loadbalance() default ""; boolean async() default false; int actives() default 0; boolean sent() default false; String mock() default ""; String validation() default ""; int timeout() default 0; String cache() default ""; String[] filter() default {}; String[] listener() default {}; String[] parameters() default {}; String application() default ""; String module() default ""; String consumer() default ""; String monitor() default ""; String[] registry() default {}; }
@Service
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Inherited
public @interface Service { Class<?> interfaceClass() default void.class; String interfaceName() default ""; String version() default ""; String group() default ""; String path() default ""; boolean export() default false; String token() default ""; boolean deprecated() default false; boolean dynamic() default false; String accesslog() default ""; int executes() default ; boolean register() default false; int weight() default ; String document() default ""; int delay() default ; String local() default ""; String stub() default ""; String cluster() default ""; String proxy() default ""; int connections() default ; int callbacks() default ; String onconnect() default ""; String ondisconnect() default ""; String owner() default ""; String layer() default ""; int retries() default ; String loadbalance() default ""; boolean async() default false; int actives() default ; boolean sent() default false; String mock() default ""; String validation() default ""; int timeout() default ; String cache() default ""; String[] filter() default {}; String[] listener() default {}; String[] parameters() default {}; String application() default ""; String module() default ""; String provider() default ""; String[] protocol() default {}; String monitor() default ""; String[] registry() default {}; }
32、SpringBoot-整合Dubbo的更多相关文章
- Springboot整合Dubbo和Zookeeper
Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...
- springboot整合dubbo\zookeeper做注册中心
springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...
- 【转】SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
http://blog.csdn.net/a67474506/article/details/61640548 Dubbo是什么东西我这里就不详细介绍了,自己可以去谷歌 SpringBoot整合Dub ...
- SpringBoot整合dubbo(yml格式配置)
yml文件 如果只作为服务的消费者不用暴露端口号,扫描的包名根据自己service改 dubbo: application: name: springboot-dubbo-demo #应用名 regi ...
- dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级
1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...
- SpringBoot整合dubbo
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成. 以上介绍来源于百度百科,具体dubbo相关可以自行查 ...
- spring-boot整合dubbo启动demo
参考资料: https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/ https://github.com/apach ...
- springboot整合dubbo+zookeeper最新详细
引入 最近和小伙伴做一个比赛,处于开发阶段,因为涉及的服务比较多,且服务需要分开部署在不同的服务器上,讨论之后,打算采用分布式来做,之前学习springboot的时候,部分章节涉及到了springbo ...
- springboot整合dubbo的简单案例
使用框架: jdk 1.8 springboot-2.1.3 dubbo-2.6 spring-data-jpa-2.1.5 一.开发dubbo服务接口: 按照Dubbo官方开发建议,创建一个接口项目 ...
随机推荐
- firefox并不支持selectSingleNode和selectNodes的解决方法
转自:http://qsrock.iteye.com/blog/209585 function test(){ var perid = document.thisForm.PerID.value; v ...
- iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具
如果想进入移动app开发这个领域,你总能从别的开发者或者网上或者书上找到各种各样的方法和工具,对于新手来说,还没有摸清门路就已经陷入迷茫了.这里推荐20个可以帮你简化app开发流程的工具.很多开发者都 ...
- static关键字作用
之前讲到final关键字的作用是每次面试的时候我必问求职者的两个问题之一,另外一个问题就是文本会写到的static.final和static一样,都是一个小问题可以看到一个人的基础是否扎实以及平时是否 ...
- java设计模式-观察者模式,装饰者模式
1.1定义 慨念:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 即:主题和观察者定义了一对多的关系,观察者依赖于主题,只要主题发生变化,观察者就 ...
- sql:PostgreSQL
PostgreSQL sql script: -- Database: geovindu -- DROP DATABASE geovindu; CREATE DATABASE geovindu WIT ...
- 如何面试Web前端开发
分享一篇HR前端面试心得: 面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程.无论大公司还是小公司,之所以在如何招聘到真正有能力的,前端工程师方面会遇到同样的问题. ...
- 公共cdn的js和css库
使用cdn的js和css公用库 为什么要使用cdn,用cdn资源有什么好处了,可以看看yahoo性能建议,中间有一条的http://developer.yahoo.com/performance/ru ...
- java三元运算符
由?:符号表示的,具体的含义其实就和if-else结构的含义差不多,这种运算符会将某个条件作两种处理,如果满足条件的话就执行第一个结果,如果不满足的话就执行另外一个结果,例如: Int A,B,C; ...
- Http请求超时的一种处理方法
URLConnection类常见的超时处理就是调用其setConnectTimeout和setReadTimeout方法: setConnectTimeout:设置连接主机超时(单位:毫秒) setR ...
- Mac怎么生成.ssh文件
可使用如下命令生成 1 ssh-keygen -t rsa 因为mac系统也是从unix基础上演变过来的,所以很多核心的东西也是与unix相通的. 1.-t 是指定加密参数为ras,默认是dsa 2. ...