首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏开发框架-Spring Boot

    Spring Boot 核心运行原理介绍

    从本篇开始,笔者将带领大家通过学习 Spring Boot 源码,来了解它核心运行原理。后续的内容将会涉及自动配置的运作原理核心功能模块、核心注解等等。整体介绍1. 核心运行原理图在我们的项目中,接入 Spring Boot 其实是最简单的。 我们先从整体上来看一下 Spring Boot 实现上述自动配置机制的核心运行原理图:上图描述了 Spring Boot 自动配置功能运作过程中涉及的几个核心功能及其相互之间的关系,其中的内容将在第3小节介绍 2. 总结本篇我们从概念层面介绍了 Spring Boot 自动配置的核心运行原理和整理流程,后续的博文将围绕这些核心部分,从源码层面进行详细介绍,敬请期待!!!

    58941编辑于 2024-04-30
  • 来自专栏原创干货

    【SpringCloud原理】Ribbon核心组件以及运行原理源码剖析

    2、ServerList public interface ServerList<T extends Server> { public List<T> getInitialListOfServers 所以这个类的核心作用就是每隔30s会调用一次传入的updateAction的doUpdate方法的实现,记住这个结论。 虽然对外主要提供获取服务的功能,但是在实现的时候,主要是用来协调上面提到的各个核心组件的,使得他们能够协调工作,从而实现对外提供获取服务实例的功能。 CommonClientConfigKey.NFLoadBalancerMaxTotalPingTime, Integer.parseInt("2" 到这里其实Ribbon核心组件和执行原理我就已经说的差不多了,再来画一张图总结一下 二、SpringCloud中使用的核心组件的实现都有哪些 说完了Ribbon的一些核心组件和执行原理之后,我们再来看一下在

    70210编辑于 2022-07-27
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    Maven 核心原理解析(2

    modules> </project> 通过在一个打包方式为pom的Maven项目中声明任意数量的module以实现模块聚合: packaging: pom, 否则无法聚合构建. modules: 实现聚合的核心 pluginManagement: 与dependencyManagement类似, 配置的插件不会造成实际插件的调用行为, 只有当子POM中配置了相关plugin元素, 才会影响实际的插件行为. 2.

    1.3K70发布于 2018-03-16
  • 来自专栏加米谷大数据

    Spark核心技术原理透视二(Spark运行模式)

    上一章节详细讲了Spark的运行原理,没有关注的童鞋可以关注加米谷大数据查看上一章节的详细内容。通过Spark运行原理的讲解大家了解了Spark在底层的运行,那Spark的运行模式又是什么样的呢? 1、Spark运行模式主要分为以下几种,如图所示。 2、Spark on Standalone 模式 Standalone模式如下图所示。 3、Standalone运行过程 1)SparkContext连接到Master,向Master注册并申请资源(CPU Core and Memory); 2) uMaster根据SparkContext 同时在SparkContent初始化中将创建DAGScheduler和TASKScheduler; 2)Yarn-Client 第二步:ResourceManager收到请求后,在集群中选择一个NodeManager ; 2)Yarn-Cluster 第二步:ResourceManager收到请求后,在集群中选择一个NodeManager,为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的

    1.6K70发布于 2018-03-27
  • 来自专栏JAVA并发编程

    JAVA并发编程系列(2)volatile核心原理

    上文说到synchronized,JAVA并发编程synchronized全能王的原理,虽然被评为并发全能王,不过用起来也是格外注意,不能搞大力出奇迹那一套,容易出现性能问题。 2.如何保证可见性 保证此变量的修改,能被所有线程及时看到。具体是,线程改volatile修饰变量时,先改本地缓存变量副本,然后将本地变量副本值刷到主内存中。 3.volatile实现可见性源码分析 volatile实现可见性原理,其实就是:内存屏障(memory barrier)。内存屏障是一条CPU指令,用来控制在特定条件下的重排序和可见性问题。 = new Thread(() -> { //线程2,也对count进行100次+1 for (int i = 0; i < 10000; i++) { 5.volatile怎么用更科学 像4的示例,volatile修饰的count并发++2w次,结果出现原子性问题。

    36920编辑于 2024-12-09
  • 来自专栏加米谷大数据

    加米谷学院:Spark核心技术原理透视一(Spark运行原理

    本文主要分以下章节: 一、Spark专业术语定义 二、Spark运行基本流程 三、Spark运行架构特点 四、Spark核心原理透视 一、Spark专业术语定义 1、Application:Spark应用程序 Spark应用程序,由一个或多个作业JOB组成,如下图所示: 2、Driver:驱动程序 Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext, 如图所示: 四、Spark核心原理透视 1、计算流程 2、从代码构建DAG图 Spark program Val lines1 = sc.textFile(inputPath1). map(···) 核心算法:从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。 10、任务调度总体诠释 加米谷大数据Spark核心原理透视系列一:Spark运行原理。有兴趣请关注加米谷大数据,下集将讲解Spark运行模式。

    2.3K151发布于 2018-03-20
  • 来自专栏Tom弹架构

    Spring核心原理之IoC容器初体验(2

    本文节选自《Spring 5核心原理》 1 IoC与DI基本概念 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建、依赖,反转给容器来帮忙实现。 (2)描述对象关系的文件存放在哪里?可能是classpath、filesystem或者URL网络资源、servletContext等。 2 Spring核心容器类图 2.1. (2)访问资源(实现ResourcePatternResolver接口,后面章节会讲到)。(3)支持应用事件(实现ApplicationEventPublisher接口)。 2.2.

    37030编辑于 2021-12-27
  • 来自专栏一只程序原

    SpringBoot2核心技术-原理解析

    xxxAutoConfiguration --- 容器中放入组件 ---- 绑定xxxProperties ----** 配置项 2、自定义starter atguigu-hello-spring-boot-starter (启动器) atguigu-hello-spring-boot-starter-autoconfigure(自动配置包) 4、SpringBoot原理 Spring原理【Spring注解】、SpringMVC 原理、自动配置原理、SpringBoot原理 1、SpringBoot启动过程 创建 SpringApplication 保存一些信息。 >> listeners 运行 SpringApplication StopWatch 记录应用的启动时间 **创建引导上下文(Context环境)**createBootstrapContext arguments * @throws Exception on error */ void run(String... args) throws Exception; } 2

    37330编辑于 2022-08-22
  • 来自专栏thinkphp+vue

    手写express核心核心原理

    可见运行成功: 实现post等其他方法。 很简单,我们可以直接复制app.get方法,然后将method的值改成post就好了。 = req.method.toLocaleLowerCase(); let { pathname } = url.parse(req.url, true); // 2. req.method.toLocaleLowerCase(); let { pathname } = url.parse(req.url, true); // 2. 那原理该怎么实现呢? 学习总结 通过这次express手写原理的实现,更加深入地了解了express的使用,发现: 中间件和路由都是push进一个routes数组里的。

    78120编辑于 2022-04-01
  • 来自专栏Java探索之路

    MyBatis运行原理

    运行过程中涉及到的类或接口 1 Resources( C ) 用于加载 MyBatis 核心配置文件 2 XMLConfigBuilder( C ) 用于解析 xml 文件(核心配置文件) C ) 是 SqlSessionFactory(I)的 实 现 类 , 创 建 时 需 要 使 用Configuration 对象 5 SqlSession(I) 是 MyBatis 操作的核心 TransactionFactory(I) 用于生产 Transaction 对象 8 Transaction(I) 用于表示操作数据库的事务对象 9 Executor(I) 是 MyBatis 的核心执行器 (I)为接口,(c)为java 类 文字描述 当 MyBatis 运行开始时, 先要通过 Resources 加载核心配置文件, 之后使用 XMLConfigBuilder 对配置文件进行解析, 将解析结果封装为 以上, 就是 MyBatis 的运行原理.

    76510发布于 2020-07-24
  • 来自专栏AllTests软件测试

    Redis核心原理

    Redis核心原理 目录 1、Redis为什么这么快 2、Redis网络模型 3、Redis数据结构 4、Redis持久化 5、Redis管道(Pipeline) 6、Redis使用lua脚本 (2)每天都保留一份当日的数据备份到一个目录中去,可以保留最近1个月的备份。 (3)每次copy备份的时候,都把太旧的备份给删了。 2、原子操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。管道不是原子的,不过redis的批量操作命令(类似mset)是原子的。 (1)缓存空对象 (2)布隆过滤器 2、缓存失效(击穿) 由于大批量缓存在同一时间失效可能导致大量请求同时穿透缓存直达数据库,可能会造成数据库瞬间压力过大甚至挂掉,对于这种情况我们在批量增加缓存时最好将这一批数据的缓存过期时间设置为一个时间段内的不同时间 当业务应用访问的是非核心数据(例如电商商品属性,用户信息等)时,暂时停止从缓存中查询这些数据,而是直接返回预定义的默认降级信息、空值或是错误提示信息;当业务应用访问的是核心数据(例如电商商品库存)时,仍然允许查询缓存

    90020编辑于 2022-07-26
  • 来自专栏PHP在线

    YII运行原理

    oldController |<———–| | |<————–| | End of processRequest() | |<—————–| | End of app->run() 转载请注明:PHP学习网 » yii执行原理

    1.5K60发布于 2018-03-07
  • 来自专栏arebirth重生者的IT之路

    SpringMVC运行原理

    HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { Iterator var2 var2.hasNext()) { return null; } HandlerMapping hm = (HandlerMapping )var2.next(); if (this.logger.isTraceEnabled()) { this.logger.trace("Testing } throw var7; } } 最后DispatcherServlet将视图传递给前台 PS: Spring MVC核心组件 : 1.DispatcherServlet(中央处理器):将请求转发给控制器 2.Controller(控制器):处理请求的控制器 3.HandlerMapping(映射处理器)

    81840发布于 2019-09-24
  • 来自专栏JAVA乐园

    ThreadPoolExecutor运行原理

    本文主要分析J.U.C中线程池的执行过程和工作原理,作为自己学习的一点总结,以下的版本基于JDK8进行分析。 运行之后,可以看到大约在50s后线程池运行完毕所有的200个任务。到此在我们实现的这个简单的线程中,已经能够实现线程池的核心功能。接下来让我们分析一下JUC中线程池中的实现。 Executor抽象定义了一个提交任务的执行器接口,只要用户将任务提交到Executor中就会运行,至于是怎么运行,由谁来运行,用户就可以不用关心了。 如果已经超过核心线程数量,或者尝试添加核心线程失败,则判断线程池是否正在运行,以及任务队列是否可以容纳要添加的任务。 除了对线程池的工作原理,知其然又知其所以然之外,对于自行编写复杂化的控制逻辑,这些方法可以作为借鉴和参考的例子。

    1.3K30发布于 2021-02-03
  • 来自专栏蓝天

    Cron运行原理

    Cron运行原理.pdf 1. 前言 本文介绍的是由Paul Vixie开发的运行在SuSE Linux上的Cron。可以通过“man cron”进行确认。 2.  从上图可以看到,有4次fork,这4次fork分别是: 1) 第一个fork,让Cron自己成为Daemon进程,即成为守护进程; 2) 第二个fork,当Cron检查到有命令需要执行时被创建 一个诡异的问题 你有可能遇到这样的情况,假设在cron中有如下一条配置: */1 * * * * echo hello >> /tmp/hello.txt 观察到它正常运行几次后,就不再运行了 5. cron&crontab cron是一个在后台运行的守护进程,而crontab是一个设置cron的工具。cron调度的是/etc/crontab文件。 # -*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>

    4.5K20发布于 2018-08-10
  • 来自专栏用户2442861的专栏

    Java 运行原理

    http://blog.csdn.net/bingduanlbd/article/details/8332664  (java不错) 在研究Java运行原理之前,我们先把视野放宽一点:一般的高级语言是如何工作的 当我们真正运行程序的时候,CPU是读不懂这些英文的,所以我们需要先转化成可执行的二进制文件,这个过程通常由编译器完成。有些编译器直接将源代码编译成机器码,载入内存后CPU可以直接运行。 因此,想搞清楚java程序到底是如何运行的,重点在于弄明白字节码是如何被转化成跟CPU架构相关的机器码然后被执行的。也就是要理解JVM到底是如何工作的。 当运行这个应用程序时,它会要求操作系统给它独立施展手脚的空间:给我一些内存,给我一定的CPU时间片,然后不用管我了。你可能会问,寄存器是硬件啊,它怎么能划分啊,难道是时间划分? 它从文件系统中将字节码文件载入到操作系统分配给Java虚拟机的内存当中,然后解释字节码,转化成机器码,然后经由操作系统到达CPU运行。整个执行过程如下图所示: ?

    1.7K10发布于 2018-09-20
  • 来自专栏性能与架构

    HDFS 核心原理

    可以把不同文件放入不同的机器中,空间不足了可以继续加机器,突破了存储空间的限制 但这个方式有多个问题 (1)单机负载可能极高 例如某个文件是热门,很多用户经常读取这个文件,就使此文件所在机器的访问压力极高 (2) 这样做有个好处,不怕文件太大,并且读文件的压力不会全都集中在一台服务器上 但如果某台服务器坏了,文件就读不全了 HDFS为保证文件可靠性,会把每个文件块进行多个备份 块1 : A B C 块2 存放文件块的真实服务器叫做 DataNode 所以用户访问HDFS的过程可以理解为: 用户 -> HDFS -> NameNode -> DataNode HDFS 优点 (1)容量可以线性扩展 (2

    69670发布于 2018-04-03
  • 来自专栏java工会

    springboot核心原理

    1.基于你对springboot的理解描述一下什么是springboot 它是一个服务于spring框架的框架,能够简化配置文件,快速构建web应用, 内置tomcat,无需打包部署,直接运行2.约定优于配置指的是什么? 相关依赖以及内置的 tomcat 容器,使得构建一个 web 应用更加简单 默认提供 application.properties/yml 文件 默认通过 spring.profiles.active 属性来决定运行环境时读取的配置文件 默认会扫描当前 package 下的的所有加 了@Component 、@Repository、@Service、@Controller的类到 IoC 容器中; 4.springboot自动装配的实现原理 (1)SpringApplication.run(AppConfig.class,args);执行流程中有refreshContext(context);这句话. (2)refreshContext(

    64810发布于 2019-10-24
  • 来自专栏任浩强的运维生涯

    docker核心原理

    核心原理。 这是用方式不是一个镜像一台提供不同服务的虚拟机吗? 应用不同,这是两个完全不一样的产品。docker可以快速部署相同的和不同的环境,虚拟机只是节省资源,在同一台宿主机安装多个系统。 容器的实现原理很炫吗? 它是通过利用内核自带的namespace和cgroup功能隔离系统必须的六个模块,以完成一个独立的系统环境。 运行目录。 容器是虚拟的,文件总不能也是虚拟的。查找了相关资料发现全部都是保存在docker容器的运行目录。/var/lib/docker 看了一下,还真有。 ? Distribution下的diffid-by-digest和v2metadata-by-diffid都有sha256。 Imagedb就只有一个sha256。这个正是image的ID。 ? 生成容器的ID:   bc893c0031db98114a48ebb924cf5d0b9b2c77968839696e735528648a1a531b aufs的三个目录。

    1.1K30发布于 2019-02-13
  • 来自专栏授客的专栏

    loadrunner 运行场景-场景运行原理

    运行场景-场景运行原理 by:授客 运行原理 ? ? 1 Remote Agent Dispatcher(Process) 运行Controller在负载机上开启应用程序。 2 Agent LoadRunner Agent允许Controller和负载生成器load generator相互沟通。 当运行场景时,Controller指示 Remote Agent Dispatcher (Process) 登录LoadRunner代理,agent接受到来自Controller的初始化、运行、暂停和停止用户的命令 .同时agent向Controller反馈与Vusers状态相关的数据 在Run Logic中,任意一个脚本都是分为init、run、end三部分,当脚本在场景运行时,虚拟用户被初始化后先运行init 在场景运行结束时停止用户的模式有3种,打开Options(Tools->Options)对话框可以对其进行设置, ? ?

    1.2K20发布于 2019-09-12
领券