“Ribbon 代码使用”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“https://www.bilibili.com/video/BV1AN411Z7mx/?p=5”的新页面)
 
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
 
https://www.bilibili.com/video/BV1AN411Z7mx/?p=5
 
https://www.bilibili.com/video/BV1AN411Z7mx/?p=5
 +
 +
=== ClientService.java ===
 +
<syntaxhighlight lang="java">
 +
package io.github.jihch.service;
 +
 +
public interface ClientService {
 +
 +
    String client();
 +
 +
}
 +
</syntaxhighlight>
 +
 +
=== ClientServiceImpl.java ===
 +
<syntaxhighlight lang="java">
 +
package io.github.jihch.service.impl;
 +
 +
import io.github.jihch.service.ClientService;
 +
import org.springframework.beans.factory.annotation.Autowired;
 +
import org.springframework.cloud.client.ServiceInstance;
 +
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
 +
import org.springframework.stereotype.Service;
 +
 +
@Service
 +
public class ClientServiceImpl implements ClientService {
 +
 +
    // Ribbon 的负载均衡工具。使用这个对象的时候可以使用 Ribbon 的功能
 +
    @Autowired
 +
    private LoadBalancerClient loadBalancerClient;
 +
 +
    @Override
 +
    public String client() {
 +
        //通过 Ribbon 负载均衡算法之后得到的 URL 实例
 +
        ServiceInstance si = loadBalancerClient.choose("myproject");
 +
        System.out.printf("getUri:%s\n", si.getUri());
 +
        System.out.printf("getHost:%s\n", si.getHost());
 +
        System.out.printf("getInstanceId:%s\n", si.getInstanceId());
 +
        System.out.printf("getMetadata:%s\n", si.getMetadata());
 +
        System.out.printf("getPort:%s\n", si.getPort());
 +
        System.out.printf("getScheme:%s\n", si.getScheme());
 +
        System.out.printf("getServiceId:%s\n", si.getServiceId());
 +
 +
        return null;
 +
    }
 +
}
 +
</syntaxhighlight>Eureka Server
 +
 +
https://github.com/jihch/eureka-server-20230323
 +
 +
Application Service
 +
 +
https://github.com/jihch/application-service-demo
 +
 +
Application Client
 +
 +
https://github.com/jihch/application-client

2023年3月26日 (日) 04:49的最新版本

https://www.bilibili.com/video/BV1AN411Z7mx/?p=5

ClientService.java

package io.github.jihch.service;

public interface ClientService {

    String client();

}

ClientServiceImpl.java

package io.github.jihch.service.impl;

import io.github.jihch.service.ClientService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.stereotype.Service;

@Service
public class ClientServiceImpl implements ClientService {

    // Ribbon 的负载均衡工具。使用这个对象的时候可以使用 Ribbon 的功能
    @Autowired
    private LoadBalancerClient loadBalancerClient;

    @Override
    public String client() {
        //通过 Ribbon 负载均衡算法之后得到的 URL 实例
        ServiceInstance si = loadBalancerClient.choose("myproject");
        System.out.printf("getUri:%s\n", si.getUri());
        System.out.printf("getHost:%s\n", si.getHost());
        System.out.printf("getInstanceId:%s\n", si.getInstanceId());
        System.out.printf("getMetadata:%s\n", si.getMetadata());
        System.out.printf("getPort:%s\n", si.getPort());
        System.out.printf("getScheme:%s\n", si.getScheme());
        System.out.printf("getServiceId:%s\n", si.getServiceId());

        return null;
    }
}

Eureka Server

https://github.com/jihch/eureka-server-20230323

Application Service

https://github.com/jihch/application-service-demo

Application Client

https://github.com/jihch/application-client