springboot整合最新版dubbo以及dubbo-admin的安裝

1、安裝前準備

  因爲dubbo被阿里捐獻給了apache,此次安裝admin時,參考網上的資料,地址仍是停留在以前的連接,踩了很多坑,這裏記錄下。java

  dubbo-admin下載地址:mysql

  地址一:https://github.com/apache/incubator-dubbo/releases git

    該地址2.6版本以上的包中沒有dubbo-admin ,2.5x版本的有github

  地址二:https://github.com/apache/incubator-dubbo-opsweb

    該地址中的dubbo-admin模塊被單獨拎出來了,springboot方式啓動,能夠直接運行main方法,或者使用 java -jar 方式啓動,很方便,有github帳號的能夠fork一下,推薦使用這個版本,本文介紹的就是該版本  。redis

2、dubbo-spring-boot-starter的使用

  github地址:https://github.com/alibaba/dubbo-spring-boot-starter 最新版本爲2.0 ,本文也是使用的該版本。spring

2.一、添加依賴

    <dependency>
        <groupId>com.alibaba.spring.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>

2.二、新建接口模塊

  目錄結構sql

  接口類express

package com.dc.sb.service;

public interface RemoteUserService {


    String sayHello(String name);


}

2.三、新建provider模塊

  目錄結構apache

  接口實現類

package com.dc.sb.dubbo.provider.service.user;

import com.alibaba.dubbo.config.annotation.Service;
import com.dc.sb.service.RemoteUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * dubbo 服務service
 *
 * @author DUCHONG
 * @since 2018-07-03 18:29
 **/
@Component
@Service(version = "1.0.0",timeout = 10000,interfaceClass = RemoteUserService.class)
public class RemoteUserServiceImpl implements RemoteUserService {

    private static final Logger logger = LoggerFactory.getLogger(RemoteUserServiceImpl.class);


    @Override
    public String sayHello(String name) {

        return "Hello "+name;
    }
}

  配置文件

server.port=8081
server.context-path=/

spring.application.name=dubbo-spring-boot-starter
spring.dubbo.server=true
spring.dubbo.registry=zookeeper://127.0.0.1:2181

  啓動類

package com.dc.sb.dubbo.provider;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubboConfiguration
public class SbDubboProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(SbDubboProviderApplication.class, args);
	}
}

2.四、 消費者模塊

  目錄結構

  啓動類

package com.dc.sb.web;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import com.dc.sb.config.DruidProperties;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableConfigurationProperties({DruidProperties.class})
@MapperScan(basePackages = "com.dc.sb.dao")
@ComponentScan("com.dc.sb.*")
@EnableDubboConfiguration
public class SbWebApplication {

	public static void main(String[] args) {
		SpringApplication.run(SbWebApplication.class, args);
	}
}

  配置文件

#server
server.port=8080
server.context-path=/

#mybatis
mybatis.type-aliases-package= com.dc.sb.dao.dataobject
mybatis.mapper-locations= classpath*:META-INF/mybatis/mapper/*.xml

#druid
druid.initialSize= 5
druid.minIdle= 0
druid.maxActive= 20
druid.maxWait= 6000
druid.timeBetweenEvictionRunsMillis= 60000
druid.minEvictableIdleTimeMillis= 300000
druid.validationQuery= SELECT 1 FROM DUAL
druid.testWhileIdle= false
druid.testOnBorrow= false
druid.testOnReturn= false
druid.poolPreparedStatements= true
druid.maxPoolPreparedStatementPerConnectionSize= 20
druid.filters= stat,log4j

#mysql
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&allowMultiQueries=true
spring.datasource.username= root
spring.datasource.password=root

#redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=redis

#dubbo
spring.application.name=dubbo-spring-boot-starter
spring.dubbo.registry=zookeeper://127.0.0.1:2181

  引用端

package com.dc.sb.web.controller.remote;


import com.alibaba.dubbo.config.annotation.Reference;
import com.dc.sb.service.RemoteUserService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * dubbo消費者controller
 * @author DUCHONG
 * @since 2018-07-03 18:44
 **/
@RestController
public class RemoteUserController {

    //timeout 能夠不指定,可是version必定要指定 否則會找不到服務 直連須要加url="dubbo://localhost:20880"
    @Reference(version = "1.0.0")
    private RemoteUserService remoteUserService;


    @RequestMapping(value="/dubbo/say/{name}")
    public String sayHello(@PathVariable("name") String name){

        String result=remoteUserService.sayHello(name);
        return result;
    }


}

3、dubbo-admin的啓動

下載地址二的包,直接在idea中打開,結構以下:

install完成以後,直接右鍵DubboAdminApplication  Run 

修改配置文件,位置在 dubbo-admin /src/main/resource下面

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

server.port=7001
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
spring.root.password=root
spring.guest.password=guest

dubbo.registry.address=zookeeper://127.0.0.1:2181

根據本身的須要修改,包括dubbo-admin用戶名密碼,固然zk的配置也是少不了的,具體怎麼安裝zk,啓動以及配置,這裏就很少說了,

默認的的用戶名和密碼爲:

root
root

guest
guest

3.一、訪問

localhost:7001

 首頁

 service

 provider

  consumer

 

完整代碼已上傳github 歡迎fork  傳送門

相關文章
相關標籤/搜索