徒手撸SpringCloud+VUE—springcloud篇1

写这篇文章的主要目的是记录自己学习全栈开发和开发过程中的一些记录,至于为什么学习全栈,最直接的目的就是方便自己接点私活【手动滑稽】,万事不求人吗。顺便也学习些新技术,记录下各种踩坑的地方。

一、项目架构

徒手撸SpringCloud+VUE---springcloud篇1
1、使用eureka做为微服务认证注册服务器,使用集群保证认证注册服务器高可用
2、使用gateway做为网关路由,gateway内部集成负载均衡,无需过多考虑服务负载问题
3、使用Oauth2做为权限认证和验证中心,同时扩展自定义认证方式和类session形式自动延长token有效期,满足复杂的认证模式
4、log服务为日志系统,监控rabbitmq消息,将日志信息存入数据库。业务系统使用自定义注解,自动获取访问方法和参数等重要数据,通过rabbitmq发送。
5、sys提供系统管理相关数据接口,主要为用户、角色、权限等信息,为其他业务提供数据支撑
6、util为公共工具类,其他服务引入该服务,同时提供公共model,保证任务之间数据格式的统一性

二、搭建父工程

为保证各微服务之间版本统一和方便打包,使用父工程将共用jar包和版本号进行统一管理,maven配置如下

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.land</groupId>
<artifactId>longmao</artifactId>
<version>1.0</version>
<packaging>pom</packaging>

<name>longmao</name>
<description>主maven配置,主要为方便打包和版本控制</description>

<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<modules>
<module>eureka</module>
<module>oauth</module>
<module>sys</module>
<module>log</module>
<module>util</module>
<module>gateway</module>
</modules>

<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>

<dependencies>

</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>

</project>


三、搭建eureka服务

首先在pom文件中引入eureka服务端jar包

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

在启动类添加@EnableEurekaServer注解

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}

}

配置

server:
port: 8761

spring:
application:
name: eureka

eureka:
instance:
prefer-ip-address: true
hostname: 127.0.0.1
client:
# 配置高可用时,需要将下面两个配置改为true,单机时最好设置为false
register-with-eureka: false
fetch-registry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

可为eureka服务配置账号密码,需要引入security的jar包,并配置账号和密码,本平台因采用网络隔离的方式进行部署,只有gateway服务面向互联网开放,所以暂时不需要

四、搭建路由服务

1、引入gateway和eureka客户端jar包

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2、配置文件如下

server:
port: 8080

spring:
application:
name: gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true

eureka:
client:
service-url:
dafaultZone: http://localhost:8761/eureka
registry-fetch-interval-seconds: 5
instance:
health-check-url-path: /actuator/health
lease-renewal-interval-in-seconds: 10

这里修改了服务刷新时间和心跳时间,主要是为了处理业务服务器重启导致路由长时间不能解析到地址的问题
3、跨域处理
新建CorsConfig配置文件,代码如下

@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.setAllowCredentials(true);

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);

return new CorsWebFilter(source);
}
}

这里的配置比较简单粗暴,可以根据实际情况进行调整
4、在启动类上添加eureka客户端注解

@SpringBootApplication
@EnableEurekaClient
public class GatewayApplication {

public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}

}

五、总结

eureka和gateway的搭建和配置比较简单,相关的文章网上一抓一大把,坑已经被踩的和填的差不多了,这里就不在详细说明了

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

徒手撸SpringCloud+VUE---springcloud篇1

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 徒手撸SpringCloud+VUE—springcloud篇1
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏