唯能極於情,故能極於劍
有問題或錯誤請及時聯系小編或關注小編公眾號 “CodeCow”,小編一定及時回復和改正,期待和大家一起學習交流
此文由四部分組成(Consul簡介、安裝、實操、總結),別着急,慢慢來
一、Consul
- 官網:Consul 是一種服務網格解決方案,提供具有服務發現,配置中心和分段功能的全功能控制平面。這些功能中的每一個都可以根據需要單獨使用,也可以一起使用以構建完整的服務網格 …總之,Consul提供了一種完整的服務網格解決方案
- 自己:Consul 就是一套開源的分布式服務發現和配置管理系統,由HashiCorp公司用 Go 語言開發
小編就不多 BB 先來張圖 壓壓驚
可以發現,Consul 這哥們 干掉了 Eureka,你說他能干嘛 ^ _ ^ , 只不過 Consul 是CP(數據一致性)、Eureka 是 AP(高可用性)
看看 Consul 這哥們有啥技能 :
- KV存儲:Key、Value的存儲方式
- 服務發現:提供HTTP/DNS兩種發現方式
- 健康檢測:支持多種方式,HTTP、TCP、Docker、shell腳本定制化
- 多數據中心:Consul支持多數據中心
- 可視化界面
1.3、Consul 怎么玩 ? :
- Consul中文網:https://www.springcloud.cc/spring-cloud-consul.html 好男人必備網站,哈哈
不會玩的朋友別着急,看下面小編娓娓道來
二、Consul 安裝
1、進入consul官網下載地址:https://www.consul.io/downloads.html
2、根據自己需要下載對應安裝包
3、把安裝包解壓,解壓后生成一個 consul.exe 文件
4、在含有consul.exe目錄文件夾下(就是第二部解壓目錄) 輸入 cmd ,然后空格,進入命令行模式
5、輸入 consul --version 查看當前 Consul版本(正常顯示為:Consul v1.x.x)
6、輸入 consul agent -dev 啟動 Consul
7、進入瀏覽器,在地址欄輸入:localhost:8500 出現下面界面代表成功 ^ _ ^
三、Consul 實操
前兩個步驟完事了,不來點 硬核 咋行呢,下面小編就結合實際開發和大家聊聊
1、首先導包
<!-- 服務注冊與發現 consul -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!-- 監控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
若還有其他需要可自行導包
2、改 YML 配置文件
server: port: 8006 //端口號 spring: application: name: cloud-payment-service //服務名 cloud: consul: host: localhost //consul的IP(可以改成自己電腦ip) port: 8500 //consul啟動端口默認8500 discovery: service-name: ${spring.application.name} prefer-ip-address: true //不寫這個配置,在docker下的consul里面健康檢查會失敗 healthCheckInterval: 5s //健康檢查頻率 port: ${server.port} //注冊服務所在端口 //================================================================================ //下面根據自己需要添加 datasource: url: jdbc:mysql://localhost:3306/spring_cloud_2020?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource mybatis-plus: typeAliasesPackage: top.msxdlb.springcloud.bean.entity //實體掃描,多個package用逗號或者分號分隔
3、添加主啟動類
@SpringBootApplication // springboot 注解 @EnableDiscoveryClient // 作用:能夠讓注冊中心發現,並掃描到該服務 public class ConsulMain8006 { public static void main(String[] args) { SpringApplication.run(ConsulMain8006.class, args); } }
4、啟動服務,可以看到 Consul 多出一個 cloud-payment-service 服務
朋友,這頓 SAO 操作 還可以吧,哈哈,加油 ^ _ ^
四、總結
這是 SpringCloud 的 Consul 篇,后續小編會從 “OpenFeign、Hystrix、Gateway …...” 等堅持以博客的方式來分享自己對SpringCloud 的理解,並從不同角度和大家分享工作心得,並且含有相關Demo,最終小編會發布到GitHub上,供大家下載、分享、交流、指正,下面是源碼地址:
GitHub:https://github.com/msxdlb/Spring-Cloud-2020
有問題或錯誤請及時聯系小編或關注小編公眾號 “CodeCow”,小編一定及時回復和改正 啦
《 合抱之木,生於毫末 》 別急,慢慢來
2020/04/15 午后