综合( 右侧选择分类 )
hangge

SpringBoot - 配置文件application.yml使用详解(附:Profile多环境配置

1,基本介绍(1)YAML是JSON的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。(2)在创建一个SpringBoot项目时,引入的spring-boot-starter-web依赖间接地引入了snakeyaml依赖,snakeyaml会实现对YAML配置的解析。(3)YAML的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。2,
195 人浏览
hangge

SpringBoot - 配置文件application.properties使用详解(附:Profile多环境配置

1,开启自动转码功能application.properties提供了自定义属性的支持,如果数据有中文的话需要进行转码,否则可能会出现乱码问题。如果我们使用的是IntelliJ IDEA,那么直接在setting配置中进行如下设置,这样编辑器就会自动对中文内容进行转码。2,配置属性的定义(1)我们可以在application.properties中添加类似如下这样简单的常量配置:12my.name
206 人浏览
hangge

SpringBoot - 内置的Tomcat服务器配置详解(附:启用HTTPS服务)

在Spring boot项目中,可以内置Tomcat、Jetty、Undertow、Netty等服务器容器。当我们添加了spring-boot-starter-web依赖后,默认会使用Tomcat作为Web容器。 下面演示如何对这个Tomcat进行进一步的配置。1,常规配置(1)要对Tomcat进行进一步的配置,可以在application.properties中进行配置:(2)下面我们修改
272 人浏览
hangge

SpringBoot - 自定义启动Banner(附:使用艺术字体)

我们知道Spring Boot项目启动时会在控制台打印出一个banner,下面演示如何定制这个banner。1,修改 banner 文字(1)首先在resources目录下创建一个banner.txt文件。(2)在这个文件中写入的文本将在项目启动时打印出来。比如我写入如下内容:12345-----------------------welcome to hangge.com------------
214 人浏览
hangge

SpringBoot - 详细入门教程(创建、运行项目,REST服务样例)

Spring Boot和Spring Cloud已成为当前最流行的微服务框架。本文通过样例演示如何搭建并运行一个简单的Spring Boot项目。在开发之前,首先确认我们的电脑上已经有以下环境:JDK8Maven3.0+Intellij IDEA一、创建项目创建项目一共有两种方式,下面分别进行介绍。1,在线创建项目(1)在线创建是Spring Boot官方提供的一种创建方式,在浏览器中访问如下网
208 人浏览
hangge

JS - 使用正则表达式获取字符串里的部分内容(截取两个字符串之间内容

(1)有时我们需要从一个字符串中提取出需要的部分,这个借助正则表达式就可以很方便地实现。比如:从下面的字符串中根据key(冒号前面部分)获取对应的value(冒号后面的部分)1time:2019,status:open,count:3(2)为方便使用我们封装一个方法:123456// 从字符串中根据key获取对应的value值// 字符串格式:key1:value1,key2:value2,...
193 人浏览
hangge

Java - MacOS下Maven的安装、配置教程

一、基本介绍1,什么是 Maven?(1)Maven是一种用来管理Java项目的工具,能够管理项目的构建、报告和文档,处理一个具体的项目所涉及的各种任务。(2)Maven工程结构和内容被定义在一个名为pom.xml的文件中。pom是Project Object Model的简称,此文件是整个Maven系统的基础组件,包含了Maven用于管理该项目的所有配置信息。2,使用 Maven 的优点传统的项
177 人浏览
hangge

Java - MacOS下JDK安装、升级教程(附:JDK1.8官方下载地址)

最近需要在Mac系统上进行SpringBoot开发,可惜当前的JDK版本太低(1.7),下面介绍如何将其升级为1.8版本。1,JDK 的下载与安装(1)首先访问Oracle官网(www.oracle.com),点击页面最下方的“Java for Developers”链接。(2)找到需要的版本后,点击旁边的“JDK DOWNLOAD”按钮:(3)选择“Accept Lisence Agreemen
231 人浏览
hangge

k8s - 解决Terminating状态的Pod删不掉的问题(强行kubectl delete pod)

1,问题描述(1)最近发现咋Kubernetes集群上有个处于Terminating状态的Pod:(2)但通过kubectl delete pods命令却死活无法将其删除:1kubectldeletepods httpd-app-6df58645c6-cxgcm2,解决办法(1)无论各种方式生成的pod, 均可以使用如下命令强制删除:1kubectldeletepods <pod> -
204 人浏览
hangge

K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)

十四、集群日志管理:Elasticsearch1,Elasticsearch 介绍(1)Kubernetes开发了一个Elasticsearch附加组件来实现集群的日志管理。这是一个Elasticsearch、Fluentd和Kibana的组合。(2)它们分工如下:Fluentd负责从Kubernetes搜集日志并发送给Elasticsearch;Elasticsearch是一个搜索引擎,负责存储
228 人浏览
hangge

K8s - Kubernetes使用详解13(可视化监控工具2:Heapster)

十三、Heapster1,基本介绍(1)Heapster是Kubernetes原生的集群监控方案。Heapster以Pod的形式运行,它会自动发现集群节点、从节点上的Kubelet获取监控数据。Kubelet则是从节点上的cAdvisor收集数据。(2)Heapster将数据按照Pod进行分组,将它们存储到预先配置的backend并进行可视化展示。Heapster当前支持的backend有Infl
242 人浏览
hangge

K8s - Kubernetes使用详解12(可视化监控工具1:Weave Scope)

十二、Weave Scope1,基本介绍Weave Scope是Docker和Kubernetes可视化监控工具。Weave Scope提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断。2,安装步骤(1)安装Weave Scope的方法很简单,我们只需执行如下命令即可:1kubectl apply -f"https://cloud.we
208 人浏览
hangge

K8s - Kubernetes使用详解11(使用Canal网络实现Network Policy)

我们知道目前已有多种支持Kubernetes的网络方案,比如Flannel、Calico、Canal、Weave Net等。因为它们都实现了CNI规范,所以用户无论选择哪种方案,得到的网络模型都一样,即每个Pod都有独立的IP,可以直接通信。 而这些方案除了底层实现不同,性能上有差异外。最大的区别就是就是是否支持Network Policy了。十一、使用 Canal 网络实现 Network
277 人浏览
hangge

TIOBE - 2019年8月编程语言排行

八月头条:波澜不惊的月度排行 相比 7 月榜单,本月编程语言的排名并未有太大波动,因此TIOBE 官方也将 8 月编程语言排行榜戏谑为“Silly season”。在 Top 10 中唯一的变化就是 Objective-C 和 SQL 的位置首次发生了变换(Objective-C 位列第九,SQL 排名第十)。近年来,Objective-C 在苹果主推 Swift 的举措下,发展得尤为艰难。不过
186 人浏览
hangge

K8s - Kubernetes使用详解10(使用ConfigMap管理应用配置信息)

前文介绍了如何用Secret为Pod提供密码、Token、私钥等敏感数据;而对于一些非敏感数据,比如应用的配置信息,则可以用ConfigMap来实现. ConfigMap的创建、使用方式与Secret非常类似,主要的不同在于数据以明文的形式存放。下面通过样例进行演示。十、使用 ConfigMap 管理应用配置信息1,创建 ConfigMap与Secret一样,ConfigMap也支持四种创建方
227 人浏览
hangge

K8s - Kubernetes使用详解9(使用Secret管理敏感信息)

应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥。将这些信息如果直接保存在容器镜像中显然不妥,Kubernetes提供的解决方案是Secret。九、使用 Secret 管理敏感信息1,Secret 的功能介绍Secret会以密文的方式存储数据,避免了直接在配置文件中保存敏感信息。Secret会以Volume的形式被mount到Pod,容器可通过文件的方式使用Secret中
238 人浏览
hangge

K8s - Kubernetes使用详解8(使用Volume存储实现数据持久化)

我们知道容器和Pod的生命周期可能很短,会被频繁地销毁和创建。当容器销毁时,保存在容器内部文件系统中的数据都会被清除。为了持久化保存容器的数据,我们可以使用Kubernetes Volume。 除此之外,有一些场景可能一个pod里面的多个容器需要共享数据。同样可以借助Volume来实现。八、Volume 存储1,什么是Volume?(1)Volume的生命周期独立于容器,Pod中的容器可能被
193 人浏览
hangge

K8s - Kubernetes使用详解7(滚动更新、回滚)

七、滚动更新、回滚1,滚动更新滚动更新的含义:一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的好处:最大好处是零停机,整个更新过程始终有副本在运行,从而保证了业余的连续性。(1)假设我们要部署三个副本的应用,初始镜像是httpd:2.4.16,配置文件为httpd.v1.yml,内容如下:(2)然后通过kubectl apply进行部署:1kubectl app
203 人浏览
hangge

K8s - Kubernetes使用详解6(Service的创建和使用)

Pod中的容器很可能因为各种原因发生故障而死掉,Controller会通过动态创建和销毁Pod来保证应用整体的健壮性。而由于每次新Pod都会分配到新的IP地址,为了能让客户端找到并访问这个服务,Kubernetes给出了Service这个解决方案。六、Service 的创建和使用1,Service 介绍(1)Kubernetes Service从逻辑上代表了一组Pod,具体是哪些Pod则是由la
186 人浏览
hangge

K8s - Kubernetes使用详解5(运行CronJob样例)

Linux中有cron程序可以定时执行任务,而Kubernetes的CronJob则提供了类似的功能,可以定时执行Job。五、运行 CronJob1,准备工作(1)Kubernetes默认没有enable CronJob功能,需要在kube-apiserver中加入这个功能。首先我们修改kube-apiserver的配置文件:1vi /etc/kubernetes/manifests/kube-a
191 人浏览