栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详解利用SpringCloud搭建一个最简单的微服务框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解利用SpringCloud搭建一个最简单的微服务框架

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。

1.微服务

微服务主要包含服务注册,服务发现,服务路由,服务配置,服务熔断,服务降级等一系列的服务,而Spring Cloud为我们提供了个一整套的服务;

本例子为你提供了最简单的一个服务发现例子,包含服务注册发现spingCloudEurekaServer、服务配置中心spingCloudConfServer、以及一个app应用springCloudApp

2.服务注册与发现

spingCloudEurekaServer

pom.xml

 
 4.0.0 
 com.caicongyang 
 spingCloudEurekaServer 
 0.0.1-SNAPSHOT 
  
  org.springframework.cloud 
  spring-cloud-starter-parent 
  Angel.SR6 
  
    
   
   org.springframework.cloud 
   spring-cloud-starter-eureka-server 
   
  
  
   
    
    org.springframework.boot 
    spring-boot-maven-plugin 
    
   
  
 

Application.java

package com.caicongyang.eureka; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 
 
 
@SpringBootApplication 
@EnableEurekaServer 
public class Application { 
 public static void main(String[] args) { 
  SpringApplication.run(Application.class, args); 
 } 
} 

application.yml  (可用properties替代)

server: 
  port: 9999 
eureka: 
  instance: 
   hostname: 127.0.0.1 
  client: 
   registerWithEureka: false 
   fetchRegistry: false 
   serviceUrl: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

3.服务配置(全局配置中心)

pom.xml

 
 4.0.0 
 com.caicongyang 
 spingCloudConfServer 
 0.0.1-SNAPSHOT 
 
  
  org.springframework.cloud 
  spring-cloud-starter-parent 
  Angel.SR6 
  
  
   
   org.springframework.cloud 
   spring-cloud-config-server 
   
   
   
   org.springframework.cloud 
   spring-cloud-starter-eureka 
   
   
   org.springframework.boot 
   spring-boot-starter-test 
   test 
   
  
 
  
   
    
    org.springframework.boot 
    spring-boot-maven-plugin 
    
   
  compile 
  
 

application.java

package com.caiconyang.conf; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.config.server.EnableConfigServer; 
 
 
@SpringBootApplication 
@EnableConfigServer 
public class Application { 
 public static void main(String[] args) {  
  SpringApplication.run(Application.class,args);  
 }  
} 

application.properties

server.port=8888 
## App配置文件所在git地址 
spring.cloud.config.server.git.uri=https://git.oschina.net/caicongyang/springCloudConfigRepo.git 
spring.cloud.config.server.git.searchPaths=repo 
spring.application.name=spingCloudConfServer 

4.App 

pom.xml

 
 4.0.0 
 com.caicongyang 
 springCloudApp 
 0.0.1-SNAPSHOT 
 
  
  org.springframework.cloud 
  spring-cloud-starter-parent 
  Angel.SR6 
  
  
  UTF-8 
  1.7 
  UTF-8 
  2.2.2 
  
  
   
   org.springframework.boot 
   spring-boot-starter-web 
   
   
   
   org.springframework.boot 
   spring-boot-starter-actuator 
   
   
   org.springframework.cloud 
   spring-cloud-starter-config 
   
   
   
   org.springframework.cloud 
   spring-cloud-starter-eureka 
   
    
   
   org.springframework.cloud 
   spring-cloud-starter-hystrix 
   
 
   
   org.springframework.boot 
   spring-boot-starter-test 
   test 
   
   
   io.springfox 
   springfox-swagger2 
   ${springfox.swagger.version} 
   
   
   io.springfox 
   springfox-swagger-ui 
   ${springfox.swagger.version} 
   
  
  
 
  
  spingcould 
   
    
    org.apache.maven.plugins 
    maven-compiler-plugin 
     
     ${java.version} 
     ${java.version} 
     ${java.encoding} 
     true 
     
    
   
  
 
 
 

Application.java

package com.caicongyang.springCloudApp.main; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
 
 
@Configuration//配置控制 
@EnableAutoConfiguration//启用自动配置 
@ComponentScan(value={"com.caicongyang.springCloudApp"})//组件扫描 
@EnableDiscoveryClient 
public class Application { 
 public static void main(String[] args) {  
  //第一个简单的应用,  
  SpringApplication.run(Application.class,args);  
 }  
} 

SwaggerConfig.java

package com.caicongyang.springCloudApp.conf; 
 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
 
import springfox.documentation.service.ApiInfo; 
import springfox.documentation.spi.documentationType; 
import springfox.documentation.spring.web.plugins.Docket; 
import springfox.documentation.swagger2.annotations.EnableSwagger2; 
 
 
@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 
 
 @Value("${swagger.ui.enable}") //该配置项在配置中心管理 
 private boolean environmentSpecificBooleanFlag; 
  
 @Bean 
 public Docket docketFactory() { 
  return new Docket(documentationType.SWAGGER_2).apiInfo( 
   new ApiInfo("接口文档", "SpingCloud web接口列表", "1.0", "", "", "", "")).enable(environmentSpecificBooleanFlag); 
 } 
} 

application.properties

server.port=8080 
spring.cloud.config.uri=http://127.0.0.1:8888 
spring.cloud.config.name=springCloudApp 
spring.cloud.config.profile=${config.profile:dev} 
#service discovery url 
eureka.client.serviceUrl.defaultZone=http://localhost:9999/eureka/ 
#service name 
spring.application.name=springCloudApp 

5.测试与验证

顺序启动服务注册发现spingCloudEurekaServer、服务配置中心spingCloudConfServer、以及一个app应用springCloudApp

测试与验证

1.访问http://localhost:9999/eureka/  app是否已经注册上来

2.访问 http://localhost:8080/swagger-ui.html 是否正常访问,如果正常访问说明争取读取到config配置中心的swagger.ui.enable配置项

6.源码:以上所有源码:springcloud_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/143236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号