Dubbo是一个服务治理框架,对分布式服务的管理和治理、监控有较好的实现。
本案举例说明Dubbo与Spring的配合使用:
1. Maven引入dubbo的配置
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency>
2. 增加Spring的Dubbo provider配置文件 spring-dubbo-provider.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<!-- 提供方应用名称信息,这个相当于起一个名字,在dubbo管理页面比较清晰是哪个应用暴露出来的 -->
<dubbo:application name="user_provider"/>
<!-- 使用zookeeper注册中心注册服务 -->
<dubbo:registry address="${zookeeper.registry}"/>
<dubbo:protocol port="${dubbo.provider.port}"/>
<dubbo:monitor protocol="registry"/>
<!-- 暴露的服务接口 -->
<dubbo:service interface="com.test.api.UserService"
ref="userService" timeout="5000" retries="2" />
<bean id="userService" class="com.test.service.UserServiceImpl" />
</beans>
3. 接口和实现类代码:
UserService接口:
public interface UserService { public String hello(String name); }
UserServiceImpl类:
public interface UserServiceImpl implement UserService { public String hello(String name){ return "hello"+name; } }
4. 消费方的配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> <dubbo:application name="user_consumer" /> <dubbo:registry address="${zookeeper.registry}"/> <dubbo:monitor protocol="registry"/> <!-- 注册中心配置 --> <dubbo:reference id="userPointsFacade" interface="com.dmall.points.api.UserPointsFacade" timeout="10000" check="false" /> </beans>
5. 测试类
public class UserPonitsTest { public static void main(String[] args) throws InterruptedException{ start(); } public void testApp() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring/dubbo-consumer.xml"}); context.start(); try { System.in.read(); // 为保证服务一直开着,利用输入流的阻塞来模拟 }catch (Exception e){ e.printStackTrace(); } } }
6. 使用dubbo-admin包可以对dubbo的服务进行管理和监控。
相关推荐
dubbo项目的配置,以及dubbo与zookeeper的配合使用,dubbo结合spring mvc的使用
虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差...
eureka注册和治理controller层的http服务,供前端组合接口数据,gateway负载均衡,zookeeper注册后端服务层,dubbo做底层服务治理,gateway->...soa为controller,server为底层微服务,springCloud+dubbo的配合使用
dubbo作为国内顶尖大厂阿里的开源分布式服务框架,他有很多优势和用途,配合zookeeper整合入Spring中,相得益彰。自动发现,服务管理,提供者,消费者
虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差...
Spring Boot配合Hibernate Validator参数校验 自定义Spring Boot 内容协商 Spring Boot 中处理跨域 Spring Boot 中的异步调用 Spring Boot 整合Kafka Spring Boot整合Mongo DB Spring Boot 2.0 WebFlux编程 Spring ...
配合spring以及用docker启动中间件做Java生态研究,测试(如:redis,ignite,任务,zookeeper,dubbo,kafka,rabbitmq等) 对常见技术的整合,以及前沿新技术的整合(如:kotlin,webflux) 启动说明 如果是不依赖...
Spring Cloud 全链路测试 本地自测 服务本地跑起来自己测试各个功能,直接通过dubbo服务调用,浏览器的http请求,直接请求你的接口,测试一下自己的各个功能,你自己一个人维护一个java web系统,不依赖别人的接口。...
本项目默认为单机部署,即只有phone-admin一个war包,若需要使用dubbo发布,需加入dubbo配置文件,并将service作为war包使用,后续会讲到. 本项目架构采用Mybatis+Spring+SpringMVC作为基础框架 使用apache-shiro作为安全...
3. 采用 Redis 的 list 数据结构缓存班车场次列表,并基于 Spring 定时器优化班车场次到点更新班车 状态的业务,最后配合阿里巴巴开源的 Sentinel 中间件进行接口限流达到高并发、高可用的效果。 4. 下单和支付服务...
运用面向对象思想和面向服务设计思想完成系统的框架设计,研究以 Zookeeper 作为 Dubbo 服务的注册中心来实现远程服务的调用,并配合使用 Nginx 负载均衡来实现后台服务器的合理调度、研究利用 Mycat 数据库中间件...
XDubbo Mic-Corexdubbo从扩展点也叫微内核设计着手思考如何重构,并配合本人设计的秒杀分布式系统架构演进进行实际超高并发场景压测重构的驱动思想是新兴springCloud,service mesh框架与实际行业特性之间存在哪些...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...