直接提供服务,入门案例没有特别要设置的地方,注意下端口,因为要启动多个服务,可能会冲突web
server: port: 8000
服务消费者的依赖在这个单独的demo中其实无关紧要,亲测不添加,也能够实现demo服务提供能spring
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @SpringBootApplication public class MovieApplication { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(MovieApplication.class, args); } }
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import com.xujie.pojo.User; @RestController public class UserController { @Autowired private RestTemplate restTemplate; @GetMapping("/getUser") public User getUser() { return this.restTemplate.getForObject("http://localhost:8000/getUser", User.class); } }
此时能够经过访问消费者,间接调用服务提供者的服务,springboot
<!-- springcloud版本声明 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 引入eureka依赖 --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies>
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer //声明这是一个Eureka服务器 public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
server: port: 8761 #声明端口号 eureka: client: register-with-eureka: false #默认是true,将本身注册到eureka上 fetch-registry: false #是否从eureka上获取信息,因为本案例是单机,无需从别的eureka上获取注册信息 service-url: defaultZone: http://localhost:8761/eureka #设置与eureka交互的地址,查询服务和注册服务都须要依赖这个地址,默认是:http://localhost:8761/eureka
<!-- springcloud版本声明 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- eureka的依赖 --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies>
spring: application: name: provider #注册到Eureka Server上的应用名称 eureka: client: service-url: defaultZone: http://localhost:8761/eureka #注册的位置 instance: prefer-ip-address: true #将本身的ip注册到EuekaServer上
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient //也能够用EnableDiscoveryClient代替,前者兼容性更大,后者仅能兼容Eureka public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
此时能够正常启动并将服务注册到了eureka中
启动Eureka和服务提供者访问:http://localhost:8761,界面以下:
服务器
在这里demo以前,修改本地hosts文件,为了区分本地的两个eureka节点,分别经过:http://peer1:8761和http://peer2:8762访问app
eureka1的配置:ide
server: port: 8761 #声明端口号 eureka: instance: hostname: peer1 appname: peer1 client: #register-with-eureka: false #默认是true,将本身注册到eureka上,这里设置eureka的高可用,因此须要将本身注册到eureka上 #fetch-registry: false #是否从eureka上获取信息,因为本案例是单机,无需从别的eureka上获取注册信息,这里设置eureka的高可用,因此须要在eureka上获取服务 service-url: defaultZone: http://peer2:8762/eureka #设置与eureka交互的地址,查询服务和注册服务都须要依赖这个地址,默认是:http://localhost:8761/eureka
eureka2的配置:fetch
server: port: 8762 #声明端口号 eureka: instance: hostname: peer2 appname: peer2 client: #register-with-eureka: false #默认是true,将本身注册到eureka上,这里设置eureka的高可用,因此须要将本身注册到eureka上 #fetch-registry: false #是否从eureka上获取信息,因为本案例是单机,无需从别的eureka上获取注册信息,这里设置eureka的高可用,因此须要在eureka上获取服务 service-url: defaultZone: http://peer1:8761/eureka #设置与eureka交互的地址,查询服务和注册服务都须要依赖这个地址,默认是:http://localhost:8761/eureka
此时启动两个服务,界面以下
这是peer1:
this
下面这个是peer2:编码