https://github.com/applesline/mini-dubbo
迷你版dubbo实现,零配置、易于使用,支持redis、zookeeper注册中心,支持负载均衡、心跳机制、失败重试机制,轻量级ioc容器guice提供对象容器化支持
https://github.com/applesline/mini-dubbo
dubbo guava guice netty redis zookeeper
Last synced: 8 days ago
JSON representation
迷你版dubbo实现,零配置、易于使用,支持redis、zookeeper注册中心,支持负载均衡、心跳机制、失败重试机制,轻量级ioc容器guice提供对象容器化支持
- Host: GitHub
- URL: https://github.com/applesline/mini-dubbo
- Owner: applesline
- License: mit
- Created: 2020-06-13T11:34:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-05T21:31:05.000Z (over 1 year ago)
- Last Synced: 2025-07-30T21:40:44.635Z (6 months ago)
- Topics: dubbo, guava, guice, netty, redis, zookeeper
- Language: Java
- Homepage:
- Size: 55.7 KB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mini-dubbo
##### 迷你版dubbo实现,零配置、易于使用,支持redis、zookeeper注册中心,轻量级ioc容器guice提供对象容器化支持
---
> 快速入门
#### 1.添加依赖
```xml
com.github.applesline
mini-dubbo
1.0.0
```
#### 2.业务接口定义
```java
package org.applesline.api;
public interface GreetingService {
String sayHello(String name);
}
```
---
#### 3.业务接口实现
```java
package org.applesline;
import org.applesline.api.GreetingService;
public class GreetingServiceImpl implements GreetingService {
public String sayHello(String name) {
return "hi " + name;
}
}
```
---
#### 4.接口与实现类进行绑定
```java
package org.applesline;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import org.applesline.api.GreetingService;
public class ServerConfig extends AbstractModule {
public void configure() {
bind(GreetingService.class).to(GreetingServiceImpl.class).in(Singleton.class);
}
}
```
---
##### 5.编写服务端程序并注册服务(guice中注册服务,相当于spring的ioc容器)
```java
package org.applesline;
import org.applesline.mini.dubbo.context.RpcContext;
import org.applesline.mini.dubbo.protocol.Protocol;
public class ServiceProvider {
public static void main(String[] args) {
// 将服务注册到guice中,默认使用本地zookeeper作为注册中心(127.0.0.1:2181),需要确保本地安装并启动了zk
RpcContext.setConfiguration(new ServerConfig());
Protocol protocol = RpcContext.getBean(Protocol.class);
protocol.export();
}
}
```
---
#### 6.编写客户端服务
```java
package org.applesline;
import org.applesline.api.GreetingService;
import org.applesline.mini.dubbo.context.RpcContext;
import org.applesline.mini.dubbo.proxy.ProxyFactory;
public class ServiceConsumer {
public static void main(String[] args) {
// 默认使用本地zookeeper作为注册中心(127.0.0.1:2181),需要确保本地安装并启动了zk
RpcContext.initContext();
GreetingService greetingService = ProxyFactory.getProxyObject(GreetingService.class);
System.out.println(greetingService.sayHello("mini-dubbo"));
}
}
```
### 自此便可以愉快的体验mini-dubbo带来的乐趣了
---
> 联系作者