赞
踩

package com.yichen.demo;
public interface IUserService {
public String sayHello(String name);
}


<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.4.1</version> </dependency> <!---使用curator代替zkclient--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.3.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> // 这里是我前面打的 接口 jar包 <dependency> <groupId>com.yichen</groupId> <artifactId>springboot-dubbo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
这里需要注意注解Service 是 import com.alibaba.dubbo.config.annotation.Service 而不是其他的!!
package com.yichen.demo;
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
@Component
@Service(version = "1.2.3")
public class UserServiceImpl implements IUserService{
@Override
public String sayHello(String name) {
return "hello:"+name;
}
}
这里添加 @EnableDubbo 注解就行了
package com.yichen.demo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
spring.application.name=dubbo-demo-provider
dubbo.application.name=dubbo-demo-provider
dubbo.application.id=dubbo-demo-provider
# 注册中心地址,好像只能是一个,我没怎么细研究
dubbo.registry.address=zookeeper://192.168.175.128:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.scan.base-packages=com.yichen.demo.UserServiceImpl
# 这里 是连接时间,如果连不上zookeeper 可以把时间设置的长一点,我现在设置的是5s
dubbo.config-center.timeout=5000

相比生产者 它多了一个 spring-boot-starter-web,用于在页面上展示从生产者那里获得的消息
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.4.1</version> </dependency> <!---使用curator代替zkclient--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.3.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.yichen</groupId> <artifactId>springboot-dubbo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
spring.application.name=dubbo-demo-consumer
dubbo.application.name=dubbo-demo-consumer
dubbo.application.id=dubbo-demo-consumer
dubbo.registry.address=zookeeper://192.168.175.128:2181
dubbo.config-center.timeout=10000
注意,这里的 @Reference 来自 import com.alibaba.dubbo.config.annotation.Reference 而不是其他的
package com.yichen.demo; import com.alibaba.dubbo.config.annotation.Reference; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") public class UserController { @Reference(version = "1.2.3") private IUserService userService; @RequestMapping("/sayHello") public String sayHello(String name){ return userService.sayHello(name); // return "dfs"; } @RequestMapping("/show") public String show(){ return "show"; } }
注意,producer类和consumer 类这两个类中启动类的注解是不一样的!!
package com.yichen.demo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfig
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

可以看到生产者和消费者都注册到了zookeeper 上了。

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。