0

activiti7与springboot2整合

接下来时间我会写一系列Activiti7的文章,包括Activiti7实战,Activiti7源码分析,Activiti7中遇到的坑等。那么首先我们先跑起来,将Activiti7与Springboot2整合。Activiti7相比Activiti6一个显著的变化就是引入了SpringSecurity来负责鉴权工作,通俗点说就是接入的用户或者系统有没有相应的接口访问权限。1. 引入依赖<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" ...

阅读全文>>

0

3千字Apollo配置中心的总结,让配置“智能”起来

思维导图文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary一、概述Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。目前Apollo在github有22.6k颗星,在官网登记的使用的公司有451家,算是很流行的配置中心的框架技术。所以接下来跟着我一起学习Apollo配置中心吧。二、为什么使用配置中心首先,没有配置中心之前传统的配置都是写在配置文件中,比如各种yml、perproties、xml文...

阅读全文>>

0

轻量级的分布式日志追踪利器,十分钟可接入,从此日志追踪无难事

前言随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排队查日志的时候。因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。这时候很多童鞋会开始考虑上SkyWalking,Pinpoint等分布式追踪系统来解决,基于OpenTracing规范,而且通常都是无侵入性的,并且有相对友好的管理界面来进行链路Span的查询。但是搭建分布式追踪系统,熟悉以及推广到全公司的系统需要一定的时间周期,而且当中涉及到链路span节点的存储成本问题,全量采集还是部分采集?如果全量采集,就以SkyWalking的存储来举例,ES集群搭建至少需要5个节点。这就需要...

阅读全文>>

0

JDK15正式发布,划时代的ZGC同时宣布转正

✍前言2020年9月15日,JDK15正式发布,可谓如约而至。按照Java SE的发展路线图,JDK14自此停止更新。值得注意的是JDK15并非「LTS」版本,Oracle官方对Java SE的支持路线图如下:JDK8的扩展支持时间超过了JDK11,Oracle你是认真的吗?开个玩笑~那么自Java11之后,哪个版本才是LTS版本呢?Oracle官方并没给出具体参考路线图,但可参考OpenJDK的这张:可以看到「JDK17」将是下一个LTS版本,预计发版日期是2021年9月份。当然喽这只是OpenJDK的发版线路图,并不代表Oracle官方,因此仅供参考,不过一般八九不离十。❝小贴士:Open...

阅读全文>>

0

Mybatis中不建议使用动态sql

Mybatis是一个优秀的Java持久层框架,它通过xml的方式来管理要执行的sql语句,屏蔽了jdbc底层细节,让开发人员可以方便的操作数据库。动态SQL说到动态SQL,绝对是Mybatis引以为豪的东西,因为它可以使配置文件简洁,就像下面这个配置,我可以使用selectEntryByWhere来适配所有的查询语句,是不是感觉很爽。<select id="selectEntryByWhere" parameterType="Order" resultType="Order"> SELECT <include refid="Base_Column"/> FROM ord...

阅读全文>>

0

用PHP编写支持高并发的网站,需要做什么处理?

PHP语言开发高并发的网站,需要加缓存,复杂逻辑走消息队列异步处理,mysql查询必须走索引,还搞不定就加机器分流,mysql配置升高并且一主多从,使用codis集群,增加消息队列的消费者,如果还搞不定就随机拒绝请求,当然这是最后的退路。缓存缓存是避免业务查询过多的请求mysql,导致业务不可用,根据场景来判断是否需要使用codis集群,如果并发量没有达到某个级别,16G的redis也可以,但是要避免redis在高并发下容易发生的缓存穿透,尽量做成高可用,并保证缓存实现的命中率。消息队列这也是高并发情境下的杀手锏,削峰填谷,将耗时的业务逻辑直接以队列的形式异步慢慢处理,防止请求过度积压,导致的...

阅读全文>>

0

一个基于 Spring Boot 的在线考试系统

今天推荐一款超级美观的在线考试系统,感兴趣可以先去预览地址看看该项目。在线 Demo预览,http://129.211.88.191 ,账户分别是admin、teacher、student,密码是admin123GitHub地址:github.com/19920625lsg/spring-boot-online-exam功能简介支持单选题、多选题、判断题支持学生(student)、教师(teacher)、管理员(admin)三种角色学生:参加考试和查看我的考试教师:学生的所有权限+创建/编辑题目+创建/编辑考试管理员:教师的所有权限+管理用户软件架构前后端分离,前段组件化,方便二次开发;后端后...

阅读全文>>

0

SpringBoot:基于JWT的token校验、单点登录等

前言用户鉴权一直是我先前的一个问题,以前我用户接口鉴权是通过传入参数进行鉴权,只要是验证用户的地方就写token验证,虽然后面也把token验证方法提取到基类中,但是整体来说仍然不是太雅观,当时的接口如下所示. @RequestMapping(value = "like",method = RequestMethod.POST) public ResultMap userLikeOrDisLikeAction(@RequestParam(value = "shopId") String shopId, ...

阅读全文>>

0

教你利用 PHP 实现微服务

随着互联网浏览越来越大. 传统的 MVC 单一架构随着应用规模的不断扩大,应用模块不断增加,整个应用也显得越来越臃肿,维护起来也更加困难.我们必须采取措施,按应用拆分,就是把原来的应用按照业务特点拆分成多个应用。比如一个大型电商系统可能包含用户系统、商品系统、订单系统、评价系统等等,我们可以把他们独立出来形成一个个单独的应用。多应用架构的特点是应用之间各自独立 ,不相互调用。多应用虽然解决了应用臃肿问题,但应用之间相互独立,有些共同的业务或代码无法复用。单一应用的解决方案对于一个大型的互联网系统,一般会包含多个应用,而且应用之间往往还存在共同的业务,并且应用之间还存在调用关系。除此之外 ,对于...

阅读全文>>

0

记一次token安全认证的实践

背景介绍:因项目需求,有PC端 APP端和小程序端,但登陆接口是同一个,然而微服务也无法使用传统的session解决用户登录问题(注意这里是传统的session不是spring session),使用户信息在其他服务共享。如此一来就想到了token安全认证,而JWT生成token可以包含用户信息,也就果断选择了JWT作为SpringCloud gateway网关的token校验工具,这样,我们便可以直接解析token获取用户信息了。具体实现思路:让JWT在其他所有服务可以共同使用,父工程需要引入JWT jar。避免在其他服务重复引入。如何使用JWT生成token。如何解析token。如何让网关...

阅读全文>>