Roses

基于 Spring Boot 的分布式和服务化解决方案
授权协议 Apache
开发语言 Java
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 国产
投 递 者 令狐昂雄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Roses基于Spring Boot, 是开源项目 Guns 的升级版本,致力做更简洁的分布式服务化解决方案,Roses提供基于Spring Cloud的分布式框架,整合了springmvc + mybatis-plus + eureka + zuul + feign + ribbon + hystrix等等,提供Roses独有的高效率的开发体验,提供可靠消息最终一致性分布式事务解决方案,提供基于调用链的服务治理,提供可靠的服务异常定位方案(Log + Trace),一个分布式框架不仅需要构建高效稳定的底层开发框架,更需要解决分布式带来的种种挑战。

在几年前,刚工作的时候就开始接触分布式,并且使用分布式编写业务,那时候还很菜(现在也菜),只觉得微服务很牛逼,殊不知其中的艰难险阻,踩过很多坑,也走过弯路,Roses是根据自己积攒的经验编写出来的,完全开源,目的就是想让新接触微服务,搞分布式开发的同学能够快速上手。Roses在编写的时候有两个核心思想,第一个是注重解决分布式带来的种种挑战第二个是注重提高开发人员的效率

Roses的一些特点:

1. 网关实现统一鉴权,资源权限过滤(鉴权机制)

2. 网关生成唯一请求号(RequestNoGenerateFilter)(主要为了定位问题)

3. 分布式事务解决方案(可靠消息最终一致性)

 4. 分布式配置中心roses-config(统一管理项目配置,好维护)

5. 一切请求基于RequestData和ResponseData(简化开发)

6. 独创基于BeanPostProcessor的资源扫描器(多服务之间的资源搜集,集中管理)

7. 独特的Feign错误解码器(继承Guns的开发思想,极大提高了开发效率)

8. Log + Trace日志记录(定位问题更便捷)

9. 统一的文件日志记录格式(日志记录的规范)

快速开发微服务的秘籍 roses-core

在roses-core模块的com.stylefeng.roses.core.config包下整合了大量开发常用到的配置,其中包含默认异常拦截,登陆用户的上下文获取,默认缓存配置,默认fastjson的配置,默认mybatis-plus的配置,默认的swagger的配置,默认的web配置等等等等,使得在新业务开发中,只要pom引入roses-core这个模块,即可很方便的注入这些特性,直接上手开编写业务,大大减少了新业务,新模块的配置,调试,各种框架集成拼接的时间,因为这些在Roses中已经为您提供好了,利用Spring Boot的自动配置机制,同样的,这些配置在项目启动的时候会默认加载,因为在roses-core模块下的META-INF/spring.factories中配有这些类,当然,如果您不需要某些特性(自动配置类)您可以在@SpringBootApplication注解上增加exclude参数来排除这些自动配置。

更多详情,请点击:https://gitee.com/naan1993/roses

  • Guns and Roses (1) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description Guns和Roses是两个好朋友,这一天他们比赛吃葡萄。假定他们有ANS颗葡萄。 在比赛之前他们会首先确定每次吃葡萄的数量的最大值为S,和ANS的具体值。 两个人轮流吃葡萄,每次最多吃

  • Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架! 2018目标 更简洁,更规范! Guns v3.0新增rest api服务,提供

  • 优秀的框架stylefeng——guns/roses https://github.com/stylefeng/Guns

  • Problem Description Guns和Roses是两个好朋友,这一天他们比赛吃葡萄。假定他们有ANS颗葡萄。 在比赛之前他们会首先确定每次吃葡萄的数量的最大值为S,和ANS的具体值。 两个人轮流吃葡萄,每次最多吃S颗,不能不吃。(即假定每次吃M颗葡萄,则 1<=M<=S) 游戏规定在谁吃完葡萄后,他们两个人所吃的葡萄总和等于ANS,谁就获胜。 假定他们两人足够聪明,在吃葡萄的过程中都不

  • 参考http://blog.csdn.net/tobewhatyouwanttobe/article/details/17403987和http://blog.csdn.net/accelerator_/article/details/38901669 output For each case, output a line containing the minimum guaranteed num

  • 题目链接:https://cn.vjudge.net/problem/UVA-10798 #include<bits/stdc++.h> #pragma comment(linker,"/STACK:1024000000,1024000000") using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int

  • 题目背景 因为特殊原因,本题目另外 2424 组数据请在 这里 提交。 Valentine 是人赢。 题目描述 现在 Valentine 要给他的 NN 个妹子买玫瑰花,现在 Valentine 面前有两家店,每一家店有无数朵玫瑰花,但是他们按束卖。第一家店一束花里有 AA 朵,每一束花要用 BB 块钱。第二家店一束花里有 CC 朵,每一束花要用 DD 块钱。 求 Valentine 至少买 NN

  • Roses are such striking plants that they have a key role to play as prominent showpieces of any landscaped garden. Some people like to landscape roses as a group to themselves, in other words they pre

  • Red roses were her favorites, her name was also Rose. And every year her husband sent them chiller, tied with pretty bows. The year he died, the roses were delivered to her door. The card said, "Be my

  • UVA 10798 - Be wary of Roses 题目链接 题意:给定一个地图,人一开始在中心,问选择一种走法走出去,使得面朝任何一个方向走,踩到的花的最大值最小 思路:用优先队列进行BFS,每次取出踩到最少的情况,广搜记录状态为当前位置,和4个方向分别踩到的花数 代码: #include <cstdio> #include <cstring> #include <algorithm> #

  • 问题 描述 在使用一段代码 想打开 windows 文件夹里面的图片时,代码没有报错,但是却打不开图片,定位到代码如下: # 查看第一张图片 roses = list(data_dir.glob('sunrise/*.jpg')) PIL.Image.open(str(roses

  • 题意 二维平面上有若干障碍,每个形如 ( H i , L i , R i , W i ) (H_i,L_i,R_i,W_i) (Hi​,Li​,Ri​,Wi​), 表示以 ( L i , H i ) (L_i,H_i) (Li​,Hi​), ( R i , H i ) (R_i,H_i) (Ri​,Hi​) 为左右端点、权值为 W i W_i Wi​ 的线段. 你站在 ( 0 , 0 ) (0,0

 相关资料
  • 本文向大家介绍详解SpringBoot基于Dubbo和Seata的分布式事务解决方案,包括了详解SpringBoot基于Dubbo和Seata的分布式事务解决方案的使用技巧和注意事项,需要的朋友参考一下 1. 分布式事务初探 一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以很容易的实现事务的操作。 但是目前,基于SOA的思想,大部分项目都采用微服务

  • 主要内容:1.2PC,2.三阶段提交(3PC),3.补偿事务(TCC),4.本地消息表,5.消息事务,6.最大努力通知,7.Sagas 事务模型1.2PC 两阶段提交 mysql是通过日志系统完成事务的。就是两阶段提交:undolog和binlog的两阶段提交。 两阶段协议可以用于单机集中式系统,由事务管理器协调多个资源管理器;也可以用于分布式系统,由一个全局的事务管理器协调各个子系统的局部事务管理器完成两阶段提交。 第一阶段:投票阶段 1.协调者写命令进写入日志 2.协调者发一个prepare

  • 本文向大家介绍详解SpringBoot开发案例之整合Dubbo分布式服务,包括了详解SpringBoot开发案例之整合Dubbo分布式服务的使用技巧和注意事项,需要的朋友参考一下 前言 在 SpringBoot 很火热的时候,阿里巴巴的分布式框架 Dubbo 不知是处于什么考虑,在停更N年之后终于进行维护了。在之前的微服务中,使用的是当当维护的版本 Dubbox,整合方式也是使用的 xml 配置方

  • 本文向大家介绍SpringBoot+Dubbo+Seata分布式事务实战详解,包括了SpringBoot+Dubbo+Seata分布式事务实战详解的使用技巧和注意事项,需要的朋友参考一下 前言 Seata 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题。 事实上,官方在GitHub已经给出了多种环境下的Seata应用示例项目,地址:https

  • 问题内容: 您将使用哪种分布式锁定服务? 要求是: 可以从不同的进程/机器看到的互斥(锁定) 锁定…释放语义 超时后自动释放锁-如果锁持有人死亡,它将在X秒后自动释放 Java实现 很高兴拥有:.Net实现 如果免费:死锁检测/缓解 易于部署,请参阅下面的注释。 我对诸如“可以通过数据库完成”或“可以通过JavaSpaces完成”之类的答案不感兴趣-我知道。我对现成的,现成的,经过验证的实现感兴趣

  • 链接 Web API Controllers 动态WebApi层 集成OData 集成Swagger UI ASPNET Core 集成OData

  • 本文向大家介绍Java分布式session存储解决方案图解,包括了Java分布式session存储解决方案图解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要探讨集群后不同Web服务器获取Session数据的问题解决方案。 Session Stick Session Stick 方案即将客户端的每次请求都转发至同一台服务器,这就需要负载均衡器能够根据每次请求的会话标识(SessionId)

  • 我有两个微服务和调用来更新数据,然后插入另一个数据,但让我们考虑一下 失败,然后我们需要回滚由 更新的数据,否则我们将处于不一致的状态。 我也经历了佐贺patterns.will它满足了这种矛盾 谁能为此提出更好的解决方案?