Zeus,一个可以快速使用的微服务组件

去年(上周)一直准备着做一个分布式微服务的组件,可以让使用者用最简单的方式引入,只需要使用简单的注解就能够使用。

用一点一点的空闲时间终于堆出来一个暂时可用的zeus-1.0版本。

1291955-20200102103604031-1776659853.png

Zeus,意为宙斯,奥林匹斯十二主神之首,Zeus目前既定的主要功能是服务发现,负载均衡,服务调用,API监控,配置中心,服务治理,服务容错。

目前完成的功能有服务注册,服务发现,API监控以及RPC调用。

Zeus的使用方式非常简单,你只需要在你的项目中引入jar包,或者maven地址就可以直接使用了,maven地址之后会用GitHub仓库的方式来分享出来。

Zeus项目地址:

https://github.com/CasterWx/Zeus

Zeus-Jar包下载地址:

https://github.com/CasterWx/Zeus/releases

(希望可以帮忙推广一下,这个项目对我很重要)

Rpc远程调用

存在一个server-1,地址为localhost:8080,还存在一个server-2,地址为localhost:8090。

server-1中有一个方法,假如它的作用是查询数据库返回用户信息,我们就可以给这个service类加上@RpcService(需要引入zeus-rpc.jar)方法来启动远程调用。

1291955-20200102103803848-2084114099.png

在server-2中如果我们想要调用server-1的doHello方法获取用户信息,就可以创建一个简单的RpcClient来调用。

1291955-20200102103819568-430255431.png

此时访问这个/hello接口,可以得到远程接口返回的json结果。

{"code":0,"data":["user-1","user-2","user-3"],"requestId":"1"}

RpcRequest中参数为消息ID,实例类,方法,参数类型列表,参数值列表。

服务注册

引入zeus-client(client.jar)模块,在项目中添加@ZeusRegistry注解即可。

1291955-20200102103901400-1392053876.png

@ZeusRegistry注解有四个参数。

  • registryName :命名空间(集群管理)
  • zkAddr :zookeeper地址
  • serverName :服务名称
  • serverAddr :服务注册地址

目前使用zookeeper来做注册中心,是因为zookeeper本身比较强大,后期等到项目中netty模块优化传输之后会去掉zookeeper。

服务发现

服务发现目前开放了两个接口,一个是获取所有集群,另一个是获取指定集群下的所有服务。

使用上面的服务注册标签@ZeusRegistry注册了你的服务之后,就可以调用服务中心的 /v1/node 接口来发现服务了。

Zeus-Server默认使用了5454端口,调用接口分别如下。

http://localhost:5454/v1/node/namespaces

requestMethod : Get

获取所有集群名。

{
  "code":200,
  "message":"OK",
  "data":[
    "user-center2","user-center1","user-center3"
  ]
}

http://localhost:5454/v1/node/server?namespace=param

requestMethod : Get

获取指定集群下的所有服务节点信息。

response

{
  "code":200,
  "message":"OK",
  "data":[{
    "nameSpace":"user-center1",
    "serverName":"server-1",
    "data":"126",
    "path":"/registry/user-center1/server-1"
    }]
  }

API监控

为你的方法或是API添加@FlowMonitor(name)注释,你的该方法访问将会得到记录。

1291955-20200102104041283-330203345.png

例如在之前rpc调用的接口上添加一个FlowMoniter就可以监控rpc的次数以及时间点了。

数据会暂时先放在guava缓存中,定量会使用异步的方式上传到zeus-server做报表处理,这一部分暂时还没有做。

还有很多功能正在开发中~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值