JeeSite Cloud 具备 JeeSite 4.x 的所有功能,是在 JeeSite 4.x 基础之上,完成的 Spring Cloud 分布式系统套件的整合。它利用 JeeSite 4.x 的开发便利性巧妙地简化了分布式系统开发。
JeeSite Cloud 并没有重复制造轮子,它只是将目前比较成熟的、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
集成阿里优秀组件 Nacos 服务治理与配置中心、集成 Sentinel 流量卫兵;集成 Zipkin 链路追踪;集成 LCN 分布式事务等,详见技术选型章节。
特点:用经典开发模式,开发分布式应用,两个字【简单】,一个字【快】。
源码仓库地址:https://gitee.com/thinkgem/jeesite4-cloud
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.0.3.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-43.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
config/bootstrap.yml
配置服务注册和配置中心地址。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/js/a/test3 predicates: - Path=/js/a/test3/** # 测试模块3(系统监控) - id: test3_def uri: lb://jeesite-cloud-module-test3/js/a/jeesite-cloud-module-test3 predicates: - Path=/js/a/jeesite-cloud-module-test3/**
注意:新增的配置请放到 core 基础权限模块之上。
进入 “代码生成器” 菜单,同单机版使用方法,只需在生成代码时,选择 Cloud 版本的生成模板即可。
Copyright
和@author
信息) 更不要,全局替换源代码中的 jeesite 或 ThinkGem 等字样,否则你将违反本协议条款承担责任。127515876
、209330483
、223507718
、709534275
、730390092
、1373527
、183903863(外包)
E:\soft\jdk1.8.0_121\bin\java.exe -Dmaven.multiModuleProjectDirectory=E:\back\jeesite4-cloud\sentinel "-Dmaven.home=C:\soft\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\soft
概览 为了简单直接把github上的介绍拿来了,请见谅,项目使用的spring cloud 组件比较少,主要是为了了解oauth2和spring的配合开发方式,开发分支是最新代码,欢迎大家沟通交流。 https://gitee.com/mgp/micro_magupe micro-magupe 一,介绍 该项目是为了学习spring cloud security oauth2而创建
swagger配置示例:其中,titile的内容会显示在swagger页面顶部,RequestHandlerSelectors.basePackage和PathSelectors.any从包结构和api路径两个方面筛选要显示的api接口 @Component @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api()
jeesite这个开源框架本身集成的有shiro+redis来实现cache和session共享,但是需要修改一下文件配置即可 首先找到spring-context-shiro.xml文件 找到bean id为sessionDAO,将其修改为如下 <!-- 自定义Session存储容器 --> <bean id="sessionDAO" class="com.its.common.
报错日志: [2022-10-17 15:13:41] [ERROR] -- Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultServletHandlerMapping' defined in class pat
数据存储容量的问题。 数据读写速度的问题。 数据可靠性的问题。 几种常见 RAID 的对比|名称|优点|缺点| |------|------|------| |RAID 0|使用 N 块磁盘的 RAID 0,将数据从内存写入磁盘时,将数据分成 N 块,并发写入,读取同理。所以,读写速度是单盘的 N 倍。|任何一块盘损坏,数据完整性破坏,数据不可用。| |RAID 1|数据写入磁盘时,将一份数据同时
一、介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。 二、HDFS 设计原理 2.1 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成: NameNode : 负责执行有关 文件系统命名空间 的操作,例如打开,
主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说
被别人指出问题时,别管别人能不能做到,看别人说的对不对,然后完善自己。别人能不能做到是别人的事情,自己能不能做到关系到自己能否发展的更好。——hustlihaifeng Go语言号称是互联网时代的C语言。现在的互联网系统已经不是以前的一个主机搞定一切的时代,互联网时代的后台服务由大量的分布式系统构成,任何单一后台服务器节点的故障并不会导致整个系统的停机。同时以阿里云、腾讯云为代表的云厂商崛起标志着
主要内容:一、写在前面,二、active-standby高可用架构,三、Master-Slave架构的分布式计算系统,四、弹性计算资源调度机制,五、分布式系统高容错机制,六、阶段性总结一、写在前面 商家数据平台第一个阶段的架构演进过程中,通过离线与实时计算链路的拆分,离线计算的增量计算优化,实时计算的滑动时间窗口计算引擎,分库分表 + 读写分离,等各种技术手段,支撑住了百亿量级的数据量的存储与计算。 我们先来回看一下当时的那个架构图,然后继续聊聊这套架构在面对高并发、高可用、高性能等各种技术挑战
Hadoop分布式文件系统(HDFS)的设计主旨,在于对超大规模数据集提供可靠的存储功能,并对用户应用程序提供高带宽的输入输出数据流。在大型的集群里,上千台服务器均可直接参与到数据存储和应用程序任务执行。通过多服务器,分布式的存储和计算,计算资源的规模能够按照需要增长,并兼顾在各种规模上经济适用性。 本文主要描述了HDFS的架构,并以Yahoo!企业数据服务为例,介绍了如何使用HDFS系统管理高达
万法皆空,因果不空。 随着摩尔定律碰到瓶颈,越来越多的系统要依靠分布式集群架构来实现海量数据处理和可扩展计算能力。 区块链首先是一个分布式系统。 中央式结构改成分布式系统,碰到的第一个问题就是一致性的保障。 很显然,如果一个分布式集群无法保证处理结果一致的话,那任何建立于其上的业务系统都无法正常工作。 本章将介绍分布式系统中一些核心问题的来源以及相关的工作。
任何我们可以实现的解决方案或模式?