SOA服务化治理方案的框架,现在比较流行的就是dubbo和spring-cloud
dubbo在国内的使用范围非常广泛,很多大公司的cto都是从阿里出来的.
dubbo一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案
关于dubbo的介绍,请参照官方网站 http://
这里就在官方介绍的基础上进行代码示例
框架版本 spring-mvc4,dubbo-2.8.4
代码截个图如下
在项目 tm-dubbo-api 编写接口public interface UserApi { String userInfo(Integer id); }
在项目 tm-dubbo-provider 编写服务提供方配置 spring-dubbo-provider.xml
<dubbo:application name="tm-dubbo-provider"/>
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<dubbo:protocol name="dubbo" />
<dubbo:service interface="cn.majingjing.tm.UserApi" ref="UserApi" protocol="dubbo"/>
<bean id="UserApi" class="cn.majingjing.tm.UserApiService" />
实现逻辑 UserApiService.java
public class UserApiService implements UserApi {
@Override public String userInfo(Integer id) { return USERS.get(id.hashCode() % USERS.size()); }
private static final List<String> USERS = new ArrayList<>(); static { USERS.add("唐僧"); USERS.add("八戒"); USERS.add("悟空"); USERS.add("沙僧"); }
}
在项目 tm-dubbo-consumer 编写服务消费方配置 spring-dubbo-consumer.xml
<dubbo:application name="tm-dubbo-consumer"/>
<dubbo:registry address="multicast://224.5.6.7:1234"/>
<dubbo:reference id="userApi" interface="cn.majingjing.tm.UserApi"/>
调用逻辑 UserController.java
@RestController public class UserController {
@Autowired private UserApi userApi;
@RequestMapping("/dubbo/t1") public Object t1(Integer id) { String name = userApi.userInfo(id); System.out.println(name); return name; }
}
将项目部署到不同的tomcat下,并分别启动,在浏览器上访问 http://localhost:8080/tm-dubbo-consumer/dubbo/t1?id=5
到此一个简单的dubbo和springmvc4的集成就完成了.
源代码地址: http://git.oschina.net/majinding/tm-dubbo/tree/tag-v1.0.1
|