liu 发布的文章

Spring Cloud Gateway是Spring官方基于Spring5.0、SpringBoot2.0、Netty和Project Reactor等技术开发的网关,旨在为微服务框架提供一种简单而有效的统一的API路由管理方式,统一访问接口。

Spring Cloud Gateway作为Spring Cloud生态体系中的网关,目标是替代Netflix的Zuul,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全、监控/埋点和限流等等。

01 SpringCloud Gateway 特点

SpringCloud Gateway是一款业务友好型的网关,适应于业务网关场景,具有以下特点:

  • 非阻塞IO采用非阻塞 IO 网络框架支撑,reactor 模式,采用更少的资源完成请求

  • SC组件无缝集成与 Spring Cloud生态组件无缝集成,符合大部分业务系统的集成需求,集成成本低

  • Reactive编程基于WebFlux响应式Web模型,事件驱动与非阻塞 IO 结合,满血使用 CPU 性能,性能吞吐量更优秀

  • 简单易开发只需掌握Route原理,会编写Filter即可上手网关开发

  • 开箱即用监控机制基于SpringBoot Actuator提供完整开箱即用的生产级监控

02 SpringCloud Gateway 构成

SpringCloud Gateway由三部分组成:Route、Predicate、Filter。

  • 路由Route:即一套路由规则,是集URI、predicate、filter等属性的一个元数据类。

  • 断言Predicate:Java8函数断言,这里可以看做是满足什么条件的时候,route规则进行生效。允许开发者去定义匹配来自于Http Request中的任何信息,如请求头和参数。

  • 过滤器Filter:filter针对请求和响应进行增强、修改处理。filter可以认为是Spring Cloud Gateway最核心的模块,熔断、安全、逻辑执行、网络调用都是filter来完成的,其中又细分为gateway filter和global filter,区别在于是具体一个route规则生效还是所有route规则都生效。

03 SpringCloud Gateway 整体架构


宏观层面

SpringCloud Gateway是一款非常好的衔接器。首先是衔接内部网络与外部应用,让所有访问内部网络的流量需经过网关的访问控制,统一提供给外部应用,避免不受控的非法访问,增强系统安全性。作为实现内外部的衔接的组件,网关首先建立内部微服务纳管的协议,无论协议是否相同,技术栈是否匹配,都可以通过技术手段纳管到网关中。

其次网关与外部微服务也建立起统一的访问协议,来对外提供访问。

在整个访问的过程中,网关核心在于将请求流量由上游发起经过网关到下游的微服务,在流量出入的过程中,网关在路由策略,协议转换、过滤、API组合等方面构建网关的核心能力。

微观层面

SpringCloud内部有Route,同样也是一个非常紧密的左手拉右手的效果,一方面Route通过Predicate来匹配来自外部应用的访问流量,另一方面通过Route来找到目标微服务。

从宏观到微观,网关起到了将外部应用的访问,按照一定的访问策略,访问目标微服务的中间件的作用。

以一次请求看SpringCloud Gateway的调用流程:

  • RoutePredicateHandlerMapping:通过lookupRoute方法,遍历所有路由列表,一个路由一个路由的正则匹配,指导找到第一个可以匹配的Route路由。

  • FilteringWebHandler:创建过滤器链,按顺序调用Filter,filter又分为PreFilter前置过滤器和PostFilter后置过滤器。

  • 整个请求过ServerWebExchange作为上下文贯穿启动,对于一次请求的信息从ServerWebExchange获取,修改则保存在ServerWebExchange中,注意基于Reactive特性,ServerWebExchange是只读的,修改Exchange需重新builder

04 SpringCloud Gateway 路由条件匹配器

SpringCloud Gateway路由条件匹配器是一个断言,根据Http Request中的请求报文来进行匹配,当满足条件则路由生效。

  • After:匹配在指定日期时间之后发生的请求。

  • Before:匹配在指定日期之前发生的请求。

  • Between:需要指定两个日期参数,设定一个时间区间,匹配此时间区间内的请求。

  • Cookie:需要指定两个参数,分别为name和regexp(正则表达式),也可以理解Key和Value,匹配具有给定名称且其值与正则表达式匹配的Cookie。

  • Header:需要两个参数header和regexp(正则表达式),也可以理解为Key和Value,匹配请求携带信息。

  • Host:匹配当前请求是否来自于设置的主机。

  • Method:可以设置一个或多个参数,匹配HTTP请求,比如GET、POST

  • Path:匹配指定路径下的请求,可以是多个用逗号分隔

  • Query:需要指定一个或者多个参数,一个必须参数和一个可选的正则表达式,匹配请求中是否包含第一个参数,如果有两个参数,则匹配请求中第一个参数的值是否符合正则表达式。

  • RemoteAddr:匹配指定IP或IP段,符合条件转发。

  • Weight:需要两个参数group和weight(int),实现了路由权重功能,按照路由权重选择同一个分组中的路由

05 SpringCloud Gateway路由过滤器

SpringCloud Gateway过滤器针对HTTP请求报文中的Header、Body、Param等元素进行操作。最新的SpringCloud Gateway版本内置了32种Filter拓展。

过滤器的应用:

  • 对于请求报文(header、path、param、body)进行设值、添加、修改、删除、缓存等操作,根据修改的环节又分为请求与响应

  • 对网关流量计数,实现熔断限流功能

  • 设置请求重定向地址

  • 设置请求状态

  • 保存Session

  • 请求重试

  • 设置请求大小

  • Token传递

SpringCloud Gateway过滤器是最常用的开发方式,支持两种自定义Filter模式:GlobalFilter、GatewayFilter,GlobalFilter是全局过滤器,面向全局生效,GatewayFilter是局部过滤器对于特定的Route生效。

06 SpringCloud Gateway 优化实践

基于SpringCloud Gateway我们有深入的使用,为了让它能够更好地适应企业级的业务场景需求,我们对它的性能和功能上做了很多优化。

路由匹配性能优化


SpringCloud Gateway默认使用逐个路由匹配的方式进行路由的查找,对于每一次请求都会逐个匹配路由的断言规则,直到匹配到第一个路由找到调用的目标服务。所以对于在路由非常多的场景,路由的断言匹配严重影响来访问效率。

针对路由断言匹配我们进行来性能优化,首先通过增加BusyRouteList,采用MRU的算法来维护一个最近常用的繁忙队列,将最常用的路由可以快速匹配出来;其次对于路由列表我们增加来按照路由路径进行分组,往往不同路径代表着不同的微服务,路由是路由中最具有区分力的元素,通过按路径分组,可以进一步大大提升查询路由的效率。

动态路由


动态路由作为网关控制分离的重要实现方式,支持集中管理路由规则,弹性扩展实例。我们将网关拆分为console的控制面,负责维护管理下发控制策略,broker数据面负责作为网关接入业务服务执行路由规则。动态路由通过拓展RouteLocator组件实现CachingRouteLocator,允许每个网关实例到“配置中间件”获取路由定义信息,配置中间件可以是Nacos、Redis、Zookeeper等。

弹性架构



弹性架构:针对网关broker数据面进行组织分化形成共享微服务网关、专有微服务网关、特性微服务网关,实现企业级业务系统的网关集中化管理,实现网关分布式化,避免单点故障,又满足不同业务系统不同路由策略、协议、业务流量情况的需求,同时以特性微服务网关来提供对nginx、kong、envoy的适配。

服务发现

服务发现:服务发现模块拓展SpringCloud Gateway现有的LoadBalancerClientFilter实现,通过便携轻量级的NacosClient、EurekaClient、K8sClient、OpenshiftClient统一多种注册中心的服务发现模式,并支持灵活配置,通过GatewayDiscoveryClient抽象统一返回ServiceList。



多协议转换

多协议转换:协议转换需要将Gateway进入的Http协议进行转换,适配支持dubbo、webservice、grpc协议,将协议转换拆分为三个组件来实现,如对于dubbo协议由Http2Dubbo转换器,DubboInvoker调用器,DubboWriteResponse响应适配器组成。



网关鉴权

网关鉴权:网关在微服务架构中是鉴权的最佳实现方式,具有非侵入易维护的特点。将鉴权可分为Token校验、权限验证、数据权限验证、操作记录几步骤,轻松实现业务系统的安全增强。


标准接口定义

  • 接口调试:网关数据面Broker代理内部微服务,承接来自外部流量的请求;对于接口调试场景,Console服务将用户请求翻译成标准Http格式协议,Broker实时感知请求并调试目标服务,返回调试结果。

  • 流量录制:对于网关经过的请求,在网关通过请求转换接口定义来获得接口定义录制下来,随后可以随时发起流量回放,用来排查问题,或者自动化测试。

  • 流量复制:对于网关经过的请求,在网关如果开启流量复制策略,则首先将流量转换为接口定义,在下发转发到对应的微服务。



07 谐云HC-Gateway API网关

谐云HC-Gateway是基于Java开发的API网关平台,提供高性能、高可用、易扩展的统一API网关解决方案。具有以下特点:

  • API网关全生命周期管理
    支持对接口生命周期过程中的开发、调试、发布、授权、接口文档、日志分析、下线的管理,保证各个阶段的稳定进行。

  • 易扩展性
    提供了丰富的系统组件完成鉴权、限流、监控等能力,能够满足大部分的业务需求;支持自定义插件满足个性化需求、便于调整或替换已有集成功能,不必频繁对网关层代码进行改动,确保网关层的稳定性。

  • 高可管理性
    匹配企业的各种管理特性,包括多租户、多权限、多环境的管理。

  • 丰富的可观测性
    提供网关、应用、路由、服务级别的监控能力,支持链路追踪,将监控数据输出到控制台,提供图像化的展示,帮助用户监控与定位问题。

  • 全面的安全防护
    提供API认证、访问控制、流量控制、IP黑白名单等多种安全机制,避免潜在的安全风险。

  • API门户 支持将接口上架到API门户,提供给第三方开发者采购与使用。

谐云HC-Gateway整体架构图

在控制面,HC-Gateway可提供完善的网关管控,完成服务、接口、应用的相关管理以及配置下发工作;在数据面,可多实例扩展,支持多种类型的微服务接入,包括Nacos、Eureka、Kubernetes微服务、自定义服务;负责网关具体策略的执行,如路由策略、灰度策略、流控策略、安全策略等。

发布于 2022-08-19 16:54


本次由微博研发中心技术经理及高级技术专家陈飞分享了微博利用阿里云实现分钟级服务器规模成倍扩容的技术体系,包括 Docker 与虚机结合的使用经验、网络架构以及负载均衡、缓存架构的跨 IDC 服务部署的一些经验。本次视频直播的整理文章、视频、幻灯片整理完毕,如下内容。

直播视频:http://click.aliyun.com/m/6360/

幻灯片下载地址: http://click.aliyun.com/m/6360/

DCP 设计 “初心”

图一 DCP 设计初心

 

DCP 是微博容器化的混合云弹性调度运维平台,其诞生初衷是以最低成本实现弹性能力。DCP 系统对外提供的功能包括集群管理、服务池之间的调度。目前使用 DCP 系统的业务方涵盖微博的核心业务,主要包括微博平台、红包飞、手机微博等。

DCP 最初的设计目标主要有三点:

  1. 要具有弹性能力,当时预估在春晚峰值时,需要 10 分钟 16000 核,25600GB 的计算资源弹性能力;

  2. 能够节约成本,设计之时希望 2016 年春晚的总体成本不超过 2015 年,且通过阿里云等公有云按需付费模式,未来可大幅降低单位成本;

  3. 能提供一个标准的技术平台,拉通不同语言、运行环境差异,向微博各个业务系统提供标准的弹性能力。

DCP 混合云架构设计

图二 DCP 混合云架构设计原则

 

当具体去设计这样一个系统架构时,由于涉及到不同的业务方、不同的部门,各个环节协调还是比较复杂的。因此在架构设计时必须遵循几个具体的原则。

  1. 在使用公有云时,不仅要单单使用公有云,要将公有云和专有云结合使用,最大程度利用公有云按需付费的特点,降低单位成本,例如在 2016 年春晚,微博与阿里云合作,在流量峰值到来的前几个小时才部署了相应的公有云资源。同时业务需要在公有云与专有云之间无差异化部署;

  2. 服务化,系统各组件之间通过 Restful API 而不是原来的运维干预方式进行通信。这里要求各组件应具有良好的扩展性,实现机制可插拔;

  3. 可伸缩,各系统组件可以根据管理集群的规模,实现自身的自动伸缩。各组件应无状态、无单点。运维操作自动化。

图三 DCP 架构分层

 

DCP 架构具体分为四层。第一层是不可变基础设施,Docker 的出现很大程度上改变了原有的运维方式,下文将具体介绍在容器化、系统初始化、镜像分发、带宽监控方面的实践经验。第二层主要完成弹性调度,包括业务跨云调度、调度机制的建立、容量评估。在已有基础设施资源前提下,动态合理的分配给各个业务节点。第三层主要完成服务发现,在业务弹性部署后,调用方需要快速发现服务集群分布的节点,通过配置中心、负载均衡、RPC 协同快速实现发现机制。第四层主要完成容器编排,包括自动扩容和监控报警。

图四 DCP 整体架构

 

上面这张图是 DCP 整体架构。架构的最下层是私有云和阿里云的计算资源。各个系统之间通过 API 相互通信,利用阿里云的 Open API 动态创建所需的计算节点。再上一层是基础设施管理系统,负责虚机的创建、镜像的分发等服务抽象和实现,对外提供和专有云相同的计算环境。再上一层通过 Swarm、Mesos 实现了业务容器动态调度框架。最上面一层是业务系统。最左边是一套服务发现框架,该框架是基于 Consul 集群建立配置中心,实现服务发现机制。

接下来,对各个层的实现进行详细剖析。

 

不可变基础设施

 

微博在 15 年春晚就开始尝试 Docker 技术,当时目的是让业务与宿主机的运行环境解耦。Docker 解决了业务对运行软件的版本、组件需求,将这些依赖关系封装到 Docker Image 中,统一了私有云、公有云之间及不同业务线之间的交互标准。

图五 容器化

DCP 对业务层提供了十分标准的基础运行环境。底层选用 ECS 的 CentOS7.1.1503 的镜像,在此之上是 Docker 的 Devicemapper-direct-lvm 文件承接系统,版本选择是 Docker 1.6.2 版本。中间层是调度框架的实现,使用的是 Mesos 0.25 和 Swarm 1.0.0 版本,以及一些容器级别的监控,如贡献给开源社区的 cAdvisor 0.7.1.fix。PHP 和 Java 对应不同的后端应用,微博的核心 Feed、用户关系等基础服务都是用 Java 实现,偏业务性的系统是用 PHP 来实现。对应于 Java 和 PHP 的 Docker 体系是一致的,只是其中使用的版本不同,在 Docker 1.3.2 版本中需要兼容一些离线计算平台。目前 Java 和 PHP 底层运行环境已经实现归一化。

图六 初始化

 

有了容器化的无差异运行环境之后,在阿里云上分钟级完成上千个计算节点的弹性扩容还需要进行性能优化。首先各 Stage 尽可能并行化,目前可实现 4 分钟内初始化上百台能力。同时通过 Ansible 的 Callback 机制,把耗时操作异步化。此外,使用 Ansible 自动伸缩功能,根据初始化需求规模自动伸缩,可支持分钟内千万级别初始化能力。


图七 镜像分发

 

在 Docker 环境和 ECS 计算资源准备充分之后,之后的工作就是将业务镜像进行快速部署。由于单个镜像的大小在 GB 级别,如果采用动态拉取的方式,需要几百台 ECS 专门做这个任务,大大增加了扩容成本。

微博将整个镜像进行分层,不变基础镜像放到云服务镜像环境里面,通过本地 Load 方式实现镜像的加载,大大减少了镜像分发的带宽需求,同时速度也有一定的提升;另外的一种操作就是反向缓存,突然之间在公有云上大规模弹性扩容时会面临冷启动的问题,即公有云上不存在相应的业务镜像,拉去业务变更的镜像会占用大量专线带宽。为了应对这种情况,在公有云上常态化部署对专有云 Registry 反向缓存,对专有云 Registry 内部变更和推送、配置都会同步到公有云的反向缓存节点上。此外也实现分发网络可自动伸缩。未来应对超过千万级别规模,微博正在尝试采用 P2P 进行分发。

 


图八 混合云网络架构

 

在混合云中,最核心的就是整个网络架构。打通公有云和私有云时,网络环境、IP 规划等问题都应该慎重考虑。目前微博采用阿里云的 VPC 服务,构建公有云与专有云一致的网络环境。另外,采用多专线确保网络高可用。路由方面,通过在核心交换上配置路由转发规则,采用就近原则,最大程度减少路由跳数,保证网络低延迟,当网络故障时,自动启动备份路由。

同时基于原有的带宽监控,实现跨云专线监控,细化到 IP 级别,根据每台 ECS 的 IP 自动汇聚到对应的产品线,监控其整体带宽消耗情况,确保各个业务产品线实际单宽占用不会影响。

更多内容及 QA 环节,请前往 >> http://click.aliyun.com/m/6360/

 

关于分享者

 

陈飞,微博研发中心技术经理及高级技术专家。目前在微博负责 Feed 用户关系和容器化相关工作,致力于 Docker 技术在生产环境中的规模化应用。

 

微博在 2016 年的春晚动态创建了 1000 多个 ECS 实例,分流了微博 60% 核心流量,整体平均一次扩容的时间小于 10 分钟,以超过 1 亿 / 天的数量新增。


家境不好的孩子不要去学这五个专业,



第一个就是临床医学类专业,医学专业虽然越老越值钱,但是你耗不起这类专业,学业周期非常长,想进三甲医院至少研究生学历,一般情况孩子在30岁以前几乎是挣不到大钱的,家境不好的孩子不建议学。



第二个电子竞技专业,很多男孩子游戏玩的很好,大学也有开设这种电子竞技专业的,但是这个专业都是有钱人玩,咱们普通家庭的家境不好的,电脑设备配置这一块是一笔很大的一笔投入,普通家庭很难承受。



第三个心理学,很多女孩子喜欢学,就业确实很难,需要生活阅历,对口就业率在所有的专业里面排名倒数第一,非常难就业。



第四市场营销专业。一个本科研究生毕业的学生,销售不一定能超过一个小学毕业的。



第五个艺术类专业,这也是一个非常烧钱的专业,学费贵,书本贵,家境不好的根本学不起。而且即使你考上大学。这类专业攀比现象比其他专业要严重得多,很容易让普通家庭的孩子产生极大的心理落差,从而做出一些错误的选择。



你认为还有哪些专业不适合普通家庭的孩子学,可以在评论区分享给大家!


远程桌面多用户同时连接

有时,我们可能需要多个用户同时远程一台电脑,但不同的Windows操作系统,其远程会话的限制有所不同。例如,Windows 8.1仅允许一个并发远程桌面连接、Windows Server系统默认允许每个用户有2个远程桌面会话。那么对于Windows系统,如何实现远程桌面多用户同时连接呢?

如何实现多个用户同时远程一台电脑?

接下来,我们将介绍如何实现Windows 10多用户同时远程桌面。要实现多个用户同时远程一台电脑,只需将“将远程桌面服务用户限制到单独的远程桌面服务会话”禁用即可。

步骤1. 先使用远程桌面控制电脑,然后按“Win + R”打开运行框,输入“gpedit.msc”并单击“确定”

步骤2. 转到:计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 连接,并双击打开“将远程桌面服务用户限制到单独的远程桌面服务会话”

组策略

步骤3. 将其设置为“已禁用”

禁用

步骤4. 再打开“限制连接的数量”并设置为“已启用”,您可以随意的设置连接的数量,但不能超过“999999”

限制数量

快速实现多用户同时连接

除了上面这种方式之外,您还可以使用第三方远程桌面工具AnyViewer,它能更容易的实现多个用户同时远程一台电脑,而且您还可以使用它同时远程控制多台电脑。AnyViewer远程桌面软件还有许多优点,例如:

兼容性强:远程桌面可以支持远程连接到更高的Windows 版本(专业版和企业版),但有些版本却不支持,像Win10家庭版是不支持远程桌面的,但AnyViewer支持多个Windows 系统,包括Windows家庭版。

不限制网络:使用远程桌面时,两台设备在不同的网络是不能使用的,除非您设置了端口转发,而AnyViewer可以直接使用,不受网络限制。

多个会话:AnyViewer支持同时进行两个会话,您可以升级账号到专业版或企业版,可同时进行更多的远程会话。

内置聊天:远程桌面不支持文本聊天,而AnyViewer提供了一个实时聊天窗口。

免费下载Win 11/10/8.1

安全下载

步骤1. 在两台计算机上下载、安装和启动AnyViewer,在电脑上转到“登录”,然后单击“注册”。(如果您已经官网注册了,您可以直接登录。)

注册

步骤2. 填写注册信息并登录。

填写注册信息

步骤3. 然后您可以看到您成功登录到AnyViewer,并且您的设备自动分配给您登录的帐号。

登录

步骤4. 在多台设备上登录同一个AnyViewer号,然后,在“设备”中您可以看到所有已登录到同一个账号的所有设备的列表,选择同一个电脑名称,再点击“远程控制”即可实现多个用户同时远程一台电脑。

远程控制

远程控制成功后,在AnyViewer远程桌面窗口的上方,还提供了许多快捷操作。例如:更改远程桌面画质、远程传输文件、远程关闭电脑等。

操作

总结

远程桌面如何实现多个用户同时远程一台电脑?您可以在本地组策略编辑器中禁用“将远程桌面服务用户限制到单独的远程桌面服务会话”再设置会话数量即可。如果您感兴趣的话,还可以使用AnyViewer远程桌面实现多个用户同时远程一台电脑。


授权协议介绍

先了解下相关词的解释

  • 协议和版权信息(License and copyright notice):在代码中保留作者提供的协议和版权信息

  • 声明变更(State Changes):在代码中声明对原来代码的重大修改及变更

  • 公开源码(Disclose Source):代码必需公开。如果是基于LGPL协议 下,则只需使用的开源代码公开,不必将整个软件源码公开

  • 库引用(Library usage):该库可以用于商业软件中

  • 责任承担(Hold Liable):代码的作者承担代码使用后的风险及产生的后果

  • 商标使用(Use Trademark):可以使用作者的姓名,作品的Logo,或商标

  • 附加协议(Sublicensing):允许在软件分发传播过程中附加上原来没有的协议条款等

协议描述要求允许禁止
Apache一个较宽松且简明地指出了专利授权的协议。
  • 协议和版权信息

  • 声明变更

  • 商用

  • 分发

  • 修改

  • 专利授权

  • 私用

  • 附加协议

  • 责任承担(禁止让作者承担责任,可以理解为免责)

  • 商标使用

GPL此协议是应用最为广泛的开源协议,拥有较强的版权自由( copyleft )要求。衍生代码的分发需开源并且也要遵守此协议。 此协议有许多变种,不同变种的要求略有不同。
  • 公开源码

  • 协议和版权信息

  • 声明变更

  • 商用

  • 分发

  • 修改

  • 专利授权

  • 私用

  • 责任承担

  • 附加协议

MIT宽松简单且精要的一个协议。在适当标明来源及免责的情况下,它允许你对代码进行任何形式的使用。
  • 协议和版权信息

  • 商用

  • 分发

  • 修改

  • 私用

  • 附加协议

  • 责任承担

ArtisticPerl社区尤为钟爱此协议。要求更改后的软件不能影响原软件的使用。
  • 协议和版权信息

  • 声明变更

  • 商用

  • 分发

  • 修改

  • 私用

  • 附加协议

  • 责任承担

  • 商标使用

BSD较为宽松的协议,包含两个变种BSD 2-Clause 和BSD 3-Clause,两者都与MIT协议只存在细微差异。
  • 协议和版权信息

  • 商用

  • 分发

  • 修改

  • 私用

  • 附加协议

  • 责任承担

Eclipse对商用非常友好的一种协议,可以用于软件的商业授权。包含对专利的优雅授权,并且也可以对相关代码应用商业协议。
  • 公开源码

  • 协议和版权信息

  • 商用

  • 分发

  • 修改

  • 专利授权

  • 私用

  • 附加协议

  • 责任承担

LGPL主要用于一些代码库。衍生代码可以以此协议发布(言下之意你可以用其他协议),但与此协议相关的代码必需遵循此协议。
  • 公开源码

  • 库引用

  • 协议和版权信息

  • 商用

  • 分发

  • 修改

  • 专利授权

  • 私用

  • 附加协议

  • 责任承担

MozillaMozilla Public License(MPL 2.0)是由Mozilla基金创建维护的。此协议旨在较为宽松的BSD协议和更加互惠的GPL协议中寻找一个折衷点。
  • 公开源码

  • 协议和版权信息

  • 商用

  • 分发

  • 修改

  • 专利授权

  • 私用

  • 附加协议

  • 责任承担

  • 商标使用

No license你保留所有权利,不允许他人分发,复制或者创造衍生物。当你将代码发表在一些网站上时需要遵守该网站的协议, 此协议可能包含了一些对你劳动成果的授权许可。比如你将代码发布到GitHub,那么你就必需同意别人可以查看和Fork你的代码。
  • 协议和版权信息

  • 商用

  • 私用

  • 分发

  • 修改

  • 附加协议

Public domain dedication在许多国家,默认版权归作者自动拥有,所以Unlicense协议提供了一种通用的模板,此协议表明你放弃版权, 将劳动成果无私贡献出来。你将丧失对作品的全部权利,包括在MIT/X11中定义的无担保权利。
  • N/A

  • 商用

  • 分发

  • 修改

  • 私用

  • 责任承担

GNU General Public

允许所有人复制和发布本授权文件的完整版本,但不允许对它进行任何修改。




 

如何选择授权协议? MIT

以下是收集到的比较好的开源项目:

0. spring-boot-examples

Spring Boot 使用的各种示例,以最简单、最实用为标准,此开源项目中的每个示例都以最小依赖,最简单为标准,帮助初学者快速掌握 Spring Boot 各组件的使用。

授权协议:未知

开源地址:https://github.com/ityouknow/spring-boot-examples

1. smart-web2

smart-web2是一套相对简单的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: 1. 系统管理 系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 2. 流程管理 流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 3. 表单管理 表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 4. 我的办公 我的待办、我的已办。 5. 简单报表管理。

授权协议:Apache

开源地址:https://gitee.com/bcworld/smart-web2

2. MCMS 

MCMS 是完整开源的 J2EE 内容管理系统,拥有更高效的代码在线生成工具,降低开发成本提高开发效率。不需要专业的后台开发技能,只要使用系统提供的标签,就能轻松建设网站,系统支持全站静态化。站点同时支持PC与移动端访问,同时会自动根据访问的终端切换到对应的界面,数据由系统统一管理。

授权协议:MIT

开源地址:http://git.oschina.net/mingSoft/MCMS

3. spring-boot-pay

支付服务,付服务:支付宝、微信、银联详细 代码案例。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/52itstyle/spring-boot-pay

4. spring-boot-seckill

分布式秒杀系统

授权协议:Apache

开源地址:https://gitee.com/52itstyle/spring-boot-seckill

5. spring-boot-mail

邮件发送服务,文本,附件,模板,队列,多线程,定时任务实现多种功能!

授权协议:Apache

开源地址:https://gitee.com/52itstyle/spring-boot-mail

6. spring-boot-elasticsearch

ES全文搜索引擎,基于Elasticsearch构建网站日志处理系统,通过数据同步工具等一些列开源组件来快速构建一个日志处理系统,项目雏形初步成型中。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/52itstyle/spring-boot-elasticsearch

7. jmockdata

Jmockdta 是一款实现模拟 Java 类型或对象的实例化并随机初始化对象的数据的工具框架,单元测试的利器。

授权协议:Apache

开源地址:https://github.com/jsonzou/jmockdata

8. spring-boot-task

基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目。

授权协议:Apache

开源地址:https://gitee.com/52itstyle/spring-boot-task

9. spring-boot-fastdfs

集成了Distributed file system, DFS。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/52itstyle/spring-boot-fastdfs

10. 讯飞语音

讯飞语音JavaWeb语音合成解决方案。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/52itstyle/xufei_msc

11. mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

授权协议:Apache

开源地址:https://github.com/macrozheng/mall

12. cloud-platform

Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。 核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件。

授权协议:Apache

开源地址:https://gitee.com/geek_qi/cloud-platform

13. 微人事

微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。

授权协议:未知

开源地址:https://github.com/lenve/vhr

14. V 部落

V部落是一个多用户博客管理平台,采用 Vue + SpringBoot开发。

授权协议:未知

开源地址:https://github.com/lenve/VBlog

15. springboot-plus

一个基于SpringBoot 2 的管理后台系统,有数十个基于此的商业应用,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能 相比其他开源的后台开发平台脚手架,SpringBoot-Plus 使用简单,可以轻易完成中型,大型系统开发。同时技术栈较为简单。

授权协议:BSD 3-Clause

开源地址:https://gitee.com/xiandafu/springboot-plus

16. litemall

一个小商场系统。litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端。

授权协议:MIT

开源地址:https://github.com/linlinjava/litemall

17. jeeSpringCloud

基于SpringBoot2.0的后台权限管理系统界面简洁美观敏捷开发系统架构。核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。 互联网云快速开发框架,微服务分布式代码生成的敏捷开发系统架构。项目代码简洁,注释丰富,上手容易,还同时集中分布式、微服务,同时包含许多基础模块和监控、服务模块。模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装视频、教程文档 代码生成(单表、主附表、树表、列表和表单、redis高速缓存对接代码、图表统计、地图统计、vue.js)、dubbo、springCloud、SpringBoot、mybatis、spring、springmvc。

授权协议:MIT

开源地址:https://gitee.com/JeeHuangBingGui/jeeSpringCloud

18. NiceFish(美人鱼)

NiceFish(美人鱼) 是一个系列项目,目标是示范前后端分离模式下的项目组织方式:前端提供 浏览器 & 移动端 & Electron 实现;后端提供 SpringBoot & SpringCloud 实现。

授权协议:MIT

开源地址:https://gitee.com/mumu-osc/NiceFish

19. zscat_sw

基于springboot cloud构建的一个商城项目,包括前端,后端和h5应用,小程序,作为zscat应用实践的模板项目。基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提供应用管理方便第三方系统接入;同时还集合各种微服务治理功能和监控功能。模块包括:企业级的认证系统、开发平台、应用监控、慢sql监控、统一日志、单点登录、Redis分布式高速缓存、配置中心、分布式任务调度、接口文档、代码生成等等。

授权协议:Apache

开源地址:https://gitee.com/catshen/zscat_sw/

20. Roses

Roses基于Spring Boot 2和Spring Cloud Finchley.SR2,更符合企业级的分布式和服务化解决方案,Roses拥有高效率的开发体验,提供可靠消息最终一致性分布式事务解决方案,提供基于调用链的服务治理,提供可靠的服务异常定位方案(Log + Trace)等等,一个分布式框架不仅需要构建高效稳定的底层开发框架,更需要解决分布式带来的种种挑战!

授权协议:Apache

开源地址:https://gitee.com/stylefeng/roses

21. 华夏ERP

华夏ERP基于SpringBoot框架,立志为中小企业提供开源好用的ERP软件,目前专注进销存+财务功能。主要模块有零售管理、采购管理、销售管理、仓库管理、财务管理、报表查询、基础数据、系统管理等。支持预付款、收入支出、仓库调拨、组装拆卸、订单等特色功能。拥有库存状况、出入库统计等报表。同时对角色和权限进行了细致全面控制,精确到每个按钮和菜单。

授权协议:GNU GENERAL PUBLIC LICENSE

开源地址:https://gitee.com/jishenghua/JSH_ERP

22. zheng

基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。

授权协议:MIT

开源地址:https://gitee.com/shuzheng/zheng

23. iBase4J

基于SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,redis管理Session,Quartz分布式集群调度,Restful服务;系统管理:包括用户管理、权限管理、数据字典、系统参数管理等等;支持QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。

授权协议:Apache

开源地址:https://gitee.com/iBase4J/iBase4J

24. jeewx-boot

JeewxBoot是一款基于SpringBoot的开源微信管家系统,采用SpringBoot2.1.3 + Mybatis + Velocity 框架技术。支持微信公众号、微信小程序、微信第三方平台(扫描授权公众号)、抽奖活动等。JeewxBoot实现了系统权限管理、公众号管理、抽奖活动等基础功能,便于二次开发,可以快速搭建微信应用! Jeewx-Boot采用插件开发机制,实现一个抽奖活动项目是一个独立的插件(对JAVA来讲就是一个JAR包),可以很方便的做插拔,最终打造像Discuz一样的插件生态圈。

授权协议:Apache

开源地址:https://gitee.com/jeecg/jeewx-boot

25. JeeSite

eeSite 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用经典开发模式,让初学者能够更快的入门并投入到团队开发中去。在线代码生成功能,包括核心模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计;界面无刷新,一键换肤;众多账号安全设置,密码策略;在线定时任务配置;支持集群,支持SAAS;支持多数据源;支持微服务。

授权协议:GNU AFFERO GENERAL PUBLIC

开源地址:https://gitee.com/thinkgem/jeesite4

26. t-io

t-io是基于aio的网络编程框架:完善的脚手架、丰富的业务API、够用的文档、大量生产案例 以行践言“让天下没有难驾驭的网络编程”。

授权协议:Apache

开源地址:https://gitee.com/tywo45/t-io

27. CMS

一款使用Java语言开发的CMS,使用了Spring MVC,Spring,MyBatis等流行框架,提供首页大图管理、目录管理、文章管理和管理员管理等功能。是学习和二次开发的首选。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/shishuo/CMS

28. Hutool

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

授权协议:木兰宽松许可证

开源地址:https://gitee.com/loolly/hutool

29. JavaGuide

一份涵盖大部分Java程序员所需要掌握的核心知识。

授权协议:未知

开源地址:https://github.com/Snailclimb/JavaGuide

30. advanced-java

互联网 Java 工程师进阶知识完全扫盲。

授权协议:未知

开源地址:https://github.com/doocs/advanced-java

31. cim

CIM(CROSS-IM) 一款面向开发者的 IM(即时通讯)系统;同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的 IM 。借助 CIM 你可以实现以下需求:

  • IM 即时通讯系统。

  • 适用于 APP 的消息推送中间件。

  • IOT 海量连接场景中的消息透传中间件。

授权协议:MIT

开源地址:https://github.com/crossoverJie/cim

32. symphony

一款用 Java 实现的现代化社区(论坛 /BBS/ 社交网络 / 博客)平台

授权协议:GNU AFFERO GENERAL PUBLIC

开源地址:https://github.com/88250/symphony

33. arthas

Arthas旨在帮助开发人员解决Java应用程序的生产问题,无需修改代码或重新启动服务器。有了Arthas,你就可以在不重新启动JVM或需要额外的代码更改的情况下实时地对问题进行故障排除。

授权协议:Apache

开源地址:https://github.com/alibaba/arthas

34. tutorials

该项目是一系列小而专注的教程,每个教程都涵盖一个明确的开发领域。大多数教程项目都专注于Spring Framework(和Spring Security)。以下技术是重点:core Java,Jackson,HttpClient,Guava。

授权协议:MIT

开源地址:https://github.com/eugenp/tutorials

35. SpringBlade 

SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。采用Spring Boot 2 、Spring Cloud Hoxton 、Mybatis 等核心技术,同时提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。

授权协议:Apache 

开源地址:http://git.oschina.net/smallc/SpringBlade

36. JPress 

JPress 是一个 wordpress 的 Java 代替版本,使用 JFinal 开发。支持类似 wordpress 的几乎所有功能,比如:模板,插件等。同时在模板上,JPress 提出了“模板即模型”的概念,方便模板制作人灵活制作业务模型,移除了 widget 等繁杂功能,同时在模板和插件制作上比 wordpress 更加灵活简洁。JPress 还天生融合了微信公众平台,整合了国内众多云平台、短信发送、邮件发送平台,独创的“模板即模型”概念是wordpress 所不具备的。

授权协议:GNU LESSER GENERAL PUBLIC

开源地址:https://gitee.com/fuhai/jpress

37. MintLeaf-Fast

MintLeaf-Fast是一个基于SpringBoot2.0开发的,轻量级的,前后端分离的Java快速开发平台。支持在线演示!开箱即用,节省开发时间,提升开发效率,能够快速开发项目并交付的接私活利器。代码简洁,注释丰富,上手容易,提供基础模块(用户管理,角色管理,菜单管理,代码生成等8个模块),支持跨驱动多数据源,加强业务模块的扩展性。

授权协议:Apache

开源地址:https://gitee.com/mintleaf/mintleaf-fast

38. Quella

Quella 是基于 SSM+shiro+redis 开发的后台脚手,集成了一些后台通用功能,并集成了一些常用的第三方服务。

授权协议:Apache

开源地址:https://gitee.com/quella01/Quella

39. guns

基于 SpringBoot,致力于做更简洁的后台管理系统,完美整合 springmvc + shiro + mybatis-plus + beetl + flowable!Guns 项目代码简洁,注释丰富,上手容易,同时 Guns 包含许多基础模块(用户管理,角色管理,部门管理,字典管理等 10 个模块),可以直接作为一个后台管理系统的脚手架。Guns v3.0新增rest api服务。提供对接服务端接口的支持。并利用jwt token鉴权机制给予客户端的访问权限。传输数据进行md5签名保证传输过程数据的安全性!Guns v3.1 新增集成工作流引擎 flowable6.2.0!

授权协议:GNU LESSER GENERAL PUBLIC

开源地址:https://gitee.com/naan1993/guns 

40. easypoi

POI 的封装工具类,Excel的快速导入导出,Excel模板导出,Word模板导出,可以仅仅5行代码就可以完成Excel的导入导出,修改导出格式简单粗暴,快速有效。

授权协议:Apache

开源地址:https://gitee.com/lemur/easypoi

41. roncoo-pay

龙果支付系统是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。

授权协议:Apache

开源地址:https://gitee.com/roncoocom/roncoo-pay 

42. Spiderman 强力 Java 爬虫

强力 Java 爬虫,列表分页、详细页分页、ajax、微内核高扩展、配置灵活。

授权协议:Apache

开源地址:https://gitee.com/l-weiwei/spiderman

43. jfinal-weixin

JFinal Weixin 是基于 JFinal 的微信公众号极速开发 SDK,只需浏览 Demo 代码即可进行极速开发,自 JFinal Weixin 1.2 版本开始已添加对多公众号支持。

授权协议:Apache

开源地址:https://gitee.com/jfinal/jfinal-weixin

44. webmagic

webmagic 是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。

授权协议:Apache

开源地址:https://gitee.com/flashsword20/webmagic 

45. ip2region

准确率 99.9% 的 ip 地址定位库,0.0x 毫秒级查询,数据库文件大小只有 1.5M,提供了java,php,c,python,nodejs,golang 查询绑定和 Binary,B树,内存三种查询算法,妈妈再也不用担心我的 ip 地址定位!

授权协议:Apache

开源地址:https://gitee.com/lionsoul/ip2region 

46. zbus:MQ、RPC 实现

小巧而极速的MQ、RPC实现,支持 HTTP/TCP 代理,开放易扩展,多语言支撑微服务,系统总线架构

授权协议:MIT

开源地址:https://gitee.com/rushmore/zbus 

47. xxl-job

XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/xuxueli0323/xxl-job

48. layui

采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,极低门槛,拿来即用。

授权协议:MIT

开源地址:https://gitee.com/sentsin/layui

49. EasyPR

EasyPR 是一个中文的开源车牌识别系统,其目标是成为一个简单、高效、准确的车牌识别引擎。相比于其他的车牌识别系统,EasyPR有如下特点:* 它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到java等平台。* 它能够识别中文。例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。* 它的识别率较高。图片清晰情况下,车牌检测与字符识别可以达到80%以上的精度。

授权协议:Apache

开源地址:https://gitee.com/easypr/EasyPR 

50. Mybatis_PageHelper

Mybatis 分页插件。如果你也在用 Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。

授权协议:MIT

开源地址:https://gitee.com/free/Mybatis_PageHelper 

51. xxpay

XxPay聚合支付使用Java开发,包括spring-cloud、dubbo、spring-boot三个架构版本,已接入微信、支付宝等主流支付渠道,可直接用于生产环境。

授权协议:MIT

开源地址:https://gitee.com/jmdhappy/xxpay-master

52. weixin-java-tools

可能是目前最好最全的微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业号、小程序等的开发。

授权协议:Apache

开源地址:https://gitee.com/binary/weixin-java-tools 

53. IJPay

IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。

授权协议:木兰宽松许可证

开源地址:https://gitee.com/javen205/IJPay 

54. Morning

猫宁Morning公益商城是中国公益性在线电子商城,以商城B2C模式运营的公益在线商城。系统分为前台和后台,前台主要功能包括注册和登录、商品浏览、个人信息管理、购物车、我的订单、网上支付、评价、提问、公益活动、公益论坛、商城论坛等系统,后台主要功能包括管理成员信息管理、用户信息管理、商品管理、公益活动管理、商品分类管理、订单管理、公告资讯管理、论坛平台管理、商品提上管理、商品评价管理等。

授权协议:该仓库未指定开源许可证,未经作者的许可,此代码仅用于学习,不能用于其他用途。 

开源地址:https://gitee.com/morning-pro/Morning

55. miaosha

秒杀、抢购解决方案,设计目标:性能支撑"小米印度抢购搞挂亚马逊事件”。

授权协议:Apache

开源地址:https://gitee.com/1028125449/miaosha 

56. xiaoyaoji

小幺鸡在线文档管理,支持在线测试,支持 json,txt,xml,html,js,流和 WebSocket。

授权协议:GPL

开源地址:https://gitee.com/zhoujingjie/apiManager

57. CrapApi

CrapApi 免费开源API接口管理系统、API接口调试工具:API接口管理、文档管理、接口调试,GitHub、码云、开源中国托管源码。

授权协议:GNU AFFERO GENERAL PUBLIC

开源地址:https://gitee.com/CrapApi/CrapApi 

58. sequence

高效 GUID 产生算法(sequence),基于 Snowflake 实现 64 位自增 ID 算法。Twitter-Snowflake 算法产生的背景相当简单,为了满足 Twitter 每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。

授权协议:MIT

开源地址:https://gitee.com/yu120/sequence 

59. framework-admin

项目基于 vue-template 的 webpack-simple 构建,采用的主要框架除了 Bootstrap 4。没有任何其它重度依赖。

授权协议:未知(作者未选择开源协议,暂未发现相关使用限制)

开源地址:https://gitee.com/backflow/framework-admin 

60. sharding-sphere

Apache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

授权协议:Apache

开源地址:https://gitee.com/Sharding-Sphere/sharding-sphere

61. PornHubBot

全球最大成人网站 PornHub 爬虫 (Scrapy、MongoDB) 一天 500w 的数据。

授权协议:MIT

开源地址:https://gitee.com/xiyouMc/pornhubbot 

62. vue2-elm

基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用。

授权协议:MIT

开源地址:https://gitee.com/mgh_com/vue2-elm 

63. Bootdo

BootDo 是高效率,低封装,面向学习型,面向微服的开源 Java EE 开发框架。BootDo是在SpringBoot基础上搭建的一个Java基础开发平台,MyBatis为数据访问层,ApacheShiro为权限授权层,Ehcahe对常用数据进行缓存。

授权协议:Apache

开源地址:https://gitee.com/lcg0124/bootdo 

64. Tale

Tale是一款简洁美观的Java博客系统,让每一个有故事的人更好的表达想法!使用了轻量级 mvc 框架 Blade 开发,默认主题使用了漂亮的 pinghsu。

授权协议:MIT

开源地址:https://gitee.com/biezhi/tale

65. iView

iView 是一套基于 Vue.js 的 UI 组件库,主要服务于 PC 界面的中后台产品。

授权协议:MIT

开源地址:https://gitee.com/icarusion/iview 

66. Jcseg

Jcseg 是基于 mmseg 算法的一个轻量级开源中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了最新版本的 lucene, solr, elasticsearch 的分词接口。Jcseg 自带了一个 jcseg.properties 文件用于快速配置而得到适合不同场合的分词应用,例如:最大匹配词长、是否开启中文人名识别、是否追加拼音、是否追加同义词等。

授权协议:Apache

开源地址:https://gitee.com/lionsoul/jcseg 

67. pay-java-parent

轻量级支付模块集成(微信支付,友店扫码,支付宝,富友,银联)支付整合,app,扫码,即时到帐刷卡付条码付、支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里。

授权协议:Apache

开源地址:https://gitee.com/egzosn/pay-java-parent  

68. file-online-preview

基本支持主流办公文档的在线预览,如 doc、docx、Excel、pdf、txt、zip、rar、图片等等。

授权协议:Apache

开源地址:https://gitee.com/kekingcn/file-online-preview  

69. smart-socket

不到 800 行代码实现极简、易用、高性能的 java AIO 通信框架,也许是物联网开发的最佳选择。

授权协议:Apache

开源地址:https://gitee.com/smartboot/smart-socket 

70. UCKeFu 

优客服是一个全渠道融合的客服系统,融合多个客服渠道,帮助各种行业各种规模的企业建立客服体系。通过将邮件、短信、电话语音、WebIM 在线客服、微信、微博、H5 页面、APP 接口等多个渠道来源的客户服务请求与对话汇聚在一个管理平台,用统一的方式来响应和支撑客户服务。

授权协议:Apache

开源地址:https://gitee.com/lindent/ukefu

71. Neditor

Neditor 是基于 Ueditor 的一款现代化界面富文本编辑器,不论从功能还是从其它各方面来讲,Ueditor 都是一款无以替代的编辑器产品。只是已经不符合现代化样式的需求,于是修改了它的样式,使得页面更加美观。

授权协议:MIT 

开源地址:https://gitee.com/notadd/neditor

72. vue-element-admin

vue-element-admin 是一个后台集成解决方案,它基于 Vue.js 和 Element。它使用了最新的前端技术栈,内置了 i18 国际化解决方案、动态路由、权限验证等很多功能特性。本项目并不是一个脚手架,更倾向于是一个集成解决方案。

 授权协议:MIT

开源地址:https://github.com/PanJiaChen/vue-element-admin

73. iNotify

JS 实现浏览器的 title 闪烁、滚动、声音提示、通知,没有依赖。

授权协议:MIT

开源地址:https://gitee.com/jaywcjlove/iNotify

74. Tars

Tars 这个名字取自于电影"星际穿越"中的机器人,它是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,配套一体化的运营管理平台,并通过伸缩调度,实现运维半托管服务。目前支持 Linux 操作系统,支持 Java、C++ 以及 Node.js 语言。

授权协议:BSD 3-Clause

开源地址:https://github.com/TarsCloud/Tars

75. DockerFly 

DockerFly 是基于 Docker 1.12+(Docker API 1.24+) 开发的 Docker 管理工具,提供了最基本的基于 Docker 的管理功能,目的是能够方便广大 Docker 初学者以及 Docker 管理员能够快速的进行 Docker 容器的管理和维护。

授权协议:Apache

开源地址:https://gitee.com/helyho/DockerFly

76. beimi

贝密游戏是一系列棋牌游戏的名称,其中包含麻将、斗地主、德州,目前正在进行UI设计以及后台系统(JAVA)开发!

授权协议:Apache

开源地址:https://gitee.com/wedebug/beimi

77. iView admin

iView admin 是基于 Vue.js,搭配使用 iView UI 组件库形成的一套后台集成解决方案。iView admin 遵守 iView 设计和开发约定,风格统一,设计考究。

授权协议:MIT

开源地址:https://gitee.com/icarusion/iview-admin

78. svnadmin

SVN资源权限管理系统 安全,流畅,极简的管理工具; 现已开源,基于svnkit。

授权协议:Apache

开源地址:https://gitee.com/hpboys/svnadmin

79. PearPlayer

PearPlayer(梨享播放器)是完全用 JavaScript 写的开源 HTML5 流媒体播放框架,实现了融合 HTTP(包含 HTTPS、HTTP2)、WebRTC 的多协议、多源、低延迟、高带宽利用率的无插件 Web 端流媒体加速能力。

授权协议:未指定开源许可证,未经作者的许可,此代码仅用于学习,不能用于其他用途。 

开源地址:https://gitee.com/PearInc/PearPlayer.js

80. UReport

UReport2 是一款高性能的架构在 Spring 之上的纯 Java 报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。

授权协议:Apache

开源地址:https://gitee.com/youseries/ureport

81. ElasticHD 

ElasticHD 是一款使用 Go 语言编写的 ElasticSearch 的可视化应用。不依赖 ES 的插件安装,更便捷;导航栏直接填写对应的 ES IP 和端口就可以操作 ES 了。

授权协议:MIT

开源地址:https://github.com/360EntSecGroup-Skylar/ElasticHD

82. ActFramework 

ActFramework 是一种简洁易用,具有强大表达力的 Java MVC 全栈框架。

授权协议:Apache

开源地址:https://gitee.com/actframework/actframework

83. JEHC 

JEHC 开源平台,采用技术为:Spring,SpringMVC,Mybatis,Activiti5(Activiti 可视化设计器基于 IE,火狐,谷歌,360 等浏览器),Solr4.10,MySQL,Redis,Ehcache,服务器监控模块,tk压缩,Extjs 6.2 ,Bootstrap,Junit单元测试,Logback,同时融入了 Hessian,数据库读写分离,MQ 消息中间件等技术。

授权协议:GNU GENERAL PUBLIC

开源地址:https://gitee.com/jehc/jehc

84. DWSurvey

DWSurvey是一款方便、高效、实用的调研问卷系统,一款基于 JAVA WEB 的开源问卷表单系统。

授权协议:GNU AFFERO GENERAL PUBLIC

开源地址:https://gitee.com/wkeyuan/DWSurvey

85. Aurora IMUI 

Aurora IMUI 是一个通用的即时通讯(IM) UI 库,不特定于任何 IM SDK。已经同时支持 Android/iOS。

该 UI 库提供了消息列表、输入视图等常用组件,支持常见的消息类型:文字、图片、语音、视频等。默认包含多套界面风格,也能根据自己的需要自定义。

授权协议:MIT

开源地址:https://gitee.com/jpush/aurora-imui

86. QIQIIM

QIQIIM 提供简单快捷的 IM 方案,快速打造在线 IM 方案,可用于公司内网、外网通讯,客服系统等,已用 netty4 实现了 socket, websocket,现已结合了 layui。

授权协议:Apache

开源地址:https://gitee.com/qiqiim/qiqiim-server

87. Face Recognition

Face Recognition 是一个基于 Python 的人脸识别库,它还提供了一个命令行工具,让你通过命令行对任意文件夹中的图像进行人脸识别操作。

该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。

授权协议:MIT

开源地址:https://github.com/ageitgey/face_recognition

88. ApolloAuto

Apollo(阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。

Apollo 是百度重点打造的 AI 开放平台之一,计划主要包含 4 个技术模块:定位/感知模块、车辆规划与运营(AI+大数据,精准控制车辆,适合不同路况)、软件运营框架(支持英特尔、英伟达等多种芯片)。

授权协议:Apache

开源地址:https://github.com/ApolloAuto/apollo

89. DFace

基于多任务卷积网络(MTCNN)和 Center-Loss 的多人实时人脸检测和人脸识别系统,使用 Pytorch 实现。

授权协议:Apache

开源地址:https://gitee.com/kuaikuaikim/dface

90. vant-weapp

轻量、可靠的小程序 UI 组件库。

授权协议:MIT

开源地址:https://github.com/youzan/vant-weapp

91. Centrifugo 

Centrifugo 是一个用 Golang 实现的基于 Websocket 或者 SockJS 的实时通信平台。

授权协议:MIT

开源地址:https://github.com/centrifugal

92. AR.js

AR.js 是一款应用于 Web 的高效增强现实(AR)库。

授权协议:MIT

开源地址:https://github.com/jeromeetienne/AR.js

93. wxBot 

wxBot 是用 Python 包装 Web 微信协议实现的微信机器人框架。

授权协议:Apache

开源地址:https://github.com/liuwons/wxBot

94. Lozad.js

Lozad.js 是一款基于 IntersectionObserver API 的高性能、轻量级(~0.5kb)和可配置的延迟加载器,纯 JavaScript,无依赖,可用于延迟加载图片、iframe 、广告、视频和其他元素。

授权协议:MIT

开源地址:https://github.com/ApoorvSaxena/lozad.js

95. weweChat 

weweChat 是一个使用 React 、MobX 和 Electron 构建的仿微信桌面客户端。

授权协议:MIT

开源地址:https://github.com/trazyn/weweChat

96. WePY 

WePY 是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。框架的细节优化,Promise,Async Functions 的引入都是为了能让开发小程序项目变得更加简单,高效。

授权协议:BSD

开源地址:https://tencent.github.io/wepy/

97. Maptalks 

Maptalks 项目是一个 HTML5 的地图引擎,基于原生 ES6 Javascript 开发,采用插件化设计,能与其他图形库结合,开发各种二三维效果,例如 echarts/d3/THREE 等。

授权协议:BSD

开源地址:https://maptalks.org/

98. Moon

一个极小,但速度极快的 UI 库。项目受 Vue 启发,旨在打造成一个快速灵活的前端 JavaScript 库。API 直观且易于学习,还支持插件。

授权协议:MIT

开源地址:https://gitee.com/mirrors/Moon

99. 微信小程序示例

小程序新手的福音。

授权协议:MIT

开源地址:https://github.com/wechat-miniprogram/miniprogram-demo