使用Springboot集成dubbox进行微服务治理

一、spring boot

作为spring家族中新成员,一出来就受到大家的欢迎,其基于Spirng 4.0和Servelet 3,实现免xml的方式,并将常用的Spring模块整合分组,不但提高了代码可读性,而且大大降低了代码编写难度。

二、dubbo

同样dubbo作为SOA治理框架,不但包含了服务提供者和消费者,还提供了管理平台、监控平台等等。在阿里开源后,立即受到了广大开发者的追捧。可惜的是由于阿里dubbo团队的解散,已经很久没有更新代码了,当前最新版本是2.5.4-SNAPSHOT。

三、dubbox

很庆幸,由当当网等团队在dubbo基础上升级了dubbox版本,将Spring2.X升级到3.X,并支持基于Kryo和FST的高效序列化实现,支持REST等。

不过问题来了,dubbox还是只支持Spring3,而Spring boot要求Spring 4,因此需要升级dubbox支持4.0版本。

四、dubbox升级版,支持了Spring4.0,github地址:https://github.com/chentian610/dubbox

五、集成Spring boot和dubbox

   (1)、原来Spring集成dubbo的时候需要配置如下xml

	
    	
    	
    	
  (2)、改成Spring boot后只需要一个java类即可,这里表示向注册中心zookeeper注册服务。

/**
 * Created by chentian610.
 */
@Configuration
@PropertySource("classpath:dubbo.properties")
public class DubboConfig {

    @Value("${dubbo.application.name}")
    private String dubbo_application_name;


    @Value("${dubbo.registry.address}")
    private String dubbo_registry_address;

    /**
     * 由《dubbo:application》转换过来
     **/
    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setLogger("slf4j");
        applicationConfig.setName(dubbo_application_name);
        return applicationConfig;
    }

    /**
    * 与相当.提供方扫描带有@com.alibaba.dubbo.init.annotation.Reference的注解类
    * */
    @Bean
    public static AnnotationBean annotationBean() {
        AnnotationBean annotationBean = new AnnotationBean();
        annotationBean.setPackage("com.chentian610");//多个包可使用英文逗号隔开
        return annotationBean;
    }

    /**
     * 与相当
     * */
    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setAddress(dubbo_registry_address);
        return registryConfig;
    }
}
(3)、在pom.xml中添加Spring boot支持

 
        
            org.springframework.boot
            spring-boot-starter
            
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
            test
        
         
            org.springframework.boot
            spring-boot-starter-log4j2
        
(4)、指定Spring boot启动类

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
		try {
			System.in.read();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}
(5)、具体业务类中调用dubbo服务,只需要添加@Reference注解即可

	@Reference
	private GetuiService getuiService;

六、最后启动各自服务,贴上源码,欢迎大家交流chentian610



你可能感兴趣的:(使用Springboot集成dubbox进行微服务治理)