SpringCloud入门相关知识点二

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

  1. 新建microservicecloud-consumer-dept-80
            
        
     
  2. 修改pom.xml文件
     
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.topcheer</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>microservicecloud-consumer-dept-80</artifactId>
      <description>部门微服务消费者</description>
      
      <dependencies>
            <!--这里我们引入自己自定义的api通用包,就可以使用Dept部门实体  --> 
    	    <dependency>
    	       <groupId>com.topcheer</groupId>
    	       <artifactId>microservicecloud-api</artifactId>
    	       <version>${project.version}</version> 
    	    </dependency>
    	     <dependency>
    	       <groupId>org.springframework.boot</groupId>
    	       <artifactId>spring-boot-starter-web</artifactId>
    	    </dependency>
    	    <!--修改后立即热部署  -->
    		<dependency>
    		       <groupId>org.springframework</groupId>
    		       <artifactId>springloaded</artifactId>
    		</dependency>
    		<dependency>
    		       <groupId>org.springframework.boot</groupId>
    		       <artifactId>spring-boot-devtools</artifactId>
    		</dependency>
      </dependencies>
    </project>
  3. 修改application.yml文件
     
  4. 创建配置类信息ConfigBean

    RestTemplate简介
     
     
  5. 创建消费者controller类
     
     
    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<Dept> list() {
    		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
    	}
    }
    
  6. 创建启动类DeptConsumer80_App

     

    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
         效果:
              
    ⑵ 测试路径:http://localhost/consumer/dept/get/2
          
    ⑶测试路径:http://localhost/consumer/dept/add?dname=gogogo
         
        

二:Eureka服务注册与发现

  1. 什么是Eureka?
            
  2. Eureka基本架构和原理
         
         
        
  3. Eureka的三大角色
     ①Eureka Server提供服务注册和发现
     ②Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
     ③Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务
  4. 建立EurekaServer服务注册中心
      ⑴创建子模块microservicecloud-eureka-7001
            
            
            
      ⑵修改pom.xml文件
            
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.topcheer</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>microservicecloud-eureka-7001</artifactId>
      
      <dependencies>
        <!--添加eureka-server服务端依赖  -->
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency> 
        <!--修改后立即热部署  -->
    	<dependency>
    	       <groupId>org.springframework</groupId>
    	       <artifactId>springloaded</artifactId>
    	</dependency>
    	<dependency>
    	       <groupId>org.springframework.boot</groupId>
    	       <artifactId>spring-boot-devtools</artifactId>
    	</dependency>
      </dependencies>
    </project>

      ⑶创建application.yml文件
             
            
    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的启动类
          
          
      ⑸测试7001服务,老方法启动这个7001微服务
           
  5. 将部门微服务提供者8001注册进Eureka服务中心
     ⑴修改microservicecloud-provider-dept-8001微服务的pom.xml文件,添加依赖
           
      ⑵ 修改microservicecloud-provider-dept-8001微服务的application.yml文件
          
      ⑶修改DeptProvider8001_App这个启动类
           
       ⑷启动7001注册中心和8001微服务提供者服务端
             访问7001效果:
                    
                    
          ⑸但是现在出现一个问题,几分钟后,页面出现下面效果,出现红色字体
               (这个是eureka自我保护,后面说)
                   
         ⑹springcloud微服务完善,主机映射名称修改,修改8001的application.yml文件
              
             效果:
                
          ⑺修改主机IP信息提示,修改8001的application.yml文件
                现在的效果:
                          
                修改的内容:
                          
                效果:
                     

文章目录

猜你喜欢

转载自blog.csdn.net/K_520_W/article/details/84961578
今日推荐