springCloud入门

1、SpringCloud是什么

springCloud入门
springCloud入门

2、SpringCloud与SpringBoot关系

springCloud入门

3、SpringCloud与Dubbo的区别

springCloud入门

4、入门案例

  • 创建 Maven 工程
    springCloud入门

  • 父工程依赖

  <!--springcloud-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Greenwich.SR1</version>
      <type>pom</type>
      <scope>import</scope>
  </dependency>
  <!--springboot-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.1.4.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
  </dependency>
  • 服务提供方
    现在提供方不仅仅只有 service 和 dao 层,还有 controller 层
    springCloud入门
  • 服务消费方
    消费方通过Http请求调用服务提供方
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
    =================================================
    //使用 RestTemplate 远程访问http服务,需要先注入到spring
    @Autowired
    private RestTemplate restTemplate;

    private static final String REST_URL_PREFIX = "http://localhost:8081";

    @RequestMapping("/consumer/dept/add")
    public boolean add(Dept dept){
        System.out.println(dept);
        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
    }

springCloud入门

5、Eureka注册中心

  • springCloud推荐使用 Eureka,那为什么使用注册中心?,由上面代码可以看到,消费者调用服务时使用 "http://localhost:8081" 调用服务,如果服务端改变端口号或者 IP,那么消费端也必须修改。所以不能硬编码,可以将服务注册到 Eureka,通过 Eureka 动态找到需要的服务。
    springCloud入门
  • Eureka Server
//依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka-server</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>


//application.yml配置
server:
  port: 7003
#Eureka配置
eureka:
  instance:
    hostname: eureka7003 #服务端名称
  client:
    register-with-eureka: false #是否向 eureka 注册
    fetch-registry: false #是否向 eureka 获取信息
    service-url:
      defaultZone: http://localhost:7001/eureka/
  • Eureka Client
//依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>

//提供方 application.yml配置
spring:
  application:
    name: springcloud-provide
#Eureka配置,服务注册
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/

//消费方 application.yml配置
#eureka配置
eureka:
  client:
    register-with-eureka: false #不向eureka注册
    service-url:
     defaultZone: http://localhost:7001/eureka/

//消费方使用**服务名**调用服务
    //eureka 通过服务名访问
    private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDE";

    @RequestMapping("/consumer/dept/add")
    public boolean add(Dept dept){
        System.out.println(dept);
        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
    }

springCloud入门

上一篇:JAVA Future类的详解


下一篇:python requests check_hostname requires server_hostname