摘要:環(huán)境搭建注冊中心依賴如下所示配置應(yīng)用啟動端口注冊中心管理中的應(yīng)用名稱登陸注冊管理中的的賬號密碼是否把自己注冊到注冊中心是否從上來獲取服務(wù)的注冊信息啟動注冊中心啟動后訪問登陸界面輸入設(shè)置的賬號密碼進(jìn)
環(huán)境
Java version 1.8
SpringBoot version 2.1.7
搭建注冊中心 Eureka-server
pom.xml 依賴如下所示:
org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-security javax.xml.bind jaxb-api com.sun.xml.bind jaxb-impl 2.3.0 org.glassfish.jaxb jaxb-runtime 2.3.0 javax.activation activation 1.1.1
配置 Eureka application.properties
# 應(yīng)用啟動端口 server.port=8090 # 注冊中心管理中的 應(yīng)用名稱 spring.application.name=eureka-server # 登陸注冊管理中的的賬號密碼 spring.security.user.roles=SUPERUSER spring.security.user.name=eureka spring.security.user.password=123456 # 是否把自己注冊到注冊中心 eureka.client.register-with-eureka=true # 是否從eureka上來獲取服務(wù)的注冊信息 eureka.client.fetch-registry=false eureka.instance.hostname=localhost eureka.client.serviceUrl.defaultZone=http://eureka:123456@localhost:8090/eureka
啟動注冊中心 啟動后訪問(http://127.0.0.1:8090)
登陸界面
2. 輸入設(shè)置的賬號密碼(user:eureka pwd:123456) 3. 進(jìn)入注冊中心頁面
需要注意的是 需要處理下CSRF不然服務(wù)提供者注冊不進(jìn)來 啟動入口文件如下
EurekaServiceApplication.java
@EnableEurekaServer @SpringBootApplication public class EurekaServiceApplication { public static void main(String[] args) { SpringApplication.run(EurekaServiceApplication.class, args); } /** * 忽略 uri /eureka/** 的CSRF檢測 */ @EnableWebSecurity static class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } } }
簡單的注冊中心已經(jīng)搭建完成
搭建服務(wù)提供者 Provider-service
首先還是配置文件 application.properties
服務(wù)端口 server.port=8081 # 服務(wù)應(yīng)用名稱 spring.application.name=provider-ticket # 是否允許使用ip連接 eureka.instance.ip-address=true # 注意 http://用戶名:密碼@主機(jī):端口/eureka 需要與服務(wù)中心里配置的一樣 eureka.client.serviceUrl.defaultZone=http://eureka:123456@localhost:8090/eureka
啟動 項目后會自動把服務(wù)注冊到配置的服務(wù)中心
以下是我做的測試代碼
TicketController.java
package com.yourdream.providerticket.controller; import com.yourdream.providerticket.service.TicketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TicketController { @Autowired TicketService ticketService; @GetMapping("/ticket") public String getTicket(){ System.out.println("server-8081"); return ticketService.getTicket(); } }
TicketService
package com.yourdream.providerticket.service; import org.springframework.stereotype.Service; @Service public class TicketService { public String getTicket() { return "《哪吒之魔童降世》"; } }
ProviderTicketApplication
package com.yourdream.providerticket; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ProviderTicketApplication { public static void main(String[] args) { SpringApplication.run(ProviderTicketApplication.class, args); } }
到此一個簡單的服務(wù)提供者搭建完成
搭建服務(wù)消費者 Consumer-user
首先還是配置文件 application.properties
server.port=8100 spring.application.name=consumer-user eureka.client.serviceUrl.defaultZone=http://eureka:123456@localhost:8090/eureka eureka.instance.ip-address=true
首先需要明確 消費者與服務(wù)提供者之間通訊協(xié)議是HTTP
看下實例代碼
啟動入口 ConsumerUserApplication.java
package com.yourdream.consumeruser; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @EnableDiscoveryClient //開啟發(fā)現(xiàn)服務(wù)功能 @SpringBootApplication public class ConsumerUserApplication { public static void main(String[] args) { SpringApplication.run(ConsumerUserApplication.class, args); } @LoadBalanced //開啟負(fù)載均衡器 @Bean //注冊 RestTemplate 服務(wù) public RestTemplate restTemplate() { return new RestTemplate(); } }
UserController.java
package com.yourdream.consumeruser.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class UserController { // 幫助我們向 注冊的實例服務(wù) 發(fā)起http請求 @Autowired RestTemplate restTemplate; @GetMapping("/buy") public String buyTicket(String name) { //PROVIDER-TICKET 服務(wù)提供者名稱 String forObject = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class); return name + "購買了" + forObject; } }
啟動服務(wù) 訪問http://127.0.0.1:8100/buy
到此一個簡單的服務(wù)消費者搭建完成
原文
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76261.html
摘要:同時除了對號碼自身的要求,業(yè)務(wù)還對號生成系統(tǒng)的可用性要求極高,想象一下,如果生成系統(tǒng)癱瘓,整個美團(tuán)點評支付優(yōu)惠券發(fā)券騎手派單等關(guān)鍵動作都無法執(zhí)行,這就會帶來一場災(zāi)難。 分布式id主要用到哪些地方 在復(fù)雜分布式系統(tǒng)中,往往需要對大量的數(shù)據(jù)和消息進(jìn)行唯一標(biāo)識。如在美團(tuán)點評的金融、支付、餐飲、酒店、貓眼電影等產(chǎn)品的系統(tǒng)中,數(shù)據(jù)日漸增長,對數(shù)據(jù)分庫分表后需要有一個唯一ID來標(biāo)識一條數(shù)據(jù)或消息,...
摘要:利用分布式數(shù)據(jù)庫實現(xiàn)了物理分離,邏輯統(tǒng)一的優(yōu)勢。這樣的基本特點讓分布式數(shù)據(jù)庫具有數(shù)據(jù)獨立性和位置透明性,局部應(yīng)用響應(yīng)速度升級。在互聯(lián)網(wǎng)大潮的背景下,中國的分布式數(shù)據(jù)庫出現(xiàn),這也填補(bǔ)了國內(nèi)數(shù)據(jù)庫的空白。 原文地址:http://digi.163.com/17/1114/0... 分布式數(shù)據(jù)庫在今年突然成為熱點技術(shù)。這背后究竟有哪些環(huán)境變化導(dǎo)致了這種技術(shù)演進(jìn),分布式數(shù)據(jù)庫的優(yōu)勢在哪兒?這種...
閱讀 2054·2023-04-26 00:16
閱讀 3513·2021-11-15 11:38
閱讀 3202·2019-08-30 12:50
閱讀 3211·2019-08-29 13:59
閱讀 778·2019-08-29 13:54
閱讀 2543·2019-08-29 13:42
閱讀 3338·2019-08-26 11:45
閱讀 2216·2019-08-26 11:36