jiminglei2016 / genesis

Spring Cloud example: Spring boot Mybatis Mapper 使用Swagger UI提供Restful Doc,主要用于Spring cloud架构设计

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Genesis. Is a Spring Cloud Project

Genesis 中文意思: 起源, 哈哈哈哈......

技术架构

genesis 是一个基于Spring cloud(Camden.SR1) Spring Boot(1.4.1.RELEASE) Mybatis(3.3.0) 通用Mapper 通用分页Pagehelper完成的一个基础组件架构,后面会持续更新...

MAVEN模块说明

1. 基础组件说明

项目名称 端口 描述 URL
genesis-common 公共模块(工具类,资源......)
genesis-core 核心代码
genesis-model 公共实体对象

2. Spring Cloud(genesis-microservices)组件说明

项目名称 端口 描述 URL
genesis-microservices-discovery 8761 服务注册中心(用作和8762 8763实现高可用注册中心)
genesis-microservices-discovery2 8762 服务注册中心2(用作和8761 8763实现高可用注册中心)
genesis-microservices-discovery3 8763 服务注册中心3(用作和8761 8762实现高可用注册中心)
genesis-microservices-config 8040 服务配置中心服务
genesis-microservices-config-client 8041 服务配置客户端测试启动访问(ip:port/message打印)
genesis-microservices-gateway 8050 服务网关
genesis-microservices-monitor 8030 服务监控(hystrix-dashboard)
genesis-microservices-security security
genesis-microservices-sleuth Spring Cloud Sleuth是对Zipkin的一个封装(和Zipkin集成)
genesis-microservices-zipkin 8090 Zipkin 对Spring Cloud应用进行服务追踪分析(主要和Sleuth)
genesis-microservices-bus-kafka bus-kafka
genesis-microservices-bus-amqp bus-amqp

3. Spring(genessis-spring)扩展组件说明

项目名称 端口 描述 URL
genesis-spring-extends Spring 扩展(更新中...)
genesis-spring-plugins Spring 插件(更新中...)
genesis-spring-plugins-mybatis Spring boot mybatis stater自定义(在genesis-provider-goods使用测试)

4. Examples(genesis-examples) 提供真是服务使用

项目名称 端口 描述 URL
genesis-common-config 通用配置
genesis-provider-by-feign 8080 API接口(使用Feign)
genesis-provider-by-zuul 8051 API接口网关(使用Zuul)
genesis-provider-goods 8081 Goods服务提供者(此服务使用了genesis-spring-plugins-mybatis stater)
genesis-provider-goods2 8082 Goods服务提供者(用于启动测试 API goods模块Feign Client负载均衡)
genesis-provider-order 8083 Order服务提供者

架构图(目前待完善)

后续会更新架构图出去,暂时先这样看着... 焦灼中..........

Markdown

服务中心HA说明

项目名称 端口 描述 URL
genesis-microservices-discovery 8761 服务注册中心(用作和8762 8763实现高可用注册中心)
genesis-microservices-discovery2 8762 服务注册中心2(用作和8761 8763实现高可用注册中心)
genesis-microservices-discovery3 8763 服务注册中心3(用作和8761 8762实现高可用注册中心)
  • 1,(C:\Windows\System32\drivers\etc\hosts文件)
127.0.0.1 discovery1
127.0.0.1 discovery2
127.0.0.1 discovery3
  • 2,每个配置里面都有一个application.properties,本机为了方便在idea工具启动 所以使用了两个项目
  • 3,以后线上可以使用一个工程即可 如下:

application-discovery1.properties

spring.application.name=eureka-server-clustered
server.port=8761
eureka.instance.hostname=discovery1
eureka.client.serviceUrl.defaultZone=http://discovery2:8762/eureka/,http://discovery3:8763/eureka/

application-discovery2.properties

spring.application.name=eureka-server-clustered
server.port=8762
eureka.instance.hostname=discovery2
eureka.client.serviceUrl.defaultZone=http://discovery1:8761/eureka/,http://discovery3:8763/eureka/

application-discovery3.properties

spring.application.name=eureka-server-clustered
server.port=8763
eureka.instance.hostname=discovery3
eureka.client.serviceUrl.defaultZone=http://discovery1:8761/eureka/,http://discovery2:8762/eureka/

命令启动格式1:

java -jar discovery1-1.0.0.jar  --spring.profiles.active=discovery1
java -jar discovery2-1.0.0.jar --spring.profiles.active=discovery2
java -jar discovery3-1.0.0.jar --spring.profiles.active=discovery3

命令启动格式2:

添加文件 application.properties

spring.profiles.active=discovery1
或者
spring.profiles.active=discovery2

命令修改为:

java -jar discovery1-1.0.0.jar

效果图:

访问discovery1

discovery1

访问discovery2

discovery2

访问discovery3

discovery3

熔断监控视图(目前待完善)

使用说明

1,项目启动:

  • 数据库脚本 genesis-common-config resources/db/下面spring-cloud-test.sql
  • 首先启动:genesis-microservices-discovery 和 genesis-microservices-discovery2、genesis-microservices-discovery3
  • 测试Fegin可以启动genesis-provider-by-feign。前提启动genesis-provider-good、genesis-provider-order
  • 测试Zuul可以启动genesis-provider-by-zuul 。前提启动genesis-provider-good、genesis-provider-order
  • genesis-provider-by-feign提供swgger UI 通过API文档Try 就可以了

3, 服务注册展示:

Markdown

API 文档访问

分布式事务测试(暂时没开发,后续更新...)

About

Spring Cloud example: Spring boot Mybatis Mapper 使用Swagger UI提供Restful Doc,主要用于Spring cloud架构设计


Languages

Language:Java 100.0%