❝Springboot(2.1.5.RELEASE)引入dubbo时走了一些弯路,所以记录下。
❞
1、maven配置
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.11</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
2、启动类,改了一下dubbo-qos端口
import com.alibaba.dubbo.qos.common.Constants;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfiguration
public class Application {
public static void main(String[] args) {
System.setProperty(Constants.QOS_PORT, "22333");
SpringApplication.run(Application.class, args);
}
}
3、yml配置(多注册中心),自定义异常处理类myRpcProviderFilter
spring:
dubbo:
application:
name: springboot-dubbo-demo
registry:
protocol: zookeeper
address: 192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
protocol:
name: dubbo
port: 20890
consumer:
timeout: 60000
provider:
filter: myRpcProviderFilter,-exception
server: true
4、消费者代码
在对应的maven中引入api的依赖后,直接使用@Reference即可引入对应的服务。
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;
@Service
public class SomeServiceImpl implements ISomeService{
@Reference
private IDemoService demoService;
}
5、生产者代码
前提是有个首先有个接口的模块提供api接口,在实现模块直接使用@Service即可提供对应的服务。
import com.alibaba.dubbo.config.annotation.Service;
@Component
@Service(timeout = 15000, interfaceClass = ISomeProviderService.class)
public class SomeProviderServiceImpl implements ISomeProviderService {
@Override
protected String provide(String name) {
return "hello "+ name+"!";
}
}
####6、启动
