栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud+eureka

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud+eureka

eureka集群

主pom

  
    UTF-8
    1.8
    1.8



  

  
    
      
        org.springframework.boot
        spring-boot-dependencies
        2.2.2.RELEASE
        pom
        import
      
      
        org.springframework.cloud
        spring-cloud-dependencies
        Hoxton.SR1
        pom
        import
      
      
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.1.0.RELEASE
        pom
        import
      
      
        mysql
        mysql-connector-java
        8.0.28
        pom
        import
      
      
        com.alibaba
        druid
        1.2.4
        pom
        import
      
      
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        2.1.3
        pom
        import
      

    
  
  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
        2.3.4.RELEASE
        
          true
          true
        
      
    
  

微服务

提取公共实体

pom

        
            org.projectlombok
            lombok
        
        
            org.springframework.boot
            spring-boot-devtools
        
        
            cn.hutool
            hutool-all
            5.5.7
        
    

注:实体类直接创建即刻

注入

@Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced //负载均衡
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

使用

@RestController
@Slf4j
public class OrderController {
    @Resource
    RestTemplate restTemplate;

//    public static final String PAYMENT_URL="http://localhost:8001"; //单机
    public static final String PAYMENT_URL="http://CLOUD-PAYMENT-SERVICE"; //集群

    @GetMapping("/consumer/payment/create")
    public CommonResult create(Payment payment){
        return  restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment,CommonResult.class);
    }

    @GetMapping("/consumer/payment/get/{id}")
    public CommonResult getPayment(@PathVariable("id") long id){
        return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
    }
}

eureka

两注解

@EnableEurekaClient //用于consumer以及provider
@EnableEurekaServer //用于server

consumer——pom

    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
    

    
        org.example
        cloud-api-commons
        1.0-SNAPSHOT
    

    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
 
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    
    
        org.projectlombok
        lombok
    
    
        org.springframework.boot
        spring-boot-starter-test
    
    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    

consumer——yml
server:
  port: 88
spring:
  application:
    name: cloud-order-service
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
#      defaultZone: http://localhost:7001/eureka 单机版本
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版本

provider——pom

    
        org.example
        cloud-api-commons
        1.0-SNAPSHOT
    
    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
    
    
        com.alibaba
        druid-spring-boot-starter
        1.2.4
    
    
        mysql
        mysql-connector-java
    
    
        org.springframework.boot
        spring-boot-starter-jdbc
    
    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    
    
        org.projectlombok
        lombok
    
    
        org.springframework.boot
        spring-boot-starter-test
    
    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    

provider——yml
server:
  port: 8001
spring:
  application:
    name: cloud-payment-service
  datasource:
    druid:
      db-type: com.alibaba.druid.poor.DruidDataSource
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: root
      password: jp3212217

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.pxx.cloud.entities

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
#      defaultZone: http://localhost:7001/eureka # 单机版本
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群版本
  instance:
    instance-id: payment8001
    prefer-ip-address: true
#自我保护机制对应设置
    lease-renewal-interval-in-seconds: 1 #客户端向服务端发送心跳时间间隔(s,默认30s)
    lease-expiration-duration-in-seconds: 2 #服务端受到最后一次心跳后等待时间上限(s,默认90s,超时将剔除服务)

eureka——server——pom

    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-server
    
    
        org.example
        cloud-api-commons
        1.0-SNAPSHOT
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
        org.springframework.boot
        spring-boot-starter-test
    

eureka——server——yml
server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/

服务发现
@Resource
    private DiscoveryClient discoveryClient;


@GetMapping("/payment/discovery")
    public Object discovery(){
        List services = discoveryClient.getServices();//得到服务清单列表
        for (String service : services) {
            log.info(service);
        }
        List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
        for (ServiceInstance instance : instances) {
            log.info(instance.getInstanceId()+instance.getHost()+instance.getPort()+instance.getUri());
        }
        return this.discoveryClient;

    }
自我保护机制

默认开启

7001关闭自我保护机制

server:
  enable-self-preservation: false
  eviction-interval-timer-in-ms: 2000

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/843078.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号