一、服务调用几种方式
-
Httpclient
使用HttpClient发送请求主要分为以下几步骤:创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者为异步 创建Http请求对象 调用execute方法执行请求,如果是异步请求在执行之前需调用start方法
-
Okhttp
使用OkHttp发送请求主要分为以下几步骤:创建OkHttpClient对象 创建Request对象 将Request 对象封装为Call 通过Call 来执行同步或异步请求,调用execute方法同步执行,调用enqueue方法异步执行
-
HttpURLConnection
HttpURLconnection是基于http协议的,支持get,post,put,delete等各种请求方式,最常用的就是get和post -
RestTemplate
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
二、Ribbon+RestTemplate
配置一个eureka server注册中心,创建一个springboot项目
添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
application.properties配置文件
server.port=8761
eureka.instance.hostname=localhost
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
启动类EurekaServerApplication
package com.boss.springcloud.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
创建一个服务提供者 (eureka client),新建一个spring boot项目,通过改变端口号运行多个提供者