Spring Boot

距离Java开发者玩转 Serverless,到底还有多远?

社会主义新天地 提交于 2020-12-23 18:21:54
导读 :本文摘自 Spring Cloud Alibaba 开源项目创始团队成员方剑撰写的《深入理解 Spring Cloud 与实战》一书,主要讲述了 Java 微服务框架 Spring Boot/Cloud 这个事实标准下如何应对 FaaS 场景。 Serverless & FaaS 2019 年,O'Reilly 对 1500 名 IT 专业人员的调查中,有 40% 的受访者在采用 Serverless 架构的组织中工作。2020 年 DataDog 调查显示,现在有超过 50% 的 AWS 用户正在使用 Serverless 架构的 AWS Lambda。 Serverless 正在成为主流,于是就诞生了下面这幅图,从单体应用的管理到微服务应用的管理再到函数的管理。 Serverless 到目前为止还没有一个精准定义。Martin Fowler 在个人博客上有一篇《Serverless Architectures》文章,其对 Serverless 的的定义分成了 BaaS 或 FaaS。 Baas 是全称是 Backend-as-a-Service,后端即服务,FaaS 的全称是 Function-as-a-Service,函数即服务。 今天我们来聊聊 FaaS。这是维基百科对 FaaS 的定义: 函数即服务(FaaS)是一类云计算服务,它提供了一个平台,使客户可以开发

Springboot整合Websocket实现一对一消息推送和广播消息推送

☆樱花仙子☆ 提交于 2020-12-23 15:12:27
只是yi知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑: 业余草 来源: segmentfault.com/a/1190000011908831 推荐: https://www.xttblog.com/?p=5028 B 站: 业余草 springboot基础环境 具体请参考 Springboot 官方文档。 maven依赖 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-websocket </ artifactId > </ dependency > 代码准备 准备常量类 //webSocket相关配置 //链接地址 public static String WEBSOCKETPATHPERFIX = "/ws-push" ; public static String WEBSOCKETPATH = "/endpointWisely" ; //消息代理路径 public static String WEBSOCKETBROADCASTPATH = "/topic" ; //前端发送给服务端请求地址 public static final String

Springboot整合websocket实现一对一消息推送和广播消息推送

戏子无情 提交于 2020-12-23 11:33:36
springboot基础环境 请参考springboot文档 maven依赖 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-websocket </ artifactId > </ dependency > 代码准备 准备常量类 //webSocket相关配置 //链接地址 public static String WEBSOCKETPATHPERFIX = "/ws-push" ; public static String WEBSOCKETPATH = "/endpointWisely" ; //消息代理路径 public static String WEBSOCKETBROADCASTPATH = "/topic" ; //前端发送给服务端请求地址 public static final String FORETOSERVERPATH = "/welcome" ; //服务端生产地址,客户端订阅此地址以接收服务端生产的消息 public static final String PRODUCERPATH = "/topic/getResponse" ; //点对点消息推送地址前缀 public static final

spring boot logback无感配置

 ̄綄美尐妖づ 提交于 2020-12-23 04:14:20
spring boot1.5.x版本的日志配置一直有一个问题,就是不能直接通过yml配置文件进行日志文件大小进行动态和方便的配置。 怎么解决?直接在springboot项目的maven工程中的src/main/resources的目录下加入如下logback-spring.xml文件,logback-spring命名的logback配置文件在spring boot中加载的优先级是最高的,所以项目一起动就可以加载生效。 其中我在配置文件中添加了控制大小的变量。具体配置文件内容如下: <? xml version="1.0" encoding="UTF-8" ?> < configuration debug ="false" scan ="true" scanPeriod ="60 seconds" > < include resource ="org/springframework/boot/logging/logback/defaults.xml" /> < include resource ="org/springframework/boot/logging/logback/console-appender.xml" /> < contextName > logback </ contextName > < springProperty scope ="logback" name

【SpringBoot】线程池

不羁岁月 提交于 2020-12-22 23:49:52
简介 SpringBoot线程池配置心得。 1、核心配置参数 task: pool: corePoolSize: 4 maxPoolSize: 20 keepAliveSeconds: 300 #queueCapacity: 8 1、 queueCapacity 队列长度,参考源码可以发现,当我们限制队列长度的时候,很有可能会由于任务的疯狂提交导致后面的任务被全部拒绝处理。因此,如果单个任务耗费时间比较长,那么推荐不要去限制queueCapacity的长度,而让其保持默认值 private int corePoolSize = 1; private int maxPoolSize = 2147483647; private int keepAliveSeconds = 60; private int queueCapacity = 2147483647; //该默认值 private boolean allowCoreThreadTimeOut = false; 以上是相关配置的默认值。这样,可以一口气加载我们提交的任务的上下文信息。 2、 maxPoolSize 和 corePoolSize :可以理解为闲时的线程池维护的核心线程数量corePoolSize,当然,设置一些其他参数例如闲时时间参数时另算。再有maxPoolSize是当当前线程超过核心线程的时候

springboot ThreadPoolTaskScheduler线程池大小设置实验

妖精的绣舞 提交于 2020-12-22 19:56:01
@Configuration("asynTimerTaskController") @Scope(value ="prototype") //为什么用了prototype之后,@autowired的threadPoolTaskScheduler就不能创建了???? public class AsynTimerTaskController { // @Autowired // @Resource private ThreadPoolTaskScheduler threadPoolTaskScheduler; // @PostConstruct // public void initpool() // { // threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); // } @Bean(name = "threadPoolTaskScheduler") //(initMethod = "initpool") // @Scope(scopeName = "prototype") public ThreadPoolTaskScheduler threadPoolTaskScheduler() { threadPoolTaskScheduler = new ThreadPoolTaskScheduler();

这个 bug 让我更加理解 Spring 单例了

烂漫一生 提交于 2020-12-22 19:52:17
我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 谁还没在 Spring 里栽过跟头呢,从哪儿跌倒,就从哪儿睡一会儿,然后再爬起来。 讲点儿武德 这是由一个真实的 bug 引起的,bug 产生的原因就是忽略了 Spring Bean 的单例模式。来,先看一段简单的代码。 public class TestService { private String callback = "https://ip.com/token={token}"; public String getCallback() { Random random = new Random(); int number = random.nextInt(100); System.out.println("本次随机数为:" + number); callback = callback.replace("{token}", String.valueOf(number)); return callback; } public static void main(String[] args) { TestService testService = new TestService(

SpringBoot2 整合OAuth2组件,模拟第三方授权访问

不想你离开。 提交于 2020-12-22 10:02:38
本文源码: GitHub·点这里 || GitEE·点这里 一、模式描述 授权服务 验证第三方服务的身份,验证邮箱用户的身份,记录和管理认证Token,为资源服务器提供Token校验。场景:第三方网站借助用户的邮箱登录,并访问邮箱账户的基础信息,头像、名称等。 资源服务 第三方服务通过邮箱账户登录后需要获取的一些信息,即理解为资源,存储邮箱账户的数据资源。 第三方服务 即借助邮箱用户的账户,快速登录第三个服务,免去繁杂的注册流程,有助于快速积累新用户。 交互流程 第三方服务给用户开放快速邮箱登录功能,引导用户调到邮箱认证服务,通过认证后返回身份令牌到第三方服务,第三方服务携带令牌访问邮箱的资源服务,获取一些基本的邮箱用户信息。 二、项目配置管理 1、案例结构 核心依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> <version>2.1.3.RELEASE<

springboot 发送邮件

放肆的年华 提交于 2020-12-22 06:48:16
一、使用场景 发送邮件 二、参考文献 2.1 https://blog.csdn.net/u011244202/article/details/54809696 说明:本文复制的2.1 ,用作备份,已实践过,但是springboot2.0.1.RELEASE并未遇到2.1描述的535错误 三、测试环境 jdk8、springboot2.0.1.RELEASE 四、使用 4.1 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 4.2 配置文件(application.properties) # JavaMailSender 邮件发送的配置 spring.mail.host=smtp.163.com spring.mail.username=用户163邮箱 spring.mail.password=邮箱密码 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls

Spring Cloud Sleuth 链路追踪

谁说胖子不能爱 提交于 2020-12-22 06:45:57
学习在 Spring Cloud 中使用 Sleuth 实现链路追踪,包括基本使用、异步任务、定时任务等功能,并结合 Zipkin 展示收集到的信息。 1 概述 在大规模的分布式系统中,一个完整的系统是由很多种不同的服务来共同支撑的。不同的系统可能分布在上千台服务器上,横跨多个数据中心。一旦系统出问题,此时问题的定位就比较麻烦。在微服务环境下,一次客户端请求,可能会引起数十次、上百次服务端服务之间的调用。一旦请求出问题了,我们需要考虑很多东西: 如何快速定位问题? 如果快速确定此次客户端调用,都涉及到哪些服务? 到底是哪一个服务出问题了? 要解决这些问题,就涉及到 分布式链路追踪 。分布式链路追踪系统主要用来跟踪服务调用记录的,一般来说,一个分布式链路追踪系统,有三个部 分功能: 数据收集。 数据存储。 数据展示。 Spring Cloud Sleuth 是 Spring Cloud 提供的一套分布式链路追踪系统,有 3 个核心概念: Trace :从请求到达系统开始,到给请求做出响应,这样一个过程成为 Trace 。 Span :每次调用服务时,埋入的一个调用记录,成为 Span 。 Annotation :相当于 Span 的语法,描述 Span 所处的状态。 2 基本使用 创建 Spring Boot 项目 sleuth ,添加 Web/Sleuth 依赖,如下: