1.Eureka单点

  1.1 建Module

  1.2 POM

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-actuator

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

  1.3 Yml

server:

port: 7001

eureka:

instance:

hostname: localhost #eureka服务端的实例名字

client:

register-with-eureka: false #表识不向注册中心注册自己

fetch-registry: false #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务

service-url:

defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址

  1.4 主启动

@EnableEurekaServer

@SpringBootApplication

public class EurekaMain7001 {

public static void main(String[] args) {

SpringApplication.run(EurekaMain7001.class, args);

}

}

 

2.支付服务注册

  2.1 增加POM

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

  2.2 写YML

server:

port: 8001

spring:

application:

name: cloud-payment-service

eureka:

client:

register-with-eureka: true

fetch-registry: true

service-url:

defaultZone: http://localhost:7001/eureka

  2.3 主启动

@EnableEurekaClient

@SpringBootApplication

public class PaymentMain {

public static void main(String[] args) {

SpringApplication.run(PaymentMain.class, args);

}

}

  2.4 服务中心

3.订单服务注册

  3.1 增加POM

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

  3.2 写Yml

server:

port: 8001

eureka:

client:

register-with-eureka: true

fetch-registry: true

service-url:

defaultZone: http://localhost:7001/eureka

spring:

application:

name: cloud-payment-service

  3.3 使用@LoadBalanced

@Configuration

public class ApplicationContextConfig {

@LoadBalanced

@Bean

public RestTemplate getRestTemplate(){

return new RestTemplate();

}

}

  3.4 业务代码

@RestController()

@RequestMapping("order")

@Slf4j

public class OrderController {

public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";

@GetMapping("/get/{id}")

public CommonResult getPayment(@PathVariable("id") Long id){

return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);

}

4.actuator微服务信息完善

  4.1 服务名称修改

eureka:

instance:

instance-id: payment${server.port}

  4.2 访问有ip信息提示

eureka:

instance:

prefer-ip-address: true

5.关闭保护机制

  5.1 Server端yml

eureka:

server:

enable-self-preservation: false

eviction-interval-timer-in-ms: 2000

  5.2 服务端

eureka:

instance:

lease-renewal-interval-in-seconds: 10

lease-expiration-duration-in-seconds: 10

  5.3 最后集群配置

server:

port: 7002

eureka:

instance:

hostname: eureka7002.com

ip-address: 192.168.2.3 #强制指定IP地址,默认会获取本机的IP地址

prefer-ip-address: true

instance-id: ${eureka.instance.ip-address}:${server.port}

client:

fetch-registry: false #表示是否从Eureka Server获取注册的服务信息

register-with-eureka: false #falase表示不向注册中心注册自己

service-url:

defaultZone: http://192.168.2.17:7001/eureka/ #设置与eureka server交互的地址查询服务和注

server:

enable-self-preservation: false #关闭自我保护机制

eviction-interval-timer-in-ms: 2000 #移除失效服务时间

spring:

config:

location: classpath:/,file:./config/

cloud:

inetutils:

# 忽略指定网卡,支持正则表达式(这里使用正则表达式忽略所有虚拟机网卡)

ignored-interfaces: ['VMware.*']

use-only-site-local-interfaces: true

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: