SpringCloud:服务注册与发现
  
  Eureka Server 提供服务注册和发现。
Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到。
Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务。
  <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version></parent><groupId>com.yuanqinnan</groupId><artifactId>spring-cloud-learn-parent</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><properties><!-- Environment Settings --><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><!-- Spring Settings --><spring-cloud.version>Finchley.RELEASE</spring-cloud.version></properties><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><build><finalName>spring-cloud-learn-parent</finalName><!-- 资源文件配置 --><resources><resource><directory>src/main/java</directory><excludes><exclude>**/*.java</exclude></excludes></resource><resource><directory>src/main/resources</directory></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><delimiters><delimit>$</delimit></delimiters></configuration></plugin></plugins></build></project>
  
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.yuanqinnan</groupId><artifactId>spring-cloud-learn-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent><artifactId>>spring-cloud-learn-eureka</artifactId><packaging>jar</packaging><dependencies><!--eureka-server服务端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies></project>
  @EnableEurekaServer@SpringBootApplicationpublic class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}}
spring:application:name: spring-cloud-learn-eurekaserver:port: 8761eureka:instance:hostname: localhostclient:#表示是否将自己注册到Eureka Server,默认为true。registerWithEureka: false#表示是否从Eureka Server获取注册信息,默认为true。fetchRegistry: falseserviceUrl:#设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.yuanqinnan</groupId><artifactId>spring-cloud-learn-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent><artifactId>spring-cloud-learn-provider-dept</artifactId><packaging>jar</packaging><dependencies><!-- Spring Boot Begin --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring Boot End --><!-- Spring Cloud Begin --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><!-- Spring Cloud End --></dependencies></project>
spring:application:name: spring-cloud-learn-provider-deptserver:port: 8762eureka:client:serviceUrl:#服务注册地址defaultZone: http://localhost:8761/eureka/
@EnableEurekaClient@SpringBootApplicationpublic class ProviderDeptApplication {public static void main(String[] args) {SpringApplication.run(ProviderDeptApplication.class, args);}}
  @Configurationpublic class RestTemplateConfiguration {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}}
@Servicepublic class DeptService {@Autowiredprivate RestTemplate restTemplate;public String sayHi(String message) {//这里指指定了服务名称,不用管ip 地址与端口return restTemplate.getForObject("http://SPRING-CLOUD-LEARN-PROVIDER-DEPT/hi?message=" + message, String.class);}}
@RestControllerpublic class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping(value = "hi", method = RequestMethod.GET)public String sayHi(@RequestParam String message) {return deptService.sayHi(message);}}
  @RestControllerpublic class DeptController {@Value("${server.port}")private String port;@RequestMapping(value = "hi", method = RequestMethod.GET)public String sayHi(@RequestParam(value = "message") String message) {return String.format("Hi,your message is : %s i am from port : %s", message, port);}}
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.yuanqinnan</groupId><artifactId>spring-cloud-learn-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent><artifactId>spring-cloud-learn-consumer-dept-ribbon</artifactId><packaging>jar</packaging><dependencies><!-- Spring Boot Begin --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring Boot End --><!-- Spring Cloud Begin --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency><!-- Spring Cloud End --></dependencies></project>
spring:application:name: spring-cloud-learn-consumer-dept-ribbonserver:port: 8764eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
public class ConsumerDeptRibbonApplication {public static void main(String[] args) {SpringApplication.run(ConsumerDeptRibbonApplication.class, args);}}
public class DeptController {private DeptService deptService;public String sayHi( String message) {return deptService.sayHi(message);}}
  
  
  
  
剩下的就不会给大家一展出来了,以上资料按照一下操作即可获得
——将文章进行转发和评论,关注公众号【Java烤猪皮】,关注后继续后台回复领取口令“ 666 ”即可免费领文章取中所提供的资料。
       腾讯、阿里、滴滴后台试题汇集总结 — (含答案)
面试:史上最全多线程序面试题!
最新阿里内推Java后端试题
JVM难学?那是因为你没有真正看完整这篇文章
       关注作者微信公众号 — 《JAVA烤猪皮》
了解了更多java后端架构知识以及最新面试宝典
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者来源不断出文的动力~
评论
