随笔分类 - java
有关java方向的内容
摘要:一、该不该使用微服务架构 根据业务发展的时间来区分 1. 业务发展早期 建议使用单体架构,开发方便,速度快,迭代更新及时。 优点如下:部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可。技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。用人成本低: 单个程序员可以完
阅读全文
摘要:不必太纠结于当下,也不必太忧虑未来,人生没有无用的经历,当你经历过一些事情后,眼前的风景已经和从前不一样了。 --村上春树 一、包含如下内容 ActiveMQ消息中间件面试专题 BAT80道面试题 BAT面试的Mysql面试55题 Dubbo面试专题 JVM面试专题 Kafka面试专题 Linux面
阅读全文
摘要:作为一名java开发者,相信你或多或少的接触过单元测试,对于测试来讲它是一门能够区分专业开发人员与业余开发人员的重要学科,这篇文章将对java中最常见的一个单元测试框架junit进行一个梳理和讲解。 为什么需要单元测试 在平时的开发当中,一个项目往往包含了大量的方法,可能有成千上万个。如何去保证这些
阅读全文
摘要:一、什么是AOP编程 AOP: Aspect Oriented Programming 面向切面编程。 面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的
阅读全文
摘要:介绍 Spring Boot的starter主要用来简化依赖用的,对于企业级开发中的与第三方的集成,可以通过一段简单的配置来完成,这样开发人员无需再对包依赖的问题头疼。Spring Boot为我们提供了简化企业级开发的绝大多数场景的starter pom,只需要指定需要配置的starter,Spri
阅读全文
摘要:介绍 使用Spring Bboot是快乐并且简单的,不需要繁琐的配置就能够完成一套非常强大的应用。 spring boot 2.3.1 Spring Boot 2.3.1 发布于:2020/06/12,现在已经提交到 Spring 仓库和 Maven 中央仓库了。 这个版本包括 127 个 bug
阅读全文
摘要:对于Spring,相信大家都非常熟悉,从出现开始,一直是企业级开发的主流。但是随着软件的发展和应用开发的不断演化,它的一些缺点也逐渐胡暴露了出来,下面,我们就一起看一下Spring的发展历程并且认识一下Spring Boot。 由来 在Spring 1.x的时候,所有的配置都通过XML,随着项目的扩
阅读全文
摘要:前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端。 由于前后端分离这个概念相对来说刚出现不久,很多人都是只闻其声,不见其形,所以可能会对它产生一些误解,误
阅读全文
摘要:服务拆分 拆分粒度不应该过分追求细粒度,要考虑适中不能过大或过小。按照单一职责原则和康威定律,在业务域、团队还有技术上平衡粒度。拆分后的代码应该是易控制,易维护的,业务职责也是明确单一的。 AKF扩展立方体,是一个叫AKF的公司的技术专家抽象总结的应用扩展的三个维度。理论上按照这三个扩展模式,可以将
阅读全文
摘要:单一职责 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则 单一职责原则是最简单的面向
阅读全文
摘要:一、接口调用 接口调用如果是远程调用,那么就构成了简单的分布式。最简单的远程接口实现方式是web service或rest。当然一个合理的分布式应用不仅仅是远程接口调用这么简单。还需要有负载均衡、缓存等功能。最简单实现分布式的技术是Rest接口,因为Rest接口可以使用现存的各种服务器,比如负载均衡
阅读全文
摘要:领域驱动设计DDD(Domain Driven Design)提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分。也就是说从代码的结构中我们可以直接理解业务的设计,命名得当的话,非程序人员也可以“读”代码。这与微服务设计中的约定优于配置不谋而合,如果你熟悉英文,那么直接根据包名
阅读全文
摘要:一、如何实施微服务 微服务是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。实施微服务需要具备以下条件: 计算和存储资源能否快速的分配 是否具备快速部署的能力,因为微服务每个服务都比较微小,所以不管是测试环境还是生产环境都需要快速部署的能力 基本的监控,包括CPU、内存
阅读全文
摘要:一、聚合器微服务设计模式 这是一种最常见也最简单的设计模式,效果如下图所示。聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的Web页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务,这符合DRY原则。另外,每个服务
阅读全文
摘要:一起玩转微服务(1)——概念 一起玩转微服务(2)——框架与工具 一起玩转微服务(3)——微服务架构设计模式 一起玩转微服务(4)——如何实施微服务 一起玩转微服务(5)——分层架构 一起玩转微服务(6)——通信协议如何统一 一起玩转微服务(7)——单一职责 一起玩转微服务(8)——服务拆分原则 一
阅读全文
摘要:一、什么是微服务 随着各行各业公司的快速发展,业务规模的不断扩大,不可避免的造成原有架构不能够适应快速的增长和变化。这时,微服务就进入大家的视野,其实在微服务之前,很多的公司已经做过服务化的改造,并且取得了一定的成果,但是对于整体流程的标准化还有一定有差距。那么,什么是微服务呢?准确的说,微服务是一
阅读全文
摘要:一、什么是devops 在DevOps之前,从业人员使用瀑布模型或敏捷开发模型进行软件项目开发:瀑布模型或顺序模型是软件开发生命周期(SDLC)中的一种开创性方法,在这个模型中,软件开发成为一个线性过程,不同的阶段和任务被依次定位;而敏捷开发涉及各种方法的使用和SDLC中多个团队的协作。瀑布模型的线
阅读全文
摘要:根据 Java 虚拟机规范,类文件由单个 ClassFile 结构组成: ClassFile { u4 magic; //Class 文件的标志 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u2 constant_poo
阅读全文
摘要:在 java 中守护线程和本地线程区别 java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemo
阅读全文