SpringCloud/Security+K8s项目

Gitee代码地址

码云地址
想加入一起鼓捣新技术栈的同学,请参考流程:Gitee Fork到自己的仓库--本地开发完成后提交 New Merge Request -- 等待Review后合入master。

Spring Cloud Kubernetes Learning Project

介绍

  • 基于Spring Boot/Spring Cloud/Spring Security/Kubernetes/Docker 鼓捣新技术栈的小项目
  • 对应项目/模块目录下有README.md说明代码实现

软件架构

  • 后端:Spring Boot, Spring Cloud, Spring Security
  • 前端: Vue.js, Thymeleaf
  • ORM:Spring Data Jpa, Spring Data Redis, Mybatis
  • 消息中间件: RabbitMQ
  • 数据库: MySQL
  • NoSQL: Redis, MongoDB
  • 待学习: ElasticSearch, Neo4j, Kafka, PostgreSQL

计划

  • Spring Security Oauth2 JWT SSO
  • Spring Data JPA 高级用法, Java Stream, ParallelStream, Map, Reduce
  • OpenFiegn, Hystrix, Ribbon
  • Spring Cloud Stream
  • UUID
  • Spring Session + Redis 会话集群
  • Reactor/Flux/Mono/WebFlux/响应式编程
  • Kubernetes集群 + 微服务高可用
  • Istio/Linkerd (*)
  • 并发/并行编程, JUC, Fork/Join (*)
  • JVM调优
  • MySQL索引优化,SQL Explain,乐观锁,事务优化,MyCat分库分表

项目结构

目录 说明
base-config 给my-config用的git配置项目录
DEV_OPS Kubernetes,Docker相关内容
SRC_CODE 源代码
spring-cloud-base 微服务治理
my-eureka eureka
my-config 配置中心
my-hystrix hystrix监控
my-turbine turbine监控
my-zipkin-2 zipkin监控
rest-api-base REST API
my-*** Redis公共缓存模块
my-sso-client Oauth2 SSO Client
my-sso-authorization Oauth2 SSO 授权服务器
my-sso-resource Oauth2 SSO 资源服务器(由Zuul替代)
my-zuul Zuul网关,兼做资源服务器
my-kingdom Kingdom微服务,负责提供REST API
client-sdk-base 客户端/SDK
my-chancellor Chancellor客户端,负责调用REST API

开发工具(推荐)

  • Intell IDEA 2019.1
  • Navicat/ SQLyog / MySQL WorkBench / SQLyog
  • Another RedisDesktopManager
  • Docker Windows Desktop
  • Github Desktop
  • Chrome F12
  • Postman

已完成服务

Spring Security Oauth2 JWT SSO + Spring Cloud

关键词

请不熟悉Oauth2的同学谷歌下列关键词:
Oauth2, SSO, JWT, 授权码模式,对称加密,非对称加密,Token

代码实现

  • 各模块使用授权码模式提供SSO服务,必须由客户端登录--拿到Token(通过JWT实现)--访问资源服务器。为方便本地开发,已将Zuul和资源服务器整合(即Zuul兼做资源服务器),需要通过客户端访问Oauth2 Authorization/Token接口拿到Token,再访问Zuul,再通过反向***请求其他微服务接口。具体端口配置请见各模块application.properties/application.yml。正常开发中,可通过Zuul反向***/负载均衡 授权或资源服务器,只不过所有微服务都必须编写资源服务器相关的Spring Security代码(应该也可以封装单独模块简化开发)。
  • POSTMAN本地测试不能直接去Zuul请求授权服务器的Token,因为它自己就是资源服务器。

相关链接

My-Kingdom 服务

Mysql 8 表结构

后续还会修改,添加表或者修改字段,添加索引, explain SQL等.

业务接口用来模拟一个中世纪国家,包括封建等级制度/三级会议/教会/战争/社会/经济/贸易等。

My-Chancellor 服务

模拟客户端/移动端,负责调用服务端微服务接口。

#Java工程师##技术栈##Java##Spring#
全部评论
Mark
点赞 回复
分享
发布于 2019-10-20 11:31
m
点赞 回复
分享
发布于 2019-10-20 11:47
小红书
校招火热招聘中
官网直投
牛逼,mark了
点赞 回复
分享
发布于 2019-10-23 20:26
M
点赞 回复
分享
发布于 2019-10-23 21:13
牛批 码住
点赞 回复
分享
发布于 2019-11-16 20:32
m
点赞 回复
分享
发布于 2021-09-24 14:46

相关推荐

3 45 评论
分享
牛客网
牛客企业服务