随笔分类 -  java

摘要:Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul 可以代替配置中心功能,但是 Config 依然适用于 Spring Cloud 项目,通过简单的配置即可实现功能。 配置文件是我们再熟悉不过的了,尤其是 Spring Boot 阅读全文
posted @ 2019-07-25 09:11 风的姿态 阅读(161717) 评论(16) 推荐(96) 编辑
摘要:Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置。不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置上的一点疏忽,导致整个项目莫名其妙的不可用,顿感生活无所依恋,简称生无可恋。 这要归功于组成了 Sp 阅读全文
posted @ 2019-05-30 09:10 风的姿态 阅读(6233) 评论(1) 推荐(7) 编辑
摘要:上一篇 "Eureka 实现微服务注册发现" 讲了用 Eureka 实现单体版的服务注册与发现。因为本篇是在上一篇的基础上的一点扩充,所以读此篇之前要保证看了上一篇。 Eureka 如果不加安全控制,会存在下列问题 : 1. Eureka 控制台可以看到各服务的状态和参数等信息,如果不加控制,只要知 阅读全文
posted @ 2019-04-01 10:35 风的姿态 阅读(2490) 评论(0) 推荐(0) 编辑
摘要:如果你对 Spring Cloud 体系还不是很了解,可以先读一下 "Spring Cloud 都有哪些模块" Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功能了,微服务部署之后,一定要有服务注册和发现的能力,Eureka 就是担任这个角色的。如果你用过 阅读全文
posted @ 2019-03-27 09:00 风的姿态 阅读(38221) 评论(4) 推荐(17) 编辑
摘要:说到 Spring Cloud,那肯定要少不了提一下微服务框架,所谓的微服务框架就是把负责的功能拆分成比较小、功能比较单一的服务独立处理,例如单点登录服务、支付服务、订单服务等,当然如果订单功能比较复杂还可以独立出更具体的服务。 我在之前的文章中 "我所理解的SOA和微服务" 也提到过微服务的几个主 阅读全文
posted @ 2019-03-21 08:37 风的姿态 阅读(4978) 评论(7) 推荐(21) 编辑
摘要:Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署。这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务。 其实将 Spring Boot 项目用 Docker 部署也不是什么多么神秘的技术,也要先生成镜像,再用镜像启动容器, 阅读全文
posted @ 2019-01-28 10:28 风的姿态 阅读(11317) 评论(0) 推荐(3) 编辑
摘要:作为一个程序员,把代码写好是本分,但仅仅是写好代码是不够的,工作的过程中总免不了要与别人打交道。几乎隔一段时间,我就会发现有些人身上出现下面的这两个问题。第一个就是不知道怎么提问,第二个就是有工作对接的时候,有用的信息不实时收集,多次对同样的问题进行提问。 今天来说一说如何提问的话题。说到这里,有点 阅读全文
posted @ 2018-07-31 10:05 风的姿态 阅读(10323) 评论(38) 推荐(34) 编辑
摘要:好久不发文章了,难道是因为忙,其实是因为懒。这是一篇关于线程池使用和基本原理的科普水文,如果你经常用到线程池,不知道你的用法标准不标准,是否有隐藏的 OOM 风险。不经常用线程池的同学,还有对几种线程的使用不甚了解的同学可以读一下此文。 为什么要使用线程池 虽然大家应该都已经很清楚了,但还是说一下。 阅读全文
posted @ 2018-07-12 08:14 风的姿态 阅读(12221) 评论(2) 推荐(19) 编辑
摘要:这种方式仅适合于比较小的项目,例如只有一两台服务器,而且配置文件是可以直接修改的。例如 Spring mvc 以 war 包的形式部署,可以直接修改resources 中的配置文件。如果是 Spring boot 项目,还想用这种方式的话,就要引用一个外部可以编辑的文件,比如一个固定的目录,因为 s 阅读全文
posted @ 2018-06-22 10:19 风的姿态 阅读(8245) 评论(0) 推荐(0) 编辑
摘要:本文基于 jdk 1.8 。 CountDownLatch 的使用 "前面的文章" 中说到了 volatile 以及用 volatile 来实现自旋锁,例如 java.util.concurrent.atomic 包下的工具类。但是 volatile 的使用场景毕竟有限,很多的情况下并不是适用,这个 阅读全文
posted @ 2018-06-08 08:17 风的姿态 阅读(12591) 评论(0) 推荐(8) 编辑
摘要:就算你没有用到过其他的设计模式,但是单例模式你肯定接触过,比如,Spring 中 bean 默认就是单例模式的,所有用到这个 bean 的实例其实都是同一个。 单例模式的使用场景 什么是单例模式呢,单例模式(Singleton)又叫单态模式,它出现目的是为了保证一个类在系统中只有一个实例,并提供一个 阅读全文
posted @ 2018-05-29 08:04 风的姿态 阅读(2224) 评论(1) 推荐(2) 编辑
摘要:上一篇文章说了 CAS 原理,其中说到了 Atomic 类,他们实现原子操作的机制就依靠了 volatile 的内存可见性特性。如果还不了解 CAS 和 Atomic ,建议看一下 "我们说的 CAS 自旋锁是什么" 并发的三个特性 首先说我们如果要使用 volatile 了,那肯定是在多线程并发的 阅读全文
posted @ 2018-05-22 08:16 风的姿态 阅读(2945) 评论(6) 推荐(4) 编辑
摘要:CAS(Compare and swap),即比较并交换,也是实现我们平时所说的自旋锁或乐观锁的核心操作。 它的实现很简单,就是用一个旧的预期的值和内存值进行比较,如果两个值相等,就用新的值替换内存值,并返回 true。否则,返回 false。 保证原子操作 任何技术的出现都是为了解决某些特定的问题 阅读全文
posted @ 2018-05-10 10:02 风的姿态 阅读(39946) 评论(5) 推荐(43) 编辑
摘要:所有的 Java 开发者应该是没有没用过 Maven 的吧。Maven 作为 Java 项目管理工具,它不仅可以用作包管理,还有许多的插件,可以支持整个项目的开发、打包、测试、部署等一系列行为。而包管理又是其核心功能,这篇文章简单介绍一下使用 Maven 私服管理依赖包。 当我们再 pom 文件中依 阅读全文
posted @ 2018-04-13 10:43 风的姿态 阅读(20333) 评论(1) 推荐(8) 编辑
摘要:ThreadLocal 不知道大家有没有用过,但至少听说过,今天主要记录一下 ThreadLocal 的原理和使用场景。 使用场景 直接定位到 ThreadLocal 的源码,可以看到源码注释中有很清楚的解释:它是线程的局部变量,这些变量只能在这个线程内被读写,在其他线程内是无法访问的。 Threa 阅读全文
posted @ 2018-04-02 09:51 风的姿态 阅读(23818) 评论(2) 推荐(14) 编辑
摘要:登录认证几乎是任何一个系统的标配,web 系统、APP、PC 客户端等,好多都需要注册、登录、授权认证。 场景说明 以一个电商系统,假设淘宝为例,如果我们想要下单,首先需要注册一个账号。拥有了账号之后,我们需要输入用户名(比如手机号或邮箱)、密码完成登录过程。之后如果你在一段时间内再次进入系统,是不 阅读全文
posted @ 2018-02-05 10:16 风的姿态 阅读(29882) 评论(2) 推荐(27) 编辑
摘要:MyBatis 是一个 Java 的 ORM 框架,ORM 的出现就是为了简化开发。最初的开发方式是业务逻辑和数据库查询逻辑是分开的,或者在程序中编写 sql 语句,或者调用 sql 存储过程。这样导致思维需要在语言逻辑和 sql 逻辑之间切换,导致开发效率低下。所以出现了一系列的 ORM 框架,O 阅读全文
posted @ 2018-01-16 14:39 风的姿态 阅读(1917) 评论(0) 推荐(1) 编辑
摘要:跨平台很神秘吗 刚刚开始做开发的时候,感觉跨平台是那么高大上,就像夕阳下,湖面上的一朵白莲花,只可远观,不可亵玩焉。那么,跨平台到底是怎么一回事儿。难道真的有什么东西可以跨平台吗,这就像一台多功能交通设备,投到水里能游,放到陆地上能跑,扔到天上能飞,加速到第二宇宙速度都能脱离地球了进行星际航行了。 阅读全文
posted @ 2017-11-01 15:28 风的姿态 阅读(1254) 评论(2) 推荐(2) 编辑
摘要:BTrace 是什么 BTrace 是检查和解决线上的问题的杀器,BTrace 可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务。写好脚本,直接用命令执行即可,不用动原程序的代码。 原理 总体来说,BTrace 是基于动态字节码修改技术(Hotsw 阅读全文
posted @ 2017-08-23 10:37 风的姿态 阅读(12224) 评论(3) 推荐(3) 编辑
摘要:Spring mvc 提供了扩展 xml 的机制,用来编写自定义的 xml bean ,例如 dubbo 框架,就利用这个机制实现了好多的 dubbo bean,比如 <dubbo:application> 、<dubbo:registry> 等等,只要安装这个标准的扩展方式实现配置即可。 扩展自定 阅读全文
posted @ 2017-08-10 11:37 风的姿态 阅读(3909) 评论(0) 推荐(2) 编辑