- 博客(22)
- 问答 (1)
- 收藏
- 关注
原创 spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求
spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求有半年多没有更新了,按照常规剧本,应该会说项目很忙,工作很忙,没空更新,吧啦吧啦,相关的话吧,但是细想想,是真的么?,忙到这几个字都没时间打么?毕竟大家都很忙的,所以忙并不是啥理由.那是因为啥呢?感觉就只有一个理由能站得住脚了,就是因为”懒”. 哈哈….尬聊了一段,活跃下气氛,下面进入正题...
2018-04-16 14:26:07
419
1
原创 jvm - 垃圾回收
jvm - 垃圾回收注意 : 本系列文章为学习系列,部分内容会取自相关书籍或者网络资源,在文章中间和末尾处会有标注垃圾回收的意义它使得java程序员不再时时刻刻的关注内存管理方面的工作.垃圾回收机制会自动的管理jvm内存空间,将那些已经不会被使用到了的”垃圾对象”清理掉”,释放出更多的空间给其他对象使用.何为对象的引用?Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的
2017-11-01 09:50:53
268
原创 jvm - 运行时内存结构
jvm - 运行时内存结构注意 : 本系列文章为学习系列,部分内容会取自相关书籍或者网络资源,在文章末尾处会有标注内存模型示意图每个区域的作用简述pc寄存器 (program counter)每一条java虚拟机线程都有自己的pc寄存器在任意时刻,一条java虚拟机线程只会执行一个方法的代码,正在被线程执行的方法称为该线程的当前方法(如果这个方法不是native的,那pc寄存器就保存java虚拟机正
2017-10-23 08:23:17
277
原创 spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起讨论以下其中的异常场景,如题.场景在实际工作中,大家可能也都遇到过这样的需求 : 如 : 系统A中的某些重要的数据,想在每次数据变更的时候,将当前最新的数据备份下来,当然,这个备份的动作不能影响当前数据变
2017-10-18 08:28:01
1578
原创 spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多.然而要顺利的安装好这些中间件也是一个比较费时费力的工作.俗话说”工欲善其事,必先利其器”,这篇文章,就跟大家一起分享一下使用docker在本地环境或者测试环境快速搭建我们常用的一些中间件容器的方法,
2017-09-26 08:53:25
447
原创 spring boot / cloud (十七) 快速搭建注册中心和配置中心
spring boot / cloud (十七) 快速搭建注册中心和配置中心本文将使用spring cloud的eureka和config server来搭建.然后搭建的模式,有很多种,本文主要聊的是将注册中心和配置中心整合成一个服务的方式.对于其他方式,如果有同学感兴趣,还请自行百度,谢谢.为什么将注册中心和配置中心整合在一起?其实整合在一起和分开,在使用层面上并没有太大的区别,主要就是节省资源,
2017-09-19 09:02:40
502
原创 spring boot / cloud (十六) 分布式ID生成服务
spring boot / cloud (十六) 分布式ID生成服务在几乎所有的分布式系统或者采用了分库/分表设计的系统中,几乎都会需要生成数据的唯一标识ID的需求,常规做法,是使用数据库中的自动增长列来做系统主键,但是这样的做法无法保证ID全局唯一.那么一个分布式ID生成器应该满足那些需求呢 :全局唯一性趋势递增能够融入分库基因本文将基于snowflake的算法来进行以下的讨论,当然,分布
2017-09-09 13:54:56
3473
原创 spring boot / cloud (十五) 分布式调度中心进阶
spring boot / cloud (十五) 分布式调度中心进阶在分布式调度-逻辑架构示意架构设计总体思路是,将调度和执行两个概念分离开来,形成调度中心和执行节点两个模块:调度中心是一个公共的平台,负责所有任务的调度,以及任务的管理,不涉及任何业务逻辑,从上图可以看到,它主要包括如下模块:核心调度器quartz : 调度中心的核心,按照jobDetail和trigger的设定发起作业调度,并且
2017-08-30 09:03:07
1167
原创 spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法
spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法前言本篇接着场景分析防止越权行为在系统中添加权限相关的控制,主要是为了增加系统的安全性,总结下来主要是为了防止如下的两种越权行为:横向越权 (指的是攻击者尝试访问与他拥有相同权限的用户的资源)纵向越权 (指的是一个低级别攻击者尝试访问高级别用户的资源)所以说
2017-08-28 09:38:56
2554
原创 spring boot / cloud (十三) 404错误处理进阶
spring boot / cloud (十三) 404错误处理进阶前言在上一篇文章中介绍了spring boot 官方文档推荐的异常处理方式.承接上一篇文章,我们来了一下如何更好的处理404错误.在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇文章的最后跟大家提到了如下的配置spring.mvc.throw-exception-if-no-handler-foun
2017-08-25 10:36:12
1750
原创 spring boot / cloud (十二) 异常统一处理进阶
spring boot / cloud (十二) 异常统一处理进阶前言在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇博客中已经提到了使用@ExceptionHandler来处理各种类型的异常,这种方式也是互联网上广泛的方式今天这篇博客,将介绍一种spring boot官方文档上的统一处理异常的方式.大家可以在spring boot 官方文档查看介绍在开始介绍新的方
2017-08-23 13:29:40
422
原创 spring boot / cloud (十一) 回归-博客配套项目开源
spring boot / cloud (十一) 回归-博客配套项目开源前言没有更新博客接近两个月了,主要是因为这期间各种杂事很多,又换了工作,等等不过没关系,这些事情都过去了,后续又会经常更新博客跟大家分享和讨论技术问题了.记得在前面的博客回复中有同学问到的是否有配套开源代码,在今天也为大家带来了.欢迎大家提出意见跟建议 . PS:开源项目和博客文章内容都属于个人工作经验和学习经验的总结,本人
2017-08-21 13:38:45
554
原创 spring boot / cloud (十) 使用quartz搭建调度中心
spring boot / cloud (十) 使用quartz搭建调度中心前言quartz介绍: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz
2017-06-19 10:31:41
4085
原创 spring boot / cloud (九) 使用rabbitmq消息中间件
spring boot / cloud (九) 使用rabbitmq消息中间件前言rabbitmq介绍: RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。amqp介绍: 即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议
2017-06-14 14:41:38
997
原创 spring boot / cloud (八) 使用RestTemplate来构建远程调用服务
spring boot / cloud (八) 使用RestTemplate来构建远程调用服务前言上周因家里突发急事,请假一周,故博客没有正常更新RestTemplate介绍: RestTemplate是spring框架中自带的rest客户端工具类,具有丰富的API,并且在spring cloud中,标记@LoadBalanced注解,可以实现客户端负载均衡的rest调用.思路RestTemp
2017-06-13 10:41:20
3279
原创 spring boot / cloud (七) 使用@Retryable来进行重处理
spring boot / cloud (七) 使用@Retryable来进行重处理前言什么时候需要重处理? 在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然
2017-06-02 09:22:19
3647
原创 spring boot / cloud (六) 开启CORS跨域访问
spring boot / cloud (六) 开启CORS跨域访问前言什么是CORS? Cross-origin resource sharing(跨域资源共享),是一个W3C标准,它允许你向一个不同源的服务器发出XMLHttpRequest请求,从而克服了ajax只能请求同源服务的限制.并且也可以通过灵活的设置,来指定什么样的请求是可以被授权的.什么是跨域?假设你在http://xxx.c
2017-06-01 11:05:23
8704
原创 spring boot / cloud (五) 自签SSL证书以及HTTPS
spring boot / cloud (五) 自签SSL证书以及HTTPS前言什么是HTTPS? HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI sche
2017-05-31 09:17:23
2396
原创 spring boot / cloud (四) 自定义线程池以及异步处理@Async
spring boot / cloud (四) 自定义线程池以及异步处理@Async前言什么是线程池? 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所
2017-05-27 10:12:34
5976
原创 spring boot / cloud (三) 集成springfox-swagger2构建在线API文档
spring boot / cloud (三) 集成springfox-swagger2构建在线API文档前言不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与周边系统对接联调的效率.但前提条件是,服务和API文档必须是同步更新的,如果不能保证同步,那接口文档就会流于形式,不仅不能起到应有的作用,甚至某些情况下,甚至会误导对接的系统,导致更低效率的沟通.思路
2017-05-26 11:20:08
1030
原创 spring boot / cloud (二) 规范响应格式以及统一异常处理
spring boot / cloud (二) 规范响应格式以及统一异常处理前言为什么规范响应格式? 我认为,采用预先约定好的数据格式,将返回数据(无论是正常的还是异常的)规范起来,有助于提高团队间接口对接的效率(前端和后端,后端和后端等).思路自定义统一的ResposeBody类 : 用于统一响应格式自定义统一的Error类 : 用于统一异常格式自定义异常 : 区分不同场景的异常实现
2017-05-25 15:00:26
855
原创 spring boot / cloud (一) 使用filter防止XSS
spring boot / cloud (一) 使用filter防止XSS前言XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达
2017-05-24 15:14:48
1362
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人