Saturn

Spring Boot(四):thymeleaf使用详解

随声附和 提交于 2021-02-14 13:57:49
Spring Boot(四):thymeleaf使用详解 thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。 一、thymeleaf介绍 Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。 Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。 Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。 二、标准表达式语法 分为四类: 变量表达式

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

时光总嘲笑我的痴心妄想 提交于 2020-10-31 09:31:05
1.业务场景 保险人管系统每月工资结算,平安有150万代理人,如何快速的进行工资结算(数据运算型) 保险短信开门红/电商双十一 1000w+短信发送(短时汇聚型) 工作中业务场景非常多,所涉及到的场景也各不相同,这使得我们定时任务系统应该集管理、调度、任务分配、监控预警为一体的综合调度系统,如何打造一套健壮的、适应不同场景的系统,技术选型尤其重要。 针对以上场景我们需要我们的分布式任务系统具备以下能力: 1.支持多种作业类型(shell作业/Java作业) 2.支持作业HA,负载均衡和失败转移 3.支持弹性扩容(应对开门红以及促销活动) 4.支持Job Timeout 处理 5.支持统一监控和告警 6.支持作业统一配置 7.支持资源隔离和作业隔离 2.定时任务调度的特点 任务调度就是设点某一时间点自动触发的任务,该任务可以在时间规律上去循环执行。一般的技术quartz、spring task、java.util.Timer,这几种如果在单一机器上跑其实问题不大,但是如果一旦应用于集群环境做分布式部署,就会带来一个致命的问题,那就是重复执行,当然解决方案有,但是必须依赖数据库,将任务执行状态持久化下来。 特点: 时间驱动:系统一般可以通过时间来驱动,定时定点定次。 批量处理:批量处理堆积的数据更加高效,在不需要实时性的情况下比消息中间件更有优势。而且有的业务逻辑只能批量处理

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

时光怂恿深爱的人放手 提交于 2020-10-25 04:04:38
分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn) 参考文章: (1)分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn) (2)https://www.cnblogs.com/rainswinds/p/10930495.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4651504

垂直AI初创企业 VS 横向AI初创企业:不同的产品路线选择

独自空忆成欢 提交于 2020-10-09 11:49:10
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! AI初创企业主要分为两种风格,我们将在今天的文章中,对二者做出分析与展望。 当下,AI初创企业正在快速涌现。根据斯坦福大学AI指数报告数据,自2014年以来,已经有超过15798家AI初创拿到超过40万美元的投资。正如CB Insights公布的结果,AI初创企业在2019年吸引到创纪录的266亿美元投资。鉴于统计数据的指数级增长,投资者与企业家都迫切希望借AI的东风扶摇直上。 图片来源/斯坦福大学AI指数报告,88页 然而,AI初创企业拥有自己的分类方式。本文将主要研究垂直与横向AI初创企业之间的区别与共性。以下提出的见解,基于一家硅谷风险投资商、一家柏林AI风投工作室以及一位AI创业者的共同讨论。 要理解垂直与横向AI产品,我们首先需要明确AI产品的开发主题。 开发AI产品 每一款基于AI技术的产品,都拥有大致相同的工作流程。在各个机器学习项目中,团队都需要收集及准备数据、开发模型、部署模型、监控模型性能等。以下列出的CRISP-DM模型描述了机器学习的一般工作流程。 图片来源/Uni Dresden 要辨别垂直与横向AI初创企业的区别,首先要对数据科学工作流拥有清晰的了解。垂直AI初创企业需要拥有「完整的工作流」以交付最终产品,横向AI初创企业则专注于打造

#新闻拍一拍# 唯品会 Saturn 插件因未声明上游项目版权而被拒

妖精的绣舞 提交于 2020-08-07 11:28:26
唯品会 Saturn 插件因未声明上游项目版权而被拒 22 日晚,Apache SkyWalking 创始人吴晟在朋友圈中指出,因违反开源协议要求,SkyWalking 只能暂时拒绝针对唯品会 Saturn 项目的插件需求。吴晟称,“Saturn 是 fork 自 ElasticJob,并更改了版权信息,这是一个非常严重的许可证问题……我们都不能正式接受它作为 Apache SkyWalking 的一部分”。 来源: 开源中国 拍一拍:在参与和贡献开源项目时,忽视或对开源许可证的无知,都是投入开源生态的重大阻碍,是需要认真学习的一课。 谷歌再推 Kotlin:代码量比 Java 减少 80% Google Home 团队现身说法,通过自身经历,展示了 Kotlin 开发的好处。截至今年六月,该应用中约有 30% 的代码采用 Kotlin 编写,今后的新功能也被鼓励用 Kotlin 进行开发。Kotlin 编程语言 2011 年由 JetBrains 推出,2012 年开源,2017 年成为 Android 官方开发语言,并于 2019 年成为 Andoid 开发官方首选语言。 来源: 开源中国 拍一拍:Java 被爆锤,但是这依然不能影响 Java 的统治地位。 蚂蚁区块链正式升级为“蚂蚁链”:全球区块链专利排名第一 7月23日,蚂蚁集团董事长井贤栋在杭州宣布,蚂蚁区块链正式升级为

唯品会开源分布式作业调度平台Saturn

…衆ロ難τιáo~ 提交于 2020-07-28 19:55:45
前言 Saturn英文意思是:土星,太阳系中的第二大行星。比地球高一个层级,地球是八大行星之一。而今天我们介绍的Saturn,是IT行业的一个分布式作业调度平台。可以看到Saturn的管理界面的象征性图标就是如下一个土星标志​: 土星 背景 普通的SpringBoot/SpringCloud微服务和Dubbo RPC分布式架构技术,都有着其各自的优缺点。其中最明显的就是模块间的依赖性: 比如SpringCloud必须依赖网关Zuul和ConfigCenter配置中心。 前一个业务模块必须启动并正常运行,后面依赖该业务模块的才能正常启动。 Dubbo必须要配置Service且正常启动并运行。 后面调用前面的Dubbo Service作业才能正常启动。 一、简介 Saturn (任务调度系统)是唯品会开源的一个分布式任务调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理。 Saturn是在当当开源的Elastic Job基础上,结合各方需求和我们的实践见解改良而成。 GitHub上Saturn官网活跃着很多Saturn用户和爱好者,业界也有很多公司以Saturn作为公司的核心架构 https://github.com/vipshop/Saturn 二、特性 基于时间的作业调度,作业实现不受开发语言所限

docker空间管理之清理磁盘占用

好久不见. 提交于 2020-04-27 06:14:19
1、docker部署后修改数据存放目录,默认存放到/var/lib/docker下面,修改到一个大的空间目录下面。参考我的另外一篇博客:https://www.cnblogs.com/cuishuai/p/9485939.html 2、docker空间占用分析 通常使用docker部署服务,使用一段时间后发现磁盘空间占用的很快,经排查发现占用最高的就是docker,发现一些比较老的image和废弃不用的container的volume没有清理造成的。由于只关注了docker的发布,却忽略了docker清理工作。长此以往容易导致服务器磁盘被塞满,从而部署的docker服务不可用,后果非常严重。所以就需要定期的清理一些没有用的过期资源。 docker提供了一个cli命令可以方便的查看docker具体咋用磁盘情况: #docker system df 可以看到,docker system df 命令给出了images、containers、volumes、build cache占用磁盘的大小。最后一列RECLAIMABLE,表示可回收的空间大小。 使用docker system df -v,可以显示更详细的信息: 知道空间占用情况了,结下来就是做清理工作。 docker提供了docker system prune来清理停掉的container、悬挂的image(没有tag)

分布式定时任务调度系统之Saturn--作业编排

人盡茶涼 提交于 2020-03-11 16:29:41
1 概述 有时候由于业务的需要,我们需要按照工作流的方式去调度作业: ​ JobA 调度成功后调度 JobB , JobB 调度成功后调度 JobC Saturn提供这个能力,我们称之为作业编排。作业编排将作业形成一个有向无环图,按照图的顺序依次调用。 2 概念 在一个调用链路里面,有上游和下游的概念。以上面的例子为例,JobA是这个调用链路的最上游或者称之为root,JobB和JobC是root的下游。 最上游作业(root作业)可以是Java定时作业或者Shell定时作业。 下游作业的作业类型称之为 被动作业 。被动作业可以细分为 Java被动作业 和 Shell被动作业 。 3.3.0版本,整个调用链里面的作业的分片数只能是1,要求链路不能形成环。 3 接入步骤 3.1 开发作业 作业编排里面的所有作业(无论是root或者被动作业),都必须是Java定时作业或者Shell定时作业。关于Java定时作业和Shell定时作业的开发,请看相应章节,这里不做赘述。 3.2 在Console定义作业调用顺序 3.2.1 定义Root作业 Root作业是一个Java定时作业或者Shell定时作业。详情参见 Java作业 的Console创建作业章节。 3.2.2 定义下游作业(被动作业) 作业类型选择“Java被动作业”或者“Shell被动作业”,上游作业选择Root作业或者其他被动作业

Saturn(定时任务调度系统)架构文档

喜你入骨 提交于 2019-12-06 00:54:45
saturn开发指引之java · vipshop/Saturn Wiki · GitHub https://github.com/vipshop/Saturn/wiki/saturn%E5%BC%80%E5%8F%91%E6%8C%87%E5%BC%95%E4%B9%8Bjava Saturn架构文档 · vipshop/Saturn Wiki · GitHub https://github.com/vipshop/Saturn/wiki/Saturn%E6%9E%B6%E6%9E%84%E6%96%87%E6%A1%A3 Saturn (定时任务调度系统)是唯品会自主研发的分布式的定时任务的调度平台,目标是取代传统的Linux Cron/Spring Batch Job/Quartz的方式,做到全域统一配置,统一监控,任务高可用以及分片。 目前该平台己平稳运行1年,承载着唯品会核心系统的全部定时任务的调度,监控,配置,经受住了生产环境的各种考验。 开源版本系唯品会生产使用的saturn核心,去除了唯品会的认证,监控,告警系统等依赖,可独立部署安装使用。 作者:葡萄喃喃呓语 链接:https://www.jianshu.com/p/577f1b3980aa 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 来源: oschina 链接: https

填坑唯品会分布式调度Saturn

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 04:20:17
唯品会分布式调度Saturn的开发文档见: https://vipshop.github.io/Saturn/#/zh-cn/3.0/quickstart 这里面说要安装node.js 8.7.0+跟npm 5.4.2+ 但其实node.js 8.7.0就已经包含了npm 5.4.2,首先下载node.js 8.7.0 wget https://nodejs.org/dist/v8.7.0/node-v8.7.0-linux-x64.tar.gz 解压tar -xzvf node-v8.7.0-linux-x64.tar.gz mv node-v8.7.0-linux-x64 /usr/local/node-8.7 cd /usr/local/node-8.7/ 建立软链接 ln -s /usr/local/node-8.7/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm ln -s /usr/local/node-8.7/bin/node /usr/local/bin/node 修改vim /etc/profile PATH=/usr/local/node-8.7/bin:$PATH export PATH 保存退出,source /etc/profile [root@host2 node-8.7]# node -v