• SpringCloud(一)


    创建一个项目

    1.导入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
      </parent>
    <!--eureka依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--springCloud依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

    2.创建application.yml文件

    ##声明端口号
    server:
      port: 8888
    ##配置eureka
    eureka:
      client:
    ##代表是否将自己注册到注册中心去
        register-with-eureka: false
    ##表明自己是注册中心
        fetch-registry: false
    ##配置地址
        service-url:
          defaultZone: http://localhost:8888/eureka

    3.启动类

    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServer {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServer.class, args);
        }
    }

    访问结果

     生产者和消费者

    生产者项目

    1.导入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
      </parent>
    
    <!--eureka依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
    <dependencies>
        <!--springCloud依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
    </dependencyManagement>

    2.创建application.yml文件

    ##配置应用名称
    spring:
      application:
        name: eu_provider
    ##声明端口号
    server:
      port: 8891
    ##配置eureka
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8888/eureka

    3.service接口

    public interface IDoService {
        public String doSome();
    }

    4.service实现类

    @RestController
    public class IDoServiceImpl implements IDoService {
    @RequestMapping("/doSome")
        @Override
        public String doSome() {
            System.out.println("服务提供者");
            return "eureka";
        }
    }

    启动类

    @SpringBootApplication
    @EnableEurekaClient
    public class EurekaServer {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServer.class, args);
        }
    }

    访问结果

     消费者项目

    1.导入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
      </parent>
    
     <!--eureka依赖-->
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    
      </dependencies>
    
      <dependencyManagement>
        <dependencies>
          <!--springCloud依赖-->
          <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>

    2.创建application.yml文件

    ##配置应用名称
    spring:
      application:
        name: eu_consumer
    ##声明端口号
    server:
      port: 8895
    ##配置eureka
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8888/eureka

    3,创建Controller

    @RestController
    public class ConsumerController {
        @Resource
        private RestTemplate restTemplate;
    
        @RequestMapping("/doSome")
        public String doSome(){
            System.out.println("ConsumerController");
            return restTemplate.getForObject("http://localhost:8891/doSome",String.class);
        }
    }

    启动类

    @SpringBootApplication
    @EnableEurekaClient
    /*@EnableFeignClients*/
    public class StaConsumer {
        public static void main(String[] args) {
            SpringApplication.run(StaConsumer.class, args);
        }
    
        @Bean
        /*@LoadBalanced   //实现负载均衡*/
        RestTemplate restTemplate(){
            return new RestTemplate();
        }
    
        //指定负载均衡策略
        @Bean
        public IRule ribbonRule(){
            return new RandomRule();
        }
    
    }

    访问结果

     

     负载均衡

    @RestController
    public class ConsumerController {
    @Resource
    private RestTemplate restTemplate;

    @RequestMapping("/doSome")
    public String doSome(){
    System.out.println("ConsumerController");
    return restTemplate.getForObject("http://eu_provider/doSome",String.class);
    }
    }

     Feign负载均衡策略

    1.引入依赖

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

      2.创建service层

    @FeignClient("eu_provider")
    public interface IDoService {
    @RequestMapping("/doSome")
    public String doSome();
    }

      3.编写controller

    复制代码
    @RestController
    public class ConsumerController {
    @RestController
    public class ConsumerController {
       /* @Resource
        private RestTemplate restTemplate;*/
        @Resource
        private IDoSomeService iDoSomeService;
    @RequestMapping("/doSome")
        public String doSome(){
            System.out.println("消费者");
            return iDoSomeService.doSome();
        }
    }
  • 相关阅读:
    Masonry代码自动布局的简单使用。
    iOS app 如何添加引导页。
    iOS应用程序发布AppStore及更新流程
    AFN的简单二次封装
    自定义tabbar(纯代码)
    自定义tabbar(storyBoard)
    GitHub tag的使用
    cvGetSize与cvSize的区别
    越界访问,调试真的很头疼
    Hadoop对文本文件的快速全局排序
  • 原文地址:https://www.cnblogs.com/Chencheno/p/12055602.html
Copyright © 2020-2023  润新知