Spring Cloud 快速入門


 Spring Cloud快速入門

代碼地址:

https://gitee.com/gloryxu/spring-cloud-test

 

EureKa:服務注冊中心

添加依賴 

     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

開啟Eureka Server

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }

}

配置

#設置tomcat服務端口號
server.port=8101
# 本地調試環境下關閉自我保護機制
eureka.server.enable-self-preservation=false
# 清理間隔時間,單位為毫秒
eureka.server.eviction-interval-timer-in-ms=5000
#設置服務名稱
spring.application.name=eureka-service

eureka.instance.hostname=localhost
#注冊中心不需要注冊自己
eureka.client.register-with-eureka=false
#注冊中心不需要去發現服務
eureka.client.fetch-registry=false
#設置服務注冊中心的URL
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka

 啟動成功

 

2.創建一個服務提供者

添加依賴

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

 

@EnableDiscoveryClient // 聲明這是一個Eureka Client
@SpringBootApplication
public class Server1Application {

    public static void main(String[] args) {
        SpringApplication.run(Server1Application.class, args);
    }

}

 添加配置

server.port=9090
#設置服務名
spring.application.name=hello-service
#設置服務注冊中心的URL,本服務要向該服務注冊中心注冊自己
eureka.client.serviceUrl.defaultZone=http://localhost:8101/eureka

添加Controller

@RestController
public class HelloController {

    Logger logger = LoggerFactory.getLogger(HelloController.class);

    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
}

 

啟動注冊成功

 

3.創建一個消費者

添加依賴

    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

 

LoadBalanced 方式可實現負載均衡
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }

}

添加配置

server.port=2222

spring.application.name=hello-consumer
eureka.client.serviceUrl.defaultZone=http://localhost:8101/eureka/

 

 聲明Feign方式 ,value為注冊的服務名

@FeignClient(value = "hello-service")
public interface HelloService {
    @RequestMapping(value = "/hello")
    String hello();
}

 

以下以兩種方式調用服務提供者,一種是以Rest方式,另一種以Feign方式

@RestController
public class ConsumerController {

    Logger logger = LoggerFactory.getLogger(ConsumerController.class);


    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    HelloService helloService;

    @GetMapping("/getserver")
    public String getserver() {
        String xx=restTemplate.getForObject("http://hello-service/hello", String.class);
        return "consumer finish result:"+xx;
    }

    @GetMapping("/gettest")
    public String gettest(){
        return helloService.hello();
    }
}

 

啟動 

 

 

 

 

4.創建Zuul路由

添加依賴

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

 

加入注解,以便注冊到注冊中心

@EnableZuulProxy
@SpringBootApplication
public class ZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }

}

 

配置路由,以下是以服務的方式調用

spring.application.name=eureka-zuul
server.port=8765
zuul.routes.hello-service.path=/hello-service/**
zuul.routes.hello-service.serviceId=hello-service
eureka.client.serviceUrl.defaultZone=http://localhost:8101/eureka/

 

啟動 注冊成功,調用成功

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM