Skip to content

ZhongJinHacker/bubbo

Repository files navigation

Bubbo

一个模仿Dubbo通过注解配置进行分布式服务的框架

快速开始

####主要是使用两个注解进行RPC通信:

RpcService用来标注服务提供者

RpcReference用来标注服务消费者

Bubbo在Zookeeper上注册的节点目录与Dubbo基本一致,如图:

使用方法

暂时仅支持Zookeeper作为服务注册中心。

1.引入项目,本地执行

mvn clean install

2. 在自己的项目的pom.xml 中引入项目

    <dependency>
      <groupId>com.grady.bubbo</groupId>
      <artifactId>bubbo</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

3. 配置项目(可使用xml配置,这里使用代码配置)

服务提供者配置:

@Configuration
public class AppConfig {

    @Value("${registry.address}")
    private String registryAddress;

    @Value("${server.port}")
    private String rpcListenPort;

    @Bean
    public ServiceRegistry serviceRegistry() {
        ServiceRegistry registry = new ServiceRegistry(registryAddress);
        return registry;
    }

    @Bean
    public RpcServer rpcServer() {
        RpcServer rpcServer = new RpcServer(rpcListenPort, serviceRegistry());
        return rpcServer;
    }
}

服务消费者配置:

@Configuration
public class AppConfig {

    @Value("${registry.address}")
    private String registryAddress;

    @Bean
    public ServiceDiscovery serviceDiscovery() {
        return new ServiceDiscovery(registryAddress);
    }
}
服务提供者
使用RpcService注解进行标注
@RpcService
public class TestServiceImpl implements TestService {

    @Override
    public String testHello() {
        return "Test Hello!";
    }
}
服务消费者
使用RpcReference注解进行标注
@RestController
@RequestMapping("/hello")
public class HelloController {

    @RpcReference
    TestService testService;

    @GetMapping("test")
    @ResponseBody
    public String test() {
        return testService.testHello();
    }
}

整理的参考资料

Netty 组件类关系图

Netty官方文档 Getting Start 翻译

About

仿dubbo -> bubbo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages