JeeSite Cloud 具备 JeeSite 5.x 的所有功能,是在 JeeSite 5.x 基础之上,完成的 Spring Cloud 分布式系统套件的整合。它利用 JeeSite 5.x 的开发便利性巧妙地简化了分布式系统开发。
JeeSite Cloud 并没有重复制造轮子,它只是将目前比较成熟的、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
集成阿里优秀组件 Nacos 服务治理与配置中心、集成 Sentinel 流量卫兵;集成 Zipkin 链路追踪;集成 Seata 分布式事务等,详见技术选型章节。
特点:用经典开发模式,开发分布式应用,两个字【简单】,一个字【快】。
JeeSite Cloud 版本的数据库与 JeeSite 单机版数据库相同,你可以 下载最新的mysql脚本 或者使用 init-data.bat(sh) 命令完成初始化(支持多种数据库)。
Redis 是一个缓存数据库,主要用来集中式管理共享会话和系统缓存的,如果你已安装 Redis,可以忽略这个步骤。
由于 Windows 版本的 Redis 安装不太方便,所以我们提供了该版本的安装文件和安装脚本。
下载地址:https://gitee.com/thinkgem/jeesite4-cloud/attach_files 找到 Redis-x64-4.0.2.2.zip
下载文件。
解压 Redis-x64-4.0.2.2.zip
压缩包,运行 service-install.bat
安装 Windows 系统服务。
默认地址:127.0.0.1;默认端口:6379;默认密码:1234,可根据自己需要修改 conf 文件。
Nacos 致力于帮助您发现、配置和管理微服务。 Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
如果使用 Nacos 就不用部署 jeesite-cloud-eureka
和 jeesite-cloud-config
了。
JeeSite Cloud 提供了 2 种部署方式,你可以下载 jar 也可以 src 方式运行:
jar 方式:
nacos-server-2.1.1.zip
压缩包,运行 /bin/startup.cmd(sh)
启动服务。src 方式:
配置 mysql 存储:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?useSSL=false&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=123456
# 如果是 application.properties 文件,将 key 后的冒号换为等号即可。
启动完成后:
浏览器访问:http://127.0.0.1:8848/nacos/index.html 用户名密码:nacos
登录后,进入菜单 配置管理 -> 配置列表
点击 导入配置
按钮,选择 /config/src/main/resources/jeesite-cloud-yml.zip
上传文件。
然后编辑 Data Id 为 application.yml
的文件里的 JDBC 和 Redis 信息。
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点, 从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。
浏览器访问:http://127.0.0.1:9311 用户名密码:sentinel
Zipkin 是一个开放源代码分布式的跟踪系统,每个服务向 Zipkin 报告计时数据,Zipkin会根据调用关系通过 Zipkin UI 生成依赖关系图。
浏览器访问:http://127.0.0.1:9411
如果使用 SkyWalking,安装文档见:https://jeesite.com/docs/skywalking/
config/bootstrap.yml
配置服务注册和配置中心地址。常见问题:
获取不到 ${service.core.name} 属性,请检查配置
错误,说明没有从 nacos 或 config 配置中心获取到配置信息。一般有以下原因。1:Nacos 里未导入 jeesite-cloud-yml.zip
配置文件;2:如果你自定义了 Nacos 的 Group Name,请于 bootstrap.yml 里的 Group Name 一致;3:如果 Nacos 提示了 yml 读取错误,请在启动参数,配上环境变量 JAVA_OPTS,值为 -Dfile.encoding=UTF-8
(不同IDE里的设置方法:Eclipse:Window->Preferences->General->Workspace->Text file encoding->Other->UTF-8;IDEA:File->Settings->Editor->FileEncodings->Project Encodeing->UTF-8)1)进入菜单:系统管理 -> 系统设置 -> 模块管理,新建一个模块,填写:
点击 “保存并生成代码” 按钮,即可完成微服务模块的工程代码新建。
2)新建微服务功能,进入代码生成器功能菜单,生成时选择 Cloud 的代码生成模板即可。
v4.2.2之前版本:
由于之前版本没有微服务模块生成器功能,所以需要参考其它模块。举例新增一个微服务模块模块叫 test3
,该模块的所有映射地址均在 ${adminPath}/test3/**
这个路径下,该模块可以参照 test1
进行,步骤如下:
拷贝 jeesite-cloud-module-test1 项目为 jeesite-cloud-module-test3 文件夹:
1)修改 pom.xml 中的应用名:
<artifactId>jeesite-cloud-module-test1</artifactId>
替换为:
<artifactId>jeesite-cloud-module-test3</artifactId>
<artifactId>jeesite-cloud-module-test1-client</artifactId>
替换为:
<artifactId>jeesite-cloud-module-test3-client</artifactId>
2)修改 application.yml 中的应用名:
spring:
application:
name: jeesite-cloud-module-test3
3)修改 *Client.java 里的应用名:
service.test1 替换为 service.test3
4)修改 *Controller.java 里的映射路径:
${adminPath}/test1 替换为 ${adminPath}/test3
在 jeesite-config 或 Nacos 的微服务配置文件 application.yml 中,新增微服务:
# 微服务列表
service:
test3:
name: jeesite-cloud-module-test3
path: ${server.servlet.context-path}
在 jeesite-cloud-gateway 配置文件中新增网关路由
spring:
cloud:
gateway:
routes:
# 测试模块3
- id: test3
uri: lb://jeesite-cloud-module-test3
predicates:
- Path=/js/a/test3/**,/js/a/jeesite-cloud-module-test3/**,/js/static/modules/test3/**
注意:新增的配置请放到 core 基础权限模块之上。
进入 “代码生成器” 菜单,同单机版使用方法,只需在生成代码时,选择 Cloud 版本的生成模板即可。
Copyright
和@author
信息)
更不要,全局替换源代码中的 jeesite 或 ThinkGem 等字样,否则你将违反本协议条款承担责任。127515876
、209330483
、223507718
、709534275
、730390092
、1373527
、183903863(外包)
1、提交检出均不转换换行符
git config --global core.autocrlf false
2、拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.