SpringCloud入门实战二

一:SpringCloud聚合子模块之microservicecloud-consumer-dept-80,部门服务消费者

  1. 新建microservicecloud-consumer-dept-80
     SpringCloud入门实战二_第1张图片       
     SpringCloud入门实战二_第2张图片   
     SpringCloud入门实战二_第3张图片
  2. 修改pom.xml文件
     
    
      4.0.0
      
        com.topcheer
        microservicecloud
        0.0.1-SNAPSHOT
      
      microservicecloud-consumer-dept-80
      部门微服务消费者
      
      
             
    	    
    	       com.topcheer
    	       microservicecloud-api
    	       ${project.version} 
    	    
    	     
    	       org.springframework.boot
    	       spring-boot-starter-web
    	    
    	    
    		
    		       org.springframework
    		       springloaded
    		
    		
    		       org.springframework.boot
    		       spring-boot-devtools
    		
      
    

     

  3. 修改application.yml文件
     SpringCloud入门实战二_第4张图片
  4. 创建配置类信息ConfigBean
    SpringCloud入门实战二_第5张图片
    RestTemplate简介
     
     SpringCloud入门实战二_第6张图片
  5. 创建消费者controller类
     SpringCloud入门实战二_第7张图片
     
    package com.topcheer.springcloud.controller;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    import com.topcheer.springcloud.entities.Dept;
    
    @RestController
    public class DeptController_Consumer {
    
    	//定义调用服务端的基本路径地址
    	private static final String REST_URL_PREFIX = "http://localhost:8001";
    	
    	@Autowired
    	private RestTemplate restTemplate;//使用restTemplate远程调用服务端接口
    	
    	@RequestMapping(value="/consumer/dept/add")
    	public boolean add(Dept dept) {
    		//restTemplate需要的三个参数:路径,参数,返回类型
    		return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add", dept, boolean.class);
    	}
    	@RequestMapping(value="/consumer/dept/get/{id}")
    	public Dept get(@PathVariable("id") Long id) {
    		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id, Dept.class);
    	}
    	
    	@SuppressWarnings("unchecked")
    	@RequestMapping(value="/consumer/dept/list")
    	public List list() {
    		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
    	}
    }
    

     

  6. 创建启动类DeptConsumer80_App
    SpringCloud入门实战二_第8张图片
     

    package com.topcheer.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class DeptConsumer80_App {
    	
    	public static void main(String[] args) {
    		SpringApplication.run(DeptConsumer80_App.class, args);
    	}
    
    }
    

     

  7. 将微服务的服务端和消费端都启动起来并且测试刚刚创建的消费端,看看是否可以调用服务端接口
     ⑴测试路径:http://localhost/consumer/dept/list
         效果:
              SpringCloud入门实战二_第9张图片
    ⑵ 测试路径:http://localhost/consumer/dept/get/2
          SpringCloud入门实战二_第10张图片
    ⑶测试路径:http://localhost/consumer/dept/add?dname=gogogo
         SpringCloud入门实战二_第11张图片
        SpringCloud入门实战二_第12张图片

二:Eureka服务注册与发现

  1. 什么是Eureka?
            
  2. Eureka基本架构和原理
         SpringCloud入门实战二_第13张图片
         SpringCloud入门实战二_第14张图片
        SpringCloud入门实战二_第15张图片
  3. Eureka的三大角色
     ①Eureka Server提供服务注册和发现
     ②Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
     ③Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务
  4. 建立EurekaServer服务注册中心
      ⑴创建子模块microservicecloud-eureka-7001
            SpringCloud入门实战二_第16张图片
            SpringCloud入门实战二_第17张图片
            SpringCloud入门实战二_第18张图片
      ⑵修改pom.xml文件
            
    
      4.0.0
      
        com.topcheer
        microservicecloud
        0.0.1-SNAPSHOT
      
      microservicecloud-eureka-7001
      
      
        
        
          org.springframework.cloud
          spring-cloud-starter-eureka-server
         
        
    	
    	       org.springframework
    	       springloaded
    	
    	
    	       org.springframework.boot
    	       spring-boot-devtools
    	
      
    

      ⑶创建application.yml文件
            SpringCloud入门实战二_第19张图片 
            
    server:
      port: 7001
      
    eureka:
      instance:
        hostname: localhost #这个是eureka服务端的实例名称
      client:
        register-with-eureka: false #false表示我们这个7001服务不向注册中心注册自己
        fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url:  #下面的这个defaultZone,设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #其实就是上面定义的http://localhost:7001/eureka/    

      ⑷创建7001的启动类
          SpringCloud入门实战二_第20张图片
          SpringCloud入门实战二_第21张图片
      ⑸测试7001服务,老方法启动这个7001微服务
           SpringCloud入门实战二_第22张图片
  5. 将部门微服务提供者8001注册进Eureka服务中心
     ⑴修改microservicecloud-provider-dept-8001微服务的pom.xml文件,添加依赖
          SpringCloud入门实战二_第23张图片 
      ⑵ 修改microservicecloud-provider-dept-8001微服务的application.yml文件
          SpringCloud入门实战二_第24张图片
      ⑶修改DeptProvider8001_App这个启动类
           SpringCloud入门实战二_第25张图片
       ⑷启动7001注册中心和8001微服务提供者服务端
             访问7001效果:
                   SpringCloud入门实战二_第26张图片 
                    SpringCloud入门实战二_第27张图片
          ⑸但是现在出现一个问题,几分钟后,页面出现下面效果,出现红色字体
               (这个是eureka自我保护,后面说)
                SpringCloud入门实战二_第28张图片   
         ⑹springcloud微服务完善,主机映射名称修改,修改8001的application.yml文件
              SpringCloud入门实战二_第29张图片
             效果:
                SpringCloud入门实战二_第30张图片
          ⑺修改主机IP信息提示,修改8001的application.yml文件
                现在的效果:
                     SpringCloud入门实战二_第31张图片     
                修改的内容:
                     SpringCloud入门实战二_第32张图片     
                效果:
                    SpringCloud入门实战二_第33张图片 

文章目录

你可能感兴趣的:(SpringCloud,微服务,springboot,Eureka)