Spring Boot

SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)

丶灬走出姿态 提交于 2020-11-03 00:18:35
点击上方 蓝色字体 ,选择“标星公众号” 优质文章,第一时间送达 作者 | 阿里云云栖社区 来源 | urlify.cn/ANzUFv 66套java从入门到精通实战课程分享 简介: 本篇是“SpringCloud 应用在 Kubernetes 上的最佳实践”系列文章的第六篇,主要介绍了如何保障生产环境服务稳定,做到随时发布,从而加快业务的迭代和上线速度。 前言 在应用发布上线的时候我们最担心的莫过于因为代码的bug引发业务的问题,虽然我们可以通过灰度的方式分批发布减小影响范围,但是如果能够在发布的过程中从实时监控中快速的发现问题进行回滚,那么就能缩短业务受影响的时间。因此我们可以看到灰度、监控、回滚是整个发布过程中不可或缺的三大利器,有了这三大利器后,我们能够做到随时发布,从而加快业务的迭代和上线速度。而监控作为基础设施的一个重要环节,是保障生产环境服务稳定不可或缺的一部分,目前EDAS提供了非常丰富的监控能力,下面我们从不同的场景来详细介绍一下这些监控能力。 体系化监控能力搭建 监控体系,最怕的就是有覆盖不到的地方,一个覆盖全面的监控应该是从基础设施到上层应用均有对应的手段去覆盖: 首先,如果故障产生时,最先感知到的其实是业务的受损,如交易量下跌、登陆的 UV 下跌等等。 而如果继续往下钻,如果业务集群很大的时候,我们最先需要定位到某一个服务或者某一台机器

Sentinel: 使用注解限流

回眸只為那壹抹淺笑 提交于 2020-11-02 21:54:39
在前面我们对Sentinel做了一个详细的介绍,可以手动的通过Sentinel提供的SphU类来保护资源。 文章查看: Sentinel: 分布式系统的流量防卫兵 这种做法不好的地方在于每个需要限制的地方都得写代码,从 0.1.1 版本开始,Sentinel 提供了 @SentinelResource 注解的方式,非常方便。 要使用注解来保护资源需要引入下面的Maven依赖: <dependency> <groupId> com.alibaba.csp </groupId> <artifactId> sentinel-annotation-aspectj </artifactId> <version> 1.4.1 </version> </dependency> 引入之后我们需要配置SentinelResourceAspect切面让其生效,因为是通过SentinelResourceAspect切面来实现的,我这边以Spring Boot中使用进行配置示列: import org . springframework . context . annotation . Bean ; import org . springframework . context . annotation . Configuration ; import com . alibaba . csp .

从零到百亿互联网金融架构发展史

青春壹個敷衍的年華 提交于 2020-11-02 14:54:30
总体介绍 在互联网金融行业一百多亿其实也算不上大平台,也就是二级阵营吧,其实每次的架构升级都是随着业务重大推进而伴随的,在前一代系统架构上遇到的问题,业务开发过程中积累一些优秀的开发案例,在下一代系统开发中就会大力推进架构升级。一方面可以平滑过度,一方面公司资源可以大力支持,同时技术的小伙伴们可以使用到前沿的技术,更有开发的成就感,就这样我们大概也就是9个月就行系统架构一次升级,就到了我们现在的这套架构中。 很多网友经常会问,你们平台的TPS是多少呀,最大并发是多少呀,性能怎么样,说实话我们是一个小公司,最夸张也就上万人同时抢标,但是做为一个中型的互联网金融平台要做的事情也真的不少,远远不只是这些参数可以说的清楚;我们也不是什么高大上的平台,使用的技术也是目前比较主流开源产品,但在公司不断发展的过程中也遇到了很多的问题,也尽量去使用比较主流的、开源的、适合我们的一些解决方案来构建整个系统,在这里分享平台发展背后技术换代的变化,同时希望和大家多做一些交流,多提一些建议。 我们进行了四次大的架构变化,每代架构都用一句话来总结: 第一代架构特点:业务比较集中、功能满足投资理财需求、快速上线 第二代架构特点;分布式系统改造,平台化初具规模,各项垂直业务系统搭建上线、产品端极大丰富用户投资、大数据平台研究并使用 第三代架构特点;SOA治理,使用zookeeper作为注册中心

面试七家大厂Java岗石沉大海,最后面试官给了我些建议(附:java岗经验分享)

帅比萌擦擦* 提交于 2020-11-02 13:22:22
放年假对于程序员的我们应该是我们所期待的事,可去年的年假却让我让我慎得慌,感觉是回到了上学时的暑假。一放就是两个多月,这么长时间的闭门不出让瘦的像猴一样的我长了将近十公斤的膘,这个还是比较高兴的一件事 。可让我痛苦的是我突然的失去了工作,原因只有几点,我想具体是什么原因大家也应该能猜出来。时光飞逝 生活还的继续,在上个月都是不停的在面试,结果却都是回家等通知。 在我感到失望迷茫的时候却意外接到了美团人事的电话,让我带齐资料礼拜一去人事报道,更让我没有想到的是他顺便给我发了一些尚未整理的书籍资料 ,虽未整理内容却很全面。而我也如期的去了公司开始工作,最近利用了两个礼拜的时间才整理好那位好心面试官推荐的内容。好的东西就要分享。大致内容包括: ZooKeeper MyBatis Dubbo Redis MySQL Spring Spring Boot kafka java 并发编程 微服务 tomcat性能优化 以及开源框架 等等。 温馨提示:资料虽整理不易 可好的东西却不能私藏 必须学会分享 要让有需要的朋友大家一起进步 获取方式: 三连之后 后台私信【文档】或者查看下方即可免费获得 MyBatis 方面 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: Mybaits框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${

JPA多源数据库配置(达梦数据库)

。_饼干妹妹 提交于 2020-11-02 13:01:53
JPA多源数据库配置(达梦数据库) 1.准备工作 2.创建JPA配置 3.创建实体类 4.创建Repository 5.注解+切面实现两个数据源事物统一 6.创建Service 7.创建Controller 本篇文章主要介绍SpringBoot框架实现Jpa多源数据库的配置,本次使用国产数据库达梦数据库做为数据源。 1.准备工作 在pom.xml文件中引入Spring Data Jpa依赖: < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - data - jpa < / artifactId > < / dependency > 在application.yml中添加数据库的相关配置: spring : datasource : one : driver - class - name : dm . jdbc . driver . DmDriver url : jdbc : dm : / / 127.0 .0 .1 : 5236 / TESTONE username : TESTONE password : 1234567890 type : com . alibaba . druid . pool .

一文快速入门分库分表(必修课)

巧了我就是萌 提交于 2020-11-02 07:37:37
我在网上陆陆续续的也看了一些有关于分库分表的文章,可发现网上同质化的资料有点多,而且知识点又都比较零碎,还没有详细的实战案例。 为了更深入的学习下,我在某些平台买了点付费课程,看了几节课发现有点经验的人看还可以,但对于新手入门来说,其实学习难度还是蛮大的。 为了让新手也能看得懂,有些知识点我可能会用更多的篇幅加以描述,希望大家不要嫌我啰嗦,等这分库分表系列文章完结后,我会把它做成 PDF 文档开源出去,能帮一个算一个吧!如果发现文中有哪些错误或不严谨之处,欢迎大家交流指正。 具体实践分库分表之前在啰嗦几句,回头复习下分库分表的基础概念。 什么是分库分表 其实 分库 和 分表 是两个概念,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起叫做分库分表。 分库分表是为了解决由于库、表数据量过大,而导致数据库性能持续下降的问题。按照一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果(响应速度快),以此提升整体数据库性能。 如何分库分表 分库分表的核心理念就是对数据进行切分( Sharding ),以及切分后如何对数据的快速定位与查询结果整合。而分库与分表都可以从: 垂直 (纵向)和 水平 (横向)两种纬度进行切分。 分库分表 下边我们就以订单相关的业务举例,看看如何做库、表的 垂直 和

程序猿:论学习方式的重要性

痞子三分冷 提交于 2020-11-02 06:46:23
大家都知道,做我们开发这行的,最核心的竞争力就是学习能力。技术一直在变化,框架一直在更新,学还是不学。 不学,你会落伍,学,太累了,根本学不过来。学习只要找对了方法,也没那么累。 最好的学习方式那就是兴趣驱使你去学习,但这种几乎很少,还有一种就是群体学习,就是大家一起学习,有问题一起讨论,这样的方式学起来会很轻松,这条路上的人多了,并不孤单。 知识星球是干嘛的? • 知识星球是我跟大家分享,交流技术的小圈子。 • 在这里可以交流技术,工作中遇到的问题。 • 我也会定期分享自己的心得和技术文章。 • 核心就是一起学习,讨论后端技术。主要是Java方向的哈! 有个圈子可以组队学习新技术,分享学习经验,面试经验,工作经验,理财经验等有益于成长的知识。这是我对知识星球的理解。 我希望加入星球的朋友们可以养成习惯,每日打卡,分享自己每天的学习成果,久而久之,学习将不再是一种负担,而是一种习惯。 后续计划 如果真的有更多的朋友愿意加入进来,后面我们可以一起学习,现在就已经开始了,第一个主题是阿里的Sentinel ,目前就我一个人在打卡,还没见到其他球友的打开记录,不过目前人也比较少。 还有就是我会通过各种激励的方式鼓励大家去学习,去分享,去总结,然后用奖品的方式来支持大家,比如赠书,发红包等方式,当然这个取决于后面星球的规模,规模大的话次数多点,规模小的话次数少点,但是肯定会做下去的

微服务海量日志怎么处理,推荐你试试这款工具....

我是研究僧i 提交于 2020-11-02 05:43:29
点击上方“ 方志朋 ”,选择“ 设为星标 ” 回复” 666 “获取新整理的面试文章 作者: CarpenterLee cnblogs.com/CarpenterLee/p/6637118.html 前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并行又是怎么做到的,线程个数是多少?本节我们学习Stream流水线的原理,这是Stream实现的关键所在。 首先回顾一下容器执行Lambda表达式的方式,以ArrayList.forEach()方法为例,具体代码如下: // ArrayList.forEach() public void forEach (Consumer<? super E> action) { ... for ( int i= 0 ; modCount == expectedModCount && i < size; i++) { action.accept(elementData[i]); // 回调方法 } ... } 我们看到ArrayList.forEach()方法的主要逻辑就是一个for循环,在该for循环里不断调用action.accept()回调方法完成对元素的遍历。这完全没有什么新奇之处

37、Springboot集成Flowable

*爱你&永不变心* 提交于 2020-11-01 20:34:58
阅读文本大概需要3分钟。 工作流是 OA 系统不可或缺的一部分,今天介绍一款新的工作流引擎 flowable 。 flowable 是著名 Java 工作流引擎 Activiti 的原作者从 Activiti 分支创建的新工作流引擎。 flowable 是一个业务流程管理 (BPM) 和工作流系统,适用于开发人员和系统管理员。其核心是超快速,稳定的 BPMN2 流程引;易于与 Spring 集成使用。 0x01: Flowable 设计器 Flowable Designer 安装 下载地址: https: // blog.flowable.org /2016/11/01/flowable-eclipse-designer-5-22-0-release/ 在线安装地址: http: //flowable.org/designer/update 离线安装包地址: http: / /www.flowable.org/designer /archived/flowable -designer- 5.22 . 0 .zip 0x02: 新建项目 sc-flowable ,对应的 pom.xml 文件如下 < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001

真是没想到,Springboot + Flowable 开发工作流会这么简单!

怎甘沉沦 提交于 2020-11-01 17:50:24
“ 程序员是块砖,哪里需要哪里搬。 ” 公司内部的OA系统最近要升级改造,由于人手不够就把我借调过去了,但说真的我还没做过这方面的功能,第一次接触工作流的开发,还是有点好奇是个怎样的流程。 项目主要用 Springboot + Flowable 重构原有的工作流程, Flowable 是个用 Java 语言写的轻量级工作流引擎,上手比较简单开发效率也挺高的,一起学习下这个框架。 官方地址: https://www.flowable.org/docs/userguide/index.html ,分享的只是简单应用,深入研究还得看官方文档。 Flowable 核心依赖 <!--flowable工作流依赖--> < dependency > < groupId > org.flowable </ groupId > < artifactId > flowable-spring-boot-starter </ artifactId > < version > 6.3.0 </ version > </ dependency > < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-jdbc </ artifactId > </