springboot集成dubbo,dubbox分布式服务框架

来源:互联网 发布:国内旅游收入数据1978 编辑:程序博客网 时间:2024/06/05 14:35

恶魔之dubbo,dubbox分布式服务框架-简单易操作

dubbo

配置

  • pom.xml
<!-- Spring boot start-->  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId>    <!-- spring boot  默认的日志框架是Logback,所以在引用log4j2之前,需要先排除该包的依赖,再引入log4j2的依赖-->    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-logging</artifactId>        </exclusion>    </exclusions>  </dependency>  <dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-web</artifactId>   </dependency>   <dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-test</artifactId>       <exclusions>           <exclusion>               <groupId>org.springframework.boot</groupId>               <artifactId>spring-boot-starter-logging</artifactId>           </exclusion>       </exclusions>       <scope>test</scope>   </dependency>  <dependency> <!-- 引入log4j2依赖 -->       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-log4j2</artifactId>   </dependency>  <!-- dubbo --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>dubbo</artifactId>    <version>2.5.3</version>    <exclusions>        <exclusion>            <artifactId>spring</artifactId>            <groupId>org.springframework</groupId>        </exclusion>    </exclusions></dependency>
  • dubbo.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:application name="usercenter" />    <!-- 使用zookeeper注册中心暴露服务地址 -->    <dubbo:registry address="zookeeper://127.0.0.1:2181" />    <!-- 用dubbo协议在20880端口暴露服务 -->    <dubbo:protocol name="dubbo" port="20882" />    <!-- 提供服务 -->    <dubbo:service id="messageInfoServiceDBO"        interface="abc.abcMessageInfoService"        ref="messageInfoServiceImpl" timeout="1200000" />    <bean id="messageInfoServiceImpl"        class="abc.abc.impl.MessageInfoServiceImpl" />    <!-- 调用服务 -->    <dubbo:reference id="userService"        interface="abc.service.UserService"></dubbo:reference></beans>

代码示例

  • Application .java
/** *springboot启动类 */@SpringBootApplication  public class Application {      public static void main(String[] args) {          SpringApplication.run(Application.class, args);      }  }

注:上述配置好后可直接调用dubbo服务

dubbox

配置

  • pom.xml
<!-- Spring boot start-->  <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter</artifactId>      <!-- spring boot  默认的日志框架是Logback,所以在引用log4j2之前,需要先排除该包的依赖,再引入log4j2的依赖-->      <exclusions>          <exclusion>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-logging</artifactId>          </exclusion>      </exclusions>  </dependency>  <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <exclusions>          <exclusion>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-logging</artifactId>          </exclusion>      </exclusions>      <scope>test</scope>  </dependency>  <dependency> <!-- 引入log4j2依赖 -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-log4j2</artifactId>  </dependency>  

代码示例

  • DubboConfig .java
/**  *Dubbo配置类 * 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;      }      /**     * 与<dubbo:annotation/>相当.提供方扫描带有@com.alibaba.dubbo.init.annotation.Reference的注解类     * */      @Bean      public static AnnotationBean annotationBean() {          AnnotationBean annotationBean = new AnnotationBean();          annotationBean.setPackage("com.chentian610");//多个包可使用英文逗号隔开          return annotationBean;      }      /**      * 与<dubbo:registry/>相当      * */      @Bean      public RegistryConfig registryConfig() {          RegistryConfig registryConfig = new RegistryConfig();          registryConfig.setAddress(dubbo_registry_address);          return registryConfig;      }  }  
  • Application .java
/** *springboot启动类 */@SpringBootApplication  public class Application {      public static void main(String[] args) {          SpringApplication.run(Application.class, args);      }  }
  • 调用业务
@Reference  private GetuiService getuiService;  
阅读全文
1 0