标签:插入 main 使用 log 0ms 生产环境 rpo 导入 second
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka7002.com:7002/eureka/
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
<!-- 注册到集群的所有机器中 --> defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
@RestController @Slf4j public class PaymentController { @Resource private PaymentService paymentService; @Value("${server.port}") private String serverPort; @PostMapping(value = "/payment/create") public CommonResult create(@RequestBody Payment payment) { int result = paymentService.create(payment); log.info("插入结果: " + result + "aaa"); if (result > 0) { return new CommonResult(200, "插入数据库成功, serverPort:"+serverPort, result); } return new CommonResult(444, "插入数据库失败"); } @GetMapping(value = "/payment/get/{id}") public CommonResult getPaymentById(@PathVariable("id") Long id) { Payment payment = paymentService.getPaymentById(id); log.info("插入结果: " + payment + "haha"); if (payment != null) { return new CommonResult(200, "查询成功, serverPort:"+serverPort, payment); } return new CommonResult(444, "没有对应记录, 查询ID:" + id); } }
@RestController @Slf4j public class OrderController { //private static final String PAYMENT_URL = "http://localhost:8001"; private static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE"; @Resource private RestTemplate restTemplate; //浏览器只能发get请求, 但下面调用的实质是post请求 @GetMapping("/consumer/payment/create") public CommonResult<Payment> create(Payment payment) { log.info(payment.toString()); String url = PAYMENT_URL + "/payment/create"; return restTemplate.postForObject(url, payment, CommonResult.class); } @GetMapping("/consumer/payment/get/{id}") public CommonResult<Payment> getPayment(@PathVariable("id") Long id) { String url = PAYMENT_URL + "/payment/get/" + id; return restTemplate.getForObject(url, CommonResult.class); } }
@Configuration public class ApplicationContextConfig { //使用@LoadBalanced注解赋予了RestTemplate负载均衡的能力 @LoadBalanced @Bean public RestTemplate getRestTemplate() { return new RestTemplate(); } }
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
eureka.instance.instance-id: payment8001
---
eureka.instance.instance-id: payment8002
eureka.instance.prefer-ip-address: true
@Resource private DiscoveryClient discoveryClient; @GetMapping(value = "/payment/discovery") public CommonResult discover() { List<String> services = discoveryClient.getServices(); for(String element : services) { log.info(element); } List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE"); for(ServiceInstance instance : instances) { log.info(instance.getServiceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri()); } return new CommonResult(200, "DiscoveryClient结果", discoveryClient); }
@EnableDiscoveryClient //表示这是一个Eureka客户端 @EnableEurekaClient @SpringBootApplication public class PaymentMain8001 { public static void main(String[] args) { SpringApplication.run(PaymentMain8001.class, args); } }
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms: 2000 #修改心跳时间为2000ms
eureka.instance.lease-renewal-interval-in-seconds=30 #Eureka客户端向服务端发送心跳的时间间隔, 单位为秒(默认30秒)
eureka.instance.lease-expiration-duration-in-seconds=90 #Eureka服务端在收到最后一次心跳后等待时间上限, 单位为秒(默认90秒), 超时将剔除服务
标签:插入 main 使用 log 0ms 生产环境 rpo 导入 second
原文地址:https://www.cnblogs.com/binwenhome/p/13179227.html