时间:2021-05-19
springCloud是基于springboot搭建的微服务。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
spring cloud官方文档:http://projects.spring.io/spring-cloud/
spring cloud 中文网 : https://springcloud.cc/
最终搭建后的工程源代码:https://github.com/onpwerb/SpringCloud
一、新建maven工程
根据spring cloud官方文档,在pom.xml导入如下代码
<!-- spring cloud 配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.5.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR6</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>二、建立注册中心
新建名称为 discovery 的 module
1.在该module下的pom.xml导入如下配置:
<!-- @EnableEurekaServer --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-eureka-server</artifactId> <!--<version>1.1.6.RELEASE</version>--> </dependency> </dependencies>2.在src/main/java目录下新建discovery文件夹,然后新建一个application
package discovery;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublic class DiscoveryApplicaion { public static void main(String[] args) { SpringApplication.run(DiscoveryApplicaion.class, args); }}3.在该module下的src/main/resources文件夹下,新建文件application.yml,配置注册中心eureka的相关服务
server: port: 8081eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/三、构建一个服务A
新建一个名为service的module
1.在src/main/java目录下新建service文件夹,然后新建一个application
package service;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@EnableDiscoveryClient@RestControllerpublic class ServiceApplication { @GetMapping("/service") public String service(){ return "service"; } public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args); }}2.在该module下的src/main/resources文件夹下,新建文件application.yml
spring: application: name: service.serviceeureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/server: port: 8082四、构建第二个服务B
新建一个名为service2的module
1.在src/main/java目录下新建service2文件夹,然后新建一个application
package service2;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@EnableDiscoveryClient@RestControllerpublic class Service2Application { @RequestMapping("/service2") public String service2(){ return "service2"; } public static void main(String[] args) { SpringApplication.run(Service2Application.class, args); }}2.在该module下的src/main/resources文件夹下,新建文件application.yml
spring: application: name: service2eureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/server: port: 8083五、配置网关
新建名称为 gateway 的 module
1.在该module下的pom.xml导入如下配置:
package gateway;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;import org.springframework.cloud.netflix.zuul.EnableZuulProxy;@SpringBootApplication@EnableZuulProxy@EnableEurekaClientpublic class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); }}2.在src/main/java目录下新建gateway文件夹,然后新建一个application
eureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/spring: application: name: gatewayserver: port: 8084zuul: routes: service: /service/** service2: /service2/**3.在该module下的src/main/resources文件夹下,新建文件application.yml
六、启动服务
先启动discovery模块,再启动其他模块
在浏览器依次输入:
http://localhost:8081/
http://localhost:8082/service
http://localhost:8083/service2
http://localhost:8084/service/service
http://localhost:8084/service2/service2
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言:在基于springboot构建springcloud微服务架构的时候,一般需要启动多个应用程序,在idea开发工具中,多个同时启动的应用可以在RunDas
最近换了工作环境,以前的IDEA配置都没了,记得上次配置自己的IDEA还是在两年前?然后构建Maven项目时遇到了一些小插曲,记录下解决方案(PS:新手教程向)
内容概览使用IDEA2020.1构建Spring5.2.x源码环境源码:spring5.2.xjdk11.08idea2020.1springspring5.2
背景:Springcloud项目使用Springcloud-config作为分布式配置,配置参数都放在config里,不同的环境有不同的问题:项目本地:boos
一般很多项目不是在springcloud的环境中使用的,但是需要用到分布式配置中心来管理一些外部或者项目的配置,这个时候我们可以使用springcloud-co