建个RPC工程(JAVA)

一、简介

1、项目构成

  • songsir-rpc-dependencies:主要控制第三方依赖的引入和版本相关控制
  • songsir-rpc-parent:继承songsir-rpc-dependencies,下面包含6个model,分别是songsir-rpc-bean、songsir-rpc-common、songsir-rpc-consumer-dao、songsir-rpc-consumer-service、songsir-rpc-provider-dao、songsir-rpc-provider-service
  • songsir-rpc-bean:实体类模块
  • songsir-rpc-common:公共类模块,包括工具类、枚举类等
  • songsir-rpc-consumer-dao:消费者服务的持久层
  • songsir-rpc-consumer-service:消费者的接口类
  • songsir-rpc-provider-dao:服务提供者的持久层
  • songsir-rpc-provider-service:服务提供者的接口类
  • songsir-rpc-provider–web:服务提供者示例(web项目)
  • songsir-rpc-consumer-web:服务消费者示例(web项目)

图示如下:
dependencies
parent
provider
consumer

二、项目搭建

1、songsir-rpc-dependencies

  • 创建maven项目,引入SpringBoot依赖:
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/>
    </parent>

接下来,使用<dependencyManagement>标签声明以后项目中需要用到的第三方依赖,项目参考:https://github.com/songsir01/songsir-rpc-dependencies.git

2、songsir-rpc-parent

新建项目,并依次创建各个model。继承songsir-rpc-dependencies,同样使用<dependencyManagement>标签声明各个model的依赖,方便生产者和消费者服务的引用。
项目参考:https://github.com/songsir01/songsir-rpc-parent.git

3、songsir-rpc-provider–web

新建maven项目,继承songsir-rpc-parent,引入songsir-rpc-provider-service、spring-boot-starter-web、dubbo-spring-boot-starter等依赖。

新建启动类,增加注解@DubboComponentScan(basePackages = {“com.songsir.rpc.provider.service.impl”})设置dubbo扫描报名。

@SpringBootApplication
@DubboComponentScan(basePackages = {"com.songsir.rpc.provider.service.impl"})
public class App extends SpringBootServletInitializer implements CommandLineRunner {

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

    @Override
    public void run(String... args) {
        System.out.println("App provider is running!");
    }
}

增加配置文件:

server.port=8080
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.43.134:2181
dubbo.registry.id=dubbo-consumer
dubbo.application.name=songsir-rpc-consumer
dubbo.protocol.port=20882
dubbo.protocol.name=dubbo
dubbo.protocol.status=server
dubbo.protocol.id=dubbo

最后写一个测试方法,方便消费者测试。

@Service(version = "1.0.0")
public class TestProviderServiceImpl implements TestProviderService {
    @Override
    public String getHelloWorld(String msg) {
        return "Hello World!";
    }
}

项目参考:https://github.com/songsir01/songsir-rpc-provider-web.git

4、songsir-rpc-consumer-web

新建maven项目,继承songsir-rpc-parent,引入songsir-rpc-provider-service、songsir-rpc-consumer-service、spring-boot-starter-web、dubbo-spring-boot-starter等依赖。
增加配置文件:

server.port=8080
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.43.134:2181
dubbo.registry.id=dubbo-consumer
dubbo.application.name=songsir-rpc-consumer
dubbo.protocol.port=20882
dubbo.protocol.name=dubbo
dubbo.protocol.status=server
dubbo.protocol.id=dubbo

新建测试Controller:

@RestController
public class TestProviderController {

    @Reference(version = "1.0.0", check = false)
    private TestProviderService testProviderService;
    
    @RequestMapping("testConsumer")
    public String testConsumer() {
        return testProviderService.getHelloWorld("");
    }
}

项目参考:https://github.com/songsir01/songsir-rpc-consumer-web.git

三、最后

  • 项目大致框架已经完成,分别启动provider和consumer即可测试服务是否可用
  • 本项目在已安装zookeeper的前提下创建
  • 可使用dubbo-admin查看服务的注册和消费情况
  • 详细信息请参考我的github https://github.com/songsir01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值