Spring Cloud Consul

项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性

Consul

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式” ,内置了服务注册与发现框 架、具有以下性质:

● 分布一致性协议实现

● 健康检查

● Key/Value存储

● 多数据中心方案

不再需要依赖其他工具(比如ZooKeeper等)

添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

consul-all依赖提供了哪些功能?

<!--消息总线,提供配置实时刷新,不再依赖中间件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-bus</artifactId>
</dependency>
<!--consul的配置中心功能-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<!--服务注册和发现功能-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

bootstarp.yml

这里要注意是要配置在 bootstarp.yml

spring:
application:
name: pig-consul
cloud:
consul:
host: localhost
port: 8500
config:
enabled: true
format: KEY_VALUE
watch:
enabled: true
prefix: pig-config

安装consul

下载: https://www.consul.io/downloads.html

使用:(dev模式,生成建议cluster模式)

-dev表示开发模式运行,使用-client 参数可指定允许客户端使用什么ip去访问,例如-client 127.0.0.1 表示可以使用。  

consul agent -dev -client 127.0.0.1

生产配置参考:

https://www.consul.io/intro/getting-started/join.html

http://127.0.0.1:8500/ui/ 去访问

image

配置config

image

demo

@RestController
public class DemoController {
@Value("${author}")
private String author;
<span class="token annotation builtin">@GetMapping</span><span class="token punctuation">(</span><span class="token string">"/demo"</span><span class="token punctuation">)</span>
<span class="token keyword">public</span> String <span class="token function">demo</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> author<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

}

关于实时刷新配置

spring:
cloud:
consul:
config:
watch:
enabled: true

然后应用要开启定时任务

@EnableScheduling

总结

  1. 相较于spring cloud config 的配置中心,使用起来较为麻烦,但是对于实时刷新,这块要优于spring cloud config 的,不依赖于中间件的消息通知,也不会出现服务下线的问题。
  2. 这篇文章主要是入门,更高级的使用Consul Config 结合 Git 来做版本控制,请参考我后边的文章
  3. 关于pig:基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台,支持账号、短信、SSO等多种登录,提供配套视频开发教程

原文地址:https://www.jianshu.com/p/b1463c1df5a2

最新文章

  1. [软件推荐]Windows文件夹多标签工具Clover
  2. DE2-115开发板学习(1_时钟信号引脚分配与复位信号的产生)
  3. HDU2045
  4. 【读书笔记】-【编程语言的实现模式】-【LL(1)递归下降的语法解析器】
  5. 无法解决 equal to 运算中 &quot;Chinese_PRC_BIN&quot; 和 &quot;Chinese_PRC_CI_AS&quot; 之间的排序规则冲突
  6. iOS开发的一些奇巧淫技2
  7. MySQL之多表操作
  8. 未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0
  9. c语言 实验1
  10. css样式的书写顺序及原理
  11. 深入理解Redis高可用方案-Sentinel
  12. redis健康检查与故障转移
  13. 用Nginx给网站做一个简单的防盗链
  14. 面向对象+JAVA基础
  15. Luogu4195 【模板】exBSGS(exBSGS)
  16. Windows与Linux的回车换行转换
  17. PTA 7-50 畅通工程之局部最小花费问题(最小生成树Kruskal)
  18. SimpleVisitorMemberType类的visitClassType解读
  19. android自动化之MonkeyRunner测试环境配置(一)
  20. Java基础之PDF文件的合并

热门文章

  1. linux下终端字体彩色显示
  2. 002 centos7中遇到的问题
  3. [转]eclipse常用设置
  4. HTML中 :after和:before的作用及使用方法(转)
  5. typeScript模块&lt;四&gt;
  6. SpringBoot配置加载顺序
  7. Java二维数组的应用
  8. 正确删除k8s版本jenkins的pod
  9. axios发了两次请求
  10. log4net使用简明教程,快看看哟