Spring Cloud與Consul服務發現
阿新 • • 發佈:2019-02-05
Consul服務發現
Consul是一個開源的服務註冊發現工具,採用Go語言開發,支援多資料中心分散式高可用的服務發現和配置共享,廣泛應用在大規模分散式系統中。
Spring Cloud原生支援使用Consul做服務註冊發現,類似Eureka、ZooKeeper。
下載 Consul 軟體,對其執行consul agent -dev
,啟動開發模式
在專案中新增依賴
compile('org.springframework.cloud:spring-cloud-starter-consul-discovery')
新增consul註冊中心配置
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
service provider 服務提供者
在5030埠提供一組管理使用者資訊的介面:
@PostMapping("/user")
User addUser(@RequestBody User user);
@GetMapping("/getauser")
User getUser(@RequestParam("id") Integer id);
@GetMapping("/user")
List<User> getAllUser();
@DeleteMapping("/user")
void deleteUser(@RequestParam ("id") Integer id);
配置MySQL資料庫
spring.datasource.dbcp2.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=qqqq
spring.jpa.hibernate.ddl-auto=update
service consumer 服務消費者
這裡使用feign呼叫服務提供者,然後在5031埠提供使用者資訊相關介面
@PostMapping("/user/add/{name}")
User addUser(@PathVariable("name") String name);
@GetMapping("/user/{id}")
User getUser(@PathVariable("id") Integer id);
@GetMapping("/user")
List<User> getUserList();
[
{
"id": 1,
"name": "Lerry",
"img": "http://up.qqjia.com/z/16/tu17317_45.png",
"sex": "girl",
"age": 20,
"time": 1499761984675
},
{
"id": 4,
"name": "kity",
"img": "http://up.qqjia.com/z/16/tu17317_45.png",
"sex": "girl",
"age": 20,
"time": 1499762171942
}
]