系统 如何定义微服务器,微服务系统架构系列2——服务注册

上文,我们讲到了微服务框架应该实现的功能,并且列出了主要的1、2、3、4点。因为第1点是根据定义好的schema生成不用语言的client和service,我们暂时是可以替代的。所以,我们首先从第2点也就是服务的注册开始。

一、前言

服务的注册,毫无疑问是服务启动的时候,将服务注册到一个地方,然后其他人就能发现这个服务。

注册的内容:服务的名字,服务的地址(包括端口)。其中,服务的名字我们可以作为主键来查找。

至于服务注册的时机,毋庸置疑最好是web容器启动的时候。

唯一不同的可能就是服务注册的方式。

比如,我想到的方案就有如下两个:

1、有一个服务注册中心,服务启动的时候,将自己的注册信息发过去,同时服务注册中心给每台机器的每个服务开一个长连接,定期检测心跳。服务挂了就从注册中心移除,恢复了就加入到注册中心。

2、直接用zookeeper的znode进行管理。服务名称存为路径,服务的地址存为内容。

其实两个方案本质都一样:服务挂了就移除,服务活了就新增,而且要保证近乎实时。

《轻量级微服务架构》这本书里面讲的是方法2, 我们也用方法2来实践一遍。

二、服务准备

我用的是IDEA14.1.4+jdk1.7。

首先是zookeeper集群的搭建。网上教程很多,我就不重复写了。

学习的时候,可以根据这个博客,搭了个windows的伪集群。

http://blog.csdn.net/morning99/article/details/40426133

然后我建一个springboot的HelloService服务。

首先是Application.java

644049856028

然后是HelloController.java

644049856028

启动服务,通过8080端口访问。

启动参数:-Dserver.port=8080

644049856028

启动服务,通过8082端口访问。

启动参数:-Dserver.port=8082

644049856028

三、定义服务注册接口

ServiceRegistry.java

644049856028

四、使用ZooKeeper实现服务注册

在实现服务之前 , 我们需要准备一些配置

在资源文件里新建application.properties

文件内容如下:

server.address=127.0.0.1

server.port=8080

registry.servers=127.0.0.1:2181

然后我们实现下ServiceRegistry接口ServiceRegistryImpl.java

644049856028

644049856028

RegisteryConfig.java

644049856028

最后是WebListener.java

644049856028

五、使用ZooKeeper客户端查看结果

首先启动zookeeper服务端。

修改application.properties文件里的

server.port=8080

用8080端口启动一次springboot

修改application.properties文件里的

server.port=8082

用8082端口启动一次springboot

最后 , 我们用命令zkCli.cmd -server 127.0.0.1:2181看下zookeeper的情况.

644049856028

我们再来观察一下节点的内容:

644049856028

644049856028

然后, 我们关掉用8082端口开启的springboot。

再次查看的时候,发现只有一个节点了

644049856028

然后,再次开启8082端口的springboot。

又出来了两个节点

644049856028

到这里 , 我们就基本实现了微服务的注册。

下一节,我们将实现微服务的node.js网关

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值