美文网首页
尚学堂106天总结+eureka

尚学堂106天总结+eureka

作者: 人间草木为伴 | 来源:发表于2019-12-04 10:59 被阅读0次

1. Eureka架构图原理

1.  请描述Eureka架构原理。
image

2. 什么是CAP定理

1.  什么是CAP原则?
image
 2.  C、A、P分别表示什么?
image
3.  CA、CP、AP分别表示什么含义?
image

3. ZooKeeper与Eureka的区别

1.  Zookeeper与Eureka有哪些区别?
image

4. Eureka的服务自我保护

 1.  什么是自我保护模式?
image
 2.  为什么要启动自我保护?
image

5. 关闭Eureka的服务自我保护

1.  如何关闭自我保护?
image

6. 服务的优雅停服

 2.  访问优雅停服的URI是什么?
"http://127.0.0.1:9090/shutdown"

7. 开启Eureka注册中心的安全认证

1.  实现Eureka安全认证的步骤是什么?
image image
  1. 如果开启安全认证,注册中心在集群环境下各个节点访问时,如何传递用户名与密码?

8. 什么是Ribbon及作用

1.  什么是Ribbon?
image
  1. Ribbon解决了什么问题?
image
  1. Ribbon的负载均衡策略有哪些?


    image
image image

HttpClientUtil


public class HttpClientUtil {

    public static String doGet(String url, Map<String, String> param) {

        // 创建Httpclient对象
        CloseableHttpClient httpclient = HttpClients.createDefault();

        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            // 创建uri
            URIBuilder builder = new URIBuilder(url);
            if (param != null) {
                for (String key : param.keySet()) {
                    builder.addParameter(key, param.get(key));
                }
            }
            URI uri = builder.build();

            // 创建http GET请求
            HttpGet httpGet = new HttpGet(uri);

            // 执行请求
            response = httpclient.execute(httpGet);
            // 判断返回状态是否为200
            if (response.getStatusLine().getStatusCode() == 200) {
                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (response != null) {
                    response.close();
                }
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultString;
    }

    public static String doGet(String url) {
        return doGet(url, null);
    }

    public static String doPost(String url, Map<String, String> param) {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);
            // 创建参数列表
            if (param != null) {
                List<NameValuePair> paramList = new ArrayList<>();
                for (String key : param.keySet()) {
                    paramList.add(new BasicNameValuePair(key, param.get(key)));
                }
                // 模拟表单
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"utf-8");
                httpPost.setEntity(entity);
            }
            // 执行http请求
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "utf-8");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return resultString;
    }

    public static String doPost(String url) {
        return doPost(url, null);
    }
    
    public static String doPostJson(String url, String json) {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);
            // 创建请求内容
            StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
            httpPost.setEntity(entity);
            // 执行http请求
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "utf-8");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return resultString;
    }
    
    public static void main(String[] args) {
        String url ="http://127.0.0.1:9090/shutdown";
        //该url必须要使用dopost方式来发送
        HttpClientUtil.doPost(url);
    }
}

spring.application.name=eureka-provider
server.port=9090

eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

endpoints.shutdown.enabled=true
endpoints.shutdown.sensitive=false

相关文章

网友评论

      本文标题:尚学堂106天总结+eureka

      本文链接:https://www.haomeiwen.com/subject/hnvkgctx.html