自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shi_zi_183的博客

一起学习,相互督促

  • 博客(222)
  • 收藏
  • 关注

原创 Vue.js 组件

Vue.js 组件组件是Vue.js最推崇的,也是最强大的功能之一,核心目标是为了可重用性高,减少重复性的开发。我们可以把组件代码按照template、style、script的拆分方式,放置到对应的.vue文件中。Vue.js的组件可以理解为预先定义好行为的ViewModel类。一个组件可以预定义很多选型,但最核心的是以下几个:模板 —— 模板生命力数据和最终展现给用户的DOM之间的映射关系。初始数据 —— 一个组件的初始数据状态。对于可复用的组件来说,通常是私有的状态。接受的外部参数 ——

2022-01-15 20:04:02 598 1

原创 Vue.js 实例方法

Vue.js 实例方法实例属性组件树访问1、vm.$parent用来访问当前组件实例的父实例2、vm.$root用来访问当前组件树的根实例,如果当前组件没有父实例,$root表示当前组件实例本身3、vm.$children用来访问当前组件实例的直接子组件实例4、vm.$refs用来访问使用了v-ref指令的子组件。DOM访问1、vm.$el用来访问挂载当前组件实例的DOM元素数据访问1、vm.$data用来访问组件实例观察的数据对象,该对象引用组件实例化时选项中的data属性

2022-01-14 09:45:11 744

原创 Vue.js Method

Vue.js MethodVue.js的事件监听一般都通过v-on指令配置在HTML中,虽然也可以在JavaScript代码中使用原生addEventListener方法添加事件监听,但Vue.js本身并不提倡如此。看上去这种方式不符合传统的"关注点分离"的理念,但其实所有的Vue.js事件处理方法和表达式都严格绑定在当前视图的ViewModel上。实际上,采用它提供的v-on指令有如下几点好处:通过查看HTML模板便能轻松定位JavaScript代码中对应的方法。无须在JavaScript中手动绑

2022-01-13 11:04:38 558

原创 Vue.js 过渡

Vue.js 过渡Vue 的过渡系统提供了非常多简单的方法设置进入、离开和列表的动效。那么对于数据元素本身的动效呢,比如:数字和运算颜色的显示SVG 节点的位置元素的大小和其他的 property这些数据要么本身就以数值形式存储,要么可以转换为数值。有了这些数值后,我们就可以结合 Vue 的响应式和组件系统,使用第三方库来实现切换元素的过渡状态。状态动画与侦听器<!DOCTYPE html><html lang="en"><head> &l

2022-01-13 10:02:04 302

原创 Vue.js Class与Style绑定

Vue.js Class与Style绑定对于数据绑定,一个常见的需求是操作元素的class列表和它的内联样式。因为它们都是attribute,我们可以用v-bind处理它们;只需要计算出表达式最终的字符串。不过,字符串拼接麻烦又易错。因此,在v-bind用于class和style时,Vue.js专门增强了它。表达式的结果类型除了字符串以外,还可以是对象或数组。绑定HTML Class对象语法我们可以传给v-bind:class一个对象,以动态地切换class。注意,v-bind:class指令可以

2022-01-12 17:43:57 485 1

原创 Vue.js 过滤器

Vue.js 过滤器在了解过滤器之前,我们需要明确一个概念——过滤器,本质上都是函数。其作用在于用户输入数据后,它能够进行处理,并返回一个数据结果。Vue.js使用管道符(|)进行连接{{'abc' | uppercase}}这里使用了Vue.js内置的过滤器uppercase,将字符串中的字母全部转换为大写形式。Vue2不加载内置过滤器需要自己引入filter组件<script src="https://cdn.jsdelivr.net/npm/vue2-filters/dist/vue

2022-01-11 09:40:31 882

原创 Vue.js 表单控件绑定

Vue.js 表单控件绑定在Web应用中,我们经常会使用表单向服务端提交一些数据,而通常也会在表单项中绑定一些如input、change等事件对用户输入地数据进行校验、更新等操作。在Vue.js中、我们可以使用v-model指令同步用户输入的数据到Vue实例data属性中,同时会对radio、checkbox、select等原生表单组件提供一些语法糖使表单操作更加容易。基本用法text设置文本框v-model为name<!DOCTYPE html><html lang="en"

2022-01-10 10:15:36 1024

原创 Vue.js 计算属性

Vue.js 计算属性通常我们会在模板中绑定表达式,模板是用来描述视图结构的。如果模板中的表达式存在过多的逻辑,模板会变得臃肿不堪,维护变得非常困难。因此,为了简化逻辑,当某个属性的值依赖于其他属性的值时,我们可以使用计算属性。什么是计算属性计算属性就是当其依赖属性的值发生变化时,这个属性的值会自动更新,与之相关的DOM部分也会同步自动更新。<!DOCTYPE html><html lang="en"><head> <meta charset="

2022-01-09 10:34:44 339

原创 vue.js 指令

Vue.js 指令指令是特殊的带有前缀v-的特性。指令的值限定为绑定表达式,指令的职责就是当其表达式的值改变时把某些特殊的行为应用到DOM上。内部指令首先来看看和原生HTML标签相似的一组内置指令,这组指令非常容易记忆,因为仅仅是在原生标签前面v-前缀。v-showv-elsev-modelv-repeat(1,0-)v-for(1,0+)v-textv-elv-htmlv-onv-bindv-refv-prev-cloakv-ifv-ifv-if指令可以完全根据表

2022-01-08 10:33:31 445

原创 Vue.js 数据绑定

数据绑定语法插值文本插值是最基本的形式,使用双大括号{{}}(类似于Mustache,所以文本中称作Mustache标签)<span>Test: {{text}}</span>例子中的标签{{text}}将会被相应的数据对象text属性的值替换掉,当text的值改变时,文本中的值也会联动地发生变化。有时候只需渲染一次数据,后续数据变换不再关心,可以通过"*"实现<span>Text: {{*text}} </span>双大括号标签会把里面地值

2021-12-27 19:17:45 936

原创 Vue.js 入门

Vue.js入门Vue.js是什么Vue.js不是一个框架——它只聚焦视图层,是一个构建数据驱动的Web界面的库。Vue.js通过简单的API提供高效的数据绑定和灵活的组件系统。特性确实轻量除了以MVP模式代表的Riot.js外,Vue.js已经算是前端库里面体积非常小的,但不依赖其他库。数据绑定对于一些富交互、状态机类似的前端UI界面,数据绑定非常简单、方便。指令类似于AngularJS,可以用一些内置的简单指令(v-*),也可以自定义指令,通过对应表达式值的变化就可以修改对应的DOM

2021-12-27 17:10:41 391

原创 Docker overlay网络宿主机无法连接到容器的解决方案

Docker overlay网络宿主机无法连接到容器的解决方案问题阐述docker 使用原生跨主机overlay网络部署集群时,发现宿主机无法连接到容器中测试案例启动一个resourcemanager来测试docker run --name test1 --hostname resourcemanager --rm -p 8088:8088 --net hadoop_net -it resourcemanager:1.0查看resourcemanager分配的ipdocker exec -i

2021-11-26 01:10:00 2319

原创 构造业务需要的docker()

构造业务需要的docker需求毕设中想要引入docker来运行大数据插件构造JDK命令行构造JDK命令行方便操作,可以验证路径,实际构造需要改写为dockerfile构造。运行一个centosdocker run -it --name=JDK centos bash 不结束退出ctrl+p+q将jdk压缩包放入容器docker cp jdk-8u181-linux-x64_oracle.tar.gz JDK:/jdk.tar.gz进入JDKdocker attach JDK解

2021-11-25 01:18:14 542

原创 Docker网络

Docker网络LibnetworkLibnetwork提出了新的容器网络模型(Container Network Model简称CNM),定义了标准的API用于为容器配置网络,其底层可以适配各种网络驱动。CNM有三个重要的概念:沙盒。沙盒是一个隔离的网络运行环境,保存了容器网络栈的配置,包括了对网络接口、路由表和DNS配置的管理。在Linux平台上,沙盒是用Linux Network Namespace实现的,在其他平台上可能是不同的概念,如FreeBSD Jail。一个沙盒可以包括来自多个网络的

2021-11-23 22:06:17 839

原创 Maven 仓库进阶

Maven仓库进阶什么是仓库仓库用来集中存储Docker镜像,支持镜像分发和更新。目前世界上最大最知名的公共仓库是Docker官方发布的Docker Hub,上面有超过15000个镜像。国内比较知名的Docker仓库社区有Docker Pool、阿里云等。为了满足容灾需求,Docker仓库后端通常采用分布式存储。比较常用的分布式存储平台包括亚马逊S3、微软Azure和华为UDS等。仓库的组成人们习惯称呼一个镜像集群社区(Hub)为仓库,如上面提到的Docker Hub、Docker Pool等,事

2021-11-23 08:20:33 751 1

原创 Maven聚合与前缀

Maven聚合与前缀聚合我们想要一次构建两个项目,而不是到两个模块的目录分别执行mvn命令,Maven聚合(或者称为多模块)这一特性就是为该需求服务的。为了能使用一条命令就就能构件两个模块,我们需要创建一个额外的名为account-aggregator的模块,然后通过该模块构建整个项目的所有模块。这个项目本身作为一个Maven项目,它必须要有自己的POM,不过,同时作为一个聚合项目,其POM又有特殊的地方。<?xml version="1.0" encoding="UTF-8"?>&l

2021-11-20 21:58:16 545

原创 Maven生命周期和插件

Maven生命周期和插件除了坐标、依赖以及仓库之外,Maven另外两个核心概念是生命周期和插件。在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段package。Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的认为可能就会由maven-jar-plugin完成。何为生命周期在Maven出现之前,项目构件的生命周期就已经存在,软件开发人员每天都在对项目进行清理、编译、测试及部署。虽然大家都不停地做构建工作,但公

2021-11-19 22:04:23 667

原创 Maven 仓库

Maven 仓库何为Maven仓库在Maven世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构件。例如依赖log4j-1.2.15.jar是一个构件,插件maven-compiler-plugin-2.0.2.jar是一个构件,项目构建完成后的输出jar包也是一个构建,任何一个构件都有一组坐标唯一标识。在一台工作台上,可能会有几十个Maven项目,所有项目都使用maven-compiler-plugin,这些项目中的大部分都用到了log4j,有一小部分用到了Spring Framework,

2021-11-18 22:26:04 796 2

原创 Maven 坐标和依赖

Maven坐标和依赖坐标详解Maven为各种构建引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId、artifactId、version、packaging、classifier。 <groupId>org.sonatype.nexus</groupId> <artifactId>nexus-indexer</artifactId> <version>2.0.0&l

2021-11-18 15:03:17 646

原创 Maven使用入门

Maven使用入门编写POM就像Make的Makefile、Ant的build.xml一样,Maven项目的核心是pom.xml。POM(Poject Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。现在先为Hello World项目编写一个最简单的pom.xml。首先创建一个名为hello-world的文件夹,打开该文件夹,新建一个名为pom.xml的文件,输入其内容。pom.xml<?xml version="1.0" encodi

2021-11-17 20:47:09 714

原创 Linux on Windows配置

Linux on Windows配置系统要求:windows 10 64位系统;版本号14316以上安装前做基本设置查看版本号win+R,输入winver命令,出现系统版本号信息安装前系统设置开始--------设置--------更新和安全-------开发者选项------开发人员模式,出来确认对话框时选择《是》。启用适用于Linux的windows子系统设置点左上角回到设置页面,选择:应用------>程序和功能------>启用或关闭windows功能--

2021-11-17 14:21:12 497

原创 理解Docker镜像

理解Docker镜像Docker image概念介绍简单来说,Docker image是用来启动容器的只读模板,是容器启动所需要的rootfs,类似于虚拟机所使用的镜像。首先需要通过一定的规则和方法Docker image。Remote-dockerhub.com/namespace/bar:latestDocker镜像的表示方式,可以看到其被’/'分成三个部分,其中每部分都可以类比Github中的概念。Remote docker hub:集中存储镜像的Web服务器地址。该部分的存在使得可以区

2021-11-16 17:29:29 1040

原创 Docker简介

Docker简介Docker的架构介绍Docker并没有传统虚拟化中的Hypervisor层。因为Docker是基于容器技术的轻量级虚拟化,相对于传统的虚拟化技术,省去了Hypervisor层的开销,而且其虚拟化技术是基于内核的Cgroup和Namespace技术,处理逻辑与内核深度融合,所以在很多方面,它的性能与物理机非常接近。在通信上,Docker并不会直接与内核交互,它是通过一个更底层的工具Libcontainer与内核交互的。Libcontainer是真正意义上的容器引擎,它通过clone系统

2021-11-16 15:11:03 401

原创 使用Docker Compose编排微服务

使用Docker Compose编排微服务经过前文讲解,可使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如docker run、docker kiil等。然而,使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署国歌示例。如果每个微服务都有手动启停,那么效率之低、维护量之大可想而知。Docker Compose简介Compose是一个用于定义和运行多容器Docker应用程序的工具,前身是Fig。它非常适合用在开发、测试、构建CI工作流等场景。这里

2021-11-11 20:26:33 2389

原创 将微服务运行在Docker上

将微服务运行在Docker上使用Dockerfile构建Docker镜像Dockerfile构建Docker镜像。Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节。1)准备一个文件,名为Dockerfile:FORM nginxRUN echo '<h1>test</h1>' > /usr/share/nginx/html/index.htmlFORM、RUN都是Dockerfile的指令。FROM指令用于指定基础镜像,RUN指令

2021-11-10 21:35:28 850

原创 Docker入门

Docker入门Docker是一个开源的容器引擎,它有助于更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可缩短从编写到部署运行代码地周期。版本与迭代计划版本区别Docker EE(企业版)Docker EE由公司提供支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件。Docker EE提供了三个服务层次服务层次功能

2021-11-09 17:06:39 553

原创 使用Spring Cloud Sleuth实现微服务跟踪

使用Spring Cloud Sleuth实现微服务跟踪之前已经了解了几种监控微服务的方式,例如使用Spring Boot Actuator监控微服务示例,使用Hystrix监控Hystrix Command等。为什么要实现微服务追踪Peter Deutsch的分布式计算的八大误区。网络可靠延迟为零带宽无限网络绝对安全网络拓扑不会改变必须有一名管理员传输成本为零网络同质化从中可以看到,该文章很多点都在描述一个问题——网络问题。网络常常很脆弱,同时网络资源也是有限的。我们知道,微服

2021-11-06 19:07:44 322

原创 使用Spring Cloud Config统一管理微服务配置

使用Spring Cloud Config统一管理微服务配置为什么要统一管理微服务配置对于传统的单体应用,常使用配置文件管理所有配置。例如一个Spring Boot开发的单体应用,可将配置内容放在application.yml文件中。如果需要切换环境,可设置多个Profile,并在启动应用时指定spring.profiles.active={profile}。当然也可借助Profile实现环境切换。然而,在微服务架构中,微服务的配置管理一般有以下需求:集中管理配置。一个使用微服务架构的应用系统可能

2021-11-06 00:51:17 942

原创 使用Zuul构建微服务网关

使用Zuul构建微服务网关为什么要使用微服务网关经过前文的讲解,微服务架构已经初具雏形,但还有一些问题——不同的微服务一般会有不同的网络地址,而外部客户端(例如手机APP)可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:客户端多次请求不同的微服务,增加了客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每个服务都需要独立认证难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如

2021-11-05 01:22:56 495

原创 使用Hystrix实现微服务的容错处理

使用Hystrix实现微服务的容错处理至此,已用Eureka实现类微服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign实现了声明式的API调用。实现容错的手段如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗尽甚至整个系统的崩溃。例如,曾经发生过一个案例——某电子商务网站在一个黑色星期五发生过载。过多的并发请求,导致用户支付的请求延迟很久都没有响应,在等待很长时间后最终失败。支

2021-11-03 09:16:32 398

原创 使用Feign实现声明式REST调用

使用Feign实现声明式REST调用之前示例中是使用RestTemplate实现REST API调用的,代码大致如下: public User findById(@PathVariable Long id){ return this.restTemplate.getForObject("http://microservice-provider-user/"+id,User.class); }由代码可知,我们是使用拼接字符串的方式构造URL的,该URL只有一个参数。然而在现实中

2021-11-01 22:40:50 443

原创 使用Ribbon实现客户端侧负载均衡

使用Ribbon实现客户端侧负载均衡在生成环境中,各个微服务都会部署多个实例。那么服务消费者要如何将请求分摊到多个服务者实例上呢?Ribbon简介Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP的TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。在Spring Cloud中,当Ribbon与

2021-10-29 23:58:32 319

原创 微服务注册与发现

微服务注册与发现服务发现简介通过前文的讲解,我们知道硬编码提供者地址的方式有不少问题。想要解决这些问题,服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息。不仅如此,即使服务提供者的信息发生变化,服务消费者也无需修改配置文件。...

2021-10-28 18:34:22 1996

原创 开始使用Spring Cloud实战微服务

开始使用Spring Cloud实战微服务Spring Cloud 实战前提Spring Cloud不一定适合所有人。学习之前需要了解需要具备什么样的技术能力,以及实战中会使用到哪些工具。技术储备Spring Cloud并不是面向零基础开发人员的,它有一定的学习曲线。语言基础:Spring Cloud是一个基于Java语言的工具套件,所以学习他需要一定的Java基础。当然,Spring Cloud同样也支持使用Scala、Groovy等语言进行开发。Spring Boot:Spring Clo

2021-10-26 11:55:37 236

原创 微服务开发框架——Spring Cloud

微服务开发——Spring CloudSpring Cloud简介尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如 Cloud Foundry)上部署,所以又叫作云原生应用(Cloud Native Application)。云原生(Cloud Native)可简单理解为面向云环境的软件架构。Spring

2021-10-25 21:06:52 359

原创 微服务架构概述

微服务架构概述微服务架构是当前软件开发领域得技术热点。什么是微服务?它解决了哪些问题?它又具有哪些特点?单体应用架构存在得问题一个归档包(例如war格式)包含所有功能得应用程序,通常称为单体应用。而架构单体应用得方法论,就是单体应用架构。以一个电影售票系统为例。该应用尽管已经进行了模块化,但由于UI和若干业务模块最终都被打包在一个war包中,该war包包含了整个系统所有的业务功能,这样的应用系统称为单体应用。相信很多项目都是从单体应用开始的。单体应用比较容易部署、测试,在项目的初期,单体应用可以很

2021-10-25 20:22:50 283

原创 Spring Boot任务管理

Spring Boot任务管理开发Web应用时,多数应用都具备任务调度功能。常用的任务包括异步任务、定时任务和发邮件任务。我们以数据库报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要很长时间找到需要的报表数据,此时,我们可以在这个报表应用中添加异步任务减少用户等待时间,从而提高用户体验;除此之外,还可以在报表应用中添加定时任务和邮件任务,以便用户可以安排在任何他们需要的时间定时生成报表,并在Email中

2021-10-24 00:19:16 2421

原创 Spring Boot消息服务

Spring Boot消息服务在实际项目开发中,有时候需要与其他系统进行集成完成相关业务功能,这种情况最原始的做法是程序内部相互调用,除此之外,还可以使用消息服务中间件进行业务处理,使用消息服务中间件处理业务能够提升系统的异步通信和扩展解耦能力。Spring Boot对消息服务管理提供了非常好的支持。消息服务概述为什么要使用消息服务在多数应用尤其是分布式系统中,消息服务是不可或缺的重要部分,它使用起来比较简单,同时解决了不少难题,例如异步处理、应用解耦、流量削峰、分布式事务管理等,使用消息服务可以实

2021-10-23 00:36:23 5003 8

原创 Yarn与ZooKeeper

Yarn与ZooKeeperYarn是MapReduce引入的资源管理器,它的出现为集群在资源利用率、资源统一管理和数据共享等方面带来了巨大好处。ZooKeeper是一个分布式的、开源的协调服务框架,ZooKeeper出现就是为例减轻分布式应用实现协调服务的负担。Yarn资源管理与调度Yarn产生背景在早期的Hadoop中,MRv1采用Master/Slave(M/S)框架,主要包括Client、JobTracker、TaskTracker和Task几个部分。其中JobTarcker负责整个系统的作

2021-10-19 22:47:37 1656

原创 Maven开发Spark程序

Maven开发Spark程序新建Maven项目将src/main/java改名为src/main/scala修改pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

2021-10-19 20:02:13 523

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除