此文已由作者赵计刚薪授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
一、首先编写微服务基础项目framework
1、pom.xml
说明:
2、com.microservice.framework.MySpringAplication
注意:这里的main方法声明是要有的(否则无法install为jar)。
3、com.microservice.framework.consul.ConsulRegisterListener
注意:这个代码是关键,后边会讲改代码的作用。
其中,ConsulProperties和Consul我们需要在代码中构建成Bean(如下变4和5),之后才能从容器中取出来,否则为null。
4、com.microservice.framework.consul.ConsulProperties
注意:
5、com.microservice.framework.consul.ConsulConfig
编写完上述代码后,执行"mvn clean install",如果成功的话,此时"framework-1.0-SNAPSHOT.jar"这个jar就会装载到本地的.m2/repository/com/microservice/framework/q.0-SNAPSHOT中了(mac中.m2默认在~下)
二、开发第一个微服务myserviceA
像上边所示,我们创建了client和server。
1、myserviceA
pom.xml
2、myserviceA-server
2.1、pom.xml
2.2、application.properties
说明:
2.3、com.microservice.myserviceA.MyServiceAApplication
说明:这里调用了framework中的MySpringAplication的run(),该run()首先初始化了SpringApplication实例,之后为该实例添加ConsulRegisterListener实例,最后再执行SpringApplication的run()。
ConsulRegisterListener的执行时机见附4 springboot源码解析-run(),简言之,就是
3、myserviceA-client
pom.xml
该client以后在需要用到的时候完成。
测试:启动consul,开发环境下,直接使用"consul agent -dev"快速启动,查看consul UI,如下:
启动"myserviceA-server",启动完成后,查看consul UI,如下:
表示注册成功,我们还可以查看myserviceA的健康检查URL,如下:
以上就完成了基本微服务架构的搭建与服务启动时自动注册!