SpringCloud 集成 Consul
SpringBoot ,SpringCloud 可以说是在 Spring 里面最流行的,确实它的上手要比以前开发真的方便很多,约定优于配置。
springcloud可以理解成基于springboot的各种解决方案。
集成consul
我们没有使用eureka作为注册中心,而是使用consul,为什么了?因为eureka停止更新了。嗯,是的,如果没有人继续维护了,那我就觉得使用起来就会有局限性,这个不是在前期,而是在后期。而且官方都不更新维护了,以后我发现bug,都没有提PR的地方了~~~~嘿嘿。其实个人觉得注册中心以后可能会下沉,比如现在的k8s,就已经在底层平台解决了服务发现与注册的问题。当然那是扯远了,我们暂时还是先用consul做我们的注册中心,毕竟一套k8s也并不是那么好玩的。
在官网下载consul的安装包,然后使用consul agent -dev
我们就可以在通过http://IP:8500
端口来访问了。
Springcloud 集成consul
服务提供方
我们的代码结构如下:
我们使用springcloud提供的spring-cloud-starter-consul-discovery
,这是集成了consul的starter,完整的pom.xml
如下:
1 |
|
然后看下我们的application.yml
:
1 |
|
在服务提供方我们的代码如下:
1 | package me.chenzhijun.consul; |
我们这里需要使用@EnableDiscoveryClient
这样就能让项目注册到consul了。
服务调用方
既然是注册中心,我们有了服务提供方,当然需要服务调用方啦。调用方的结构如下:
pom文件的内容类似pom.xml
:
1 |
|
application.yml
:
1 | spring: |
我们再看Application.java
的内容:
1 | package me.chenzhijun.calltest; |
之后在浏览器里面访问http://localhost:8088/abc
就能看到返回Hello World123
了。
ps:
1:为什么RestTemplate必须要使用@LoadBalanced ?
2:springboot actuator starter 能否去掉,去掉的话应该怎么实现?
3:你觉得独立的注册中心未来的路会是怎样?
今天5月31日,改日回答,记住来看答案。