# libra **Repository Path**: nebulauv/libra ## Basic Information - **Project Name**: libra - **Description**: libra是一个基于netty+zookeeper的rpc微服务框架,可实现微服务发现、微服务注册、微服务调用等功能。拓展插件:libra-api-web可将微服务转成http服务,提供参数校验功能,提供基于web的单元测试功能。可解析dubbo服务,将dubbo服务发布成http服务。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-04-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **框架介绍**
libra是一个基于netty+zookeeper的rpc微服务框架,可实现微服务发现、微服务注册、微服务调用等功能.
拓展插件:
libra-api-web api网关插件,可将微服务转成http服务,提供参数校验功能,提供基于web的单元测试功能。
libra-proxy 服务代理插件,可实现异地机房RPC服务注册调用。
**设计**

**配置**
pom.xml引入 ```Java com.nebulauv.libra libra 1.0.0 ``` libra.properties配置 ```Java zk.host=192.168.3.132:2181,192.168.3.132:2182,192.168.3.132:2183 zk.timeout=5000 libra.name=demo-serverb libra.port=28512 ``` zk.host zookeeper 地址
zk.timeout zookeeper 超时时间
libra.name 服务名称
libra.port 服务端口
libra.dubbo 非必填,true的时候,请引入dubbo的包,libra会解析dubbo服务注解,将dubbo接口进行注册,默认为false,走libra的注解
spring配置 ```Java @Configuration public class LibrbConfiguration { public LibrbConfiguration(){ } @Bean public RpcServerApplicationContextAware createRpcServer(){ RpcServerApplicationContextAware rpcServer=new RpcServerApplicationContextAware(); return rpcServer; } } ``` 接口配置 ```Java @Configuration @Lazy @Order(Ordered.LOWEST_PRECEDENCE) public class ServerbApiConfig { @Bean("demoServiceb") @ConditionalOnMissingBean public DemoServiceb demoServiceb(){ return ProxyProvider.INSTANCE.getProxyBean(DemoServiceb.class); } } ``` 调用微服务 ```Java @LibraService @Service("demoServiceb") public class DemoServicebImpl implements DemoServiceb { private static final Logger logger = LoggerFactory.getLogger(DemoServicebImpl.class); @Autowired private DemoServicea demoServicea; @Override public Dtob getDtob() { logger.info("This is server a dto!"); Dtob dtob=new Dtob(); dtob.setId("1001"); dtob.setName("DTOA"); return dtob; } @Override public String getDtoaName() { Dtoa dtoa= this.demoServicea.getDtoa(); String dtoaName=dtoa.getName(); logger.info("Get dtoa from rpc server demoServicea"); return dtoaName; } } ``` **demo项目**
地址:https://gitee.com/nebulauv/libra-demo
请下载参考