09 2019 档案
摘要:java.util.Optional是Java 8新增的类,作为一个持有实例的容器类,可以帮我们把判空的代码写得更优雅,并且该类还提供了一些实用的api,官方文档 "在这里" ,接下来我们通过实战来学习吧: 三种Optional构造方法 第一种. Optional.of(Object object)
阅读全文
摘要:IntelliJ IDEA是广受Java开发者喜爱的工具,其商业版的价格十分昂贵,如下图: 现在有机会免费获取IntelliJ IDEA的正版License,您是否心动呢?我把自己成功申请License的步骤记录下来,咱们一起行动吧。 申请资格要求 本次申请必须的唯一要求,就是您要有自己的开源项目,
阅读全文
摘要:问题简述 通过Jib插件将SpringBoot工程制作成Docker镜像成功,但是运行镜像的时候报错(Could not find or load main class ${start class}),今天来一起分析这个问题,希望能帮读者跳过小坑。 关于Jib插件 在Maven工程中可以使用Jib插
阅读全文
摘要:通过上一章 "《Docker下实战zabbix三部曲之二:监控其他机器》" 的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabbix server之后,将自己所在机器的信息定时给到zabbix server,这样就实现了机器的监控;
阅读全文
摘要:在上一章 "《Docker下实战zabbix三部曲之一:极速体验》" 中,我们快速安装了zabbix server,并登录管理页面查看了zabbix server所在机器的监控信息,但是在实际场景中,应该是对应用服务器做监控,所以今天我们来实战将应用服务器的监控加入到zabbix server中。
阅读全文
摘要:对于想学习和实践zabbix的读者来说,在真实环境搭建一套zabbix系统是件费时费力的事情,本文内容就是用docker来缩减搭建时间,目标是让读者们尽快投入zabbix系统的体验和实践; 环境信息 以下是本次操作的环境: 1. 操作系统:MacBook Pro 2. Docker:19.03.2
阅读全文
摘要:Java1.8环境下,我们在编写程序时会进行各种方法调用,虚拟机在执行这些调用的时候会用到不同的字节码指令,共有如下五种: 1. invokespecial:调用私有实例方法; 2. invokestatic:调用静态方法; 3. invokevirtual:调用实例方法; 4. invokeint
阅读全文
摘要:除了基本的docker pull、docker image、docker ps,还有一些命令及参数也很重要,在此记录下来避免遗忘。 环境信息 以下是本次操作的环境: 1. 操作系统:CentOS Linux release 7.7.1908 2. Docker:19.03.2 假设当前环境正运行着两
阅读全文
摘要:本文是《Jenkins流水线(pipeline)实战》系列的第三篇,前面已对Jenkins流水线有了基本认识,也试过从GitHub下载pipeline脚本并执行,今天的实战是编写一段pipeline脚本,该脚本的作用是从GitHub下载一个Java项目(Maven构建的),然后编辑构建此项目,并将构
阅读全文
摘要:关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全、标识、管理等方面做了增强,更适合企业使用; 1. 官方网站:https://goharbor.io/ 2. 官方开源:https://github.com/gohar
阅读全文
摘要:准备工作 树莓派4B已装好64位Linux,并且装好了19.03.1版本的Docker,具体的安装步骤请参考 "《树莓派4B安装64位Linux(不用显示器键盘鼠标)》" 安装docker compose的步骤 1. apt更新: 2. 安装python和pip: 3. 安装libffi dev:
阅读全文
摘要:关于限流 常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的频率向桶中放入令牌,例如一秒钟10枚令牌,实际业务在每次响应请求之前都从桶中获取令牌,只有取到令牌的请求才会被成功响应,获取的方式有两种:阻塞等待令牌或者取不到立即返回失败,下图来自网
阅读全文
摘要:关于spring自定义属性(schema) 在开发Dubbo应用的时候,我们会在xml中做以下类似的配置: spring启动后,Dubbo的本地运行时环境就会获取到这些信息,根据这些信息完成注册服务,今天我们实战的内容就是开发一个类似的自定义属性,然后在spring项目中使用这个属性; 全文概览 整
阅读全文
摘要:上周在定位问题时,发现Spring容器实例化Bean的时候抛出异常,为了查看更详细的信息,决定修改spring context 4.0.2.RELEASE.jar中的CommonAnnotationBeanPostProcessor类的代码,在里面打印出更详细的信息,以便我们分析和定位问题,下面我们
阅读全文
摘要:web项目部署到tomcat上之后,有时需要打断点单步调试,如果用的是Intellij idea,可以通过如下方法实现: 开启debug端口,启动tomcat 以tomcat7.0.75为例,打开bin目录下的catalina.bat文件,如下图,可以看到默认的debug端口是8000,如果本地的8
阅读全文
摘要:使用IntelliJ IDEA做为开发工具,对基于maven的java工程,如果要编写lambda表达式,先确保安装并使用了jdk1.8或者更高版本,然后再要做一些设置才能正常编译和执行,具体表现在maven支持和intellij idea工具支持两个方面,配置如下: maven支持 在pom.xm
阅读全文
摘要:在前两章 "《Docker下dubbo开发,三部曲之一:极速体验》" 和 "《Docker下dubbo开发,三部曲之二:本地环境搭建》" 中,我们体验了dubbo环境搭建以及服务的发布和消费,对dubbo有了初步认识,本章我们来实战dubbo服务的发布和消费代码的编写,实战后的我们能将自己的服务发布
阅读全文
摘要:在上一章 "《 Docker下kafka学习,三部曲之一:极速体验kafka》" 中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写这些脚本,搭建本地kafka环境; 本次实践会制作docker镜像,所用的材料请在此获取:h
阅读全文
摘要:Kafka是一种高吞吐量的分布式发布订阅消息系统,从本章开始我们先极速体验,再实战docker下搭建kafka环境,最后开发一个java web应用来体验kafka服务。 我们一起用最快的速度体验kafka的消息发布订阅功能: 新建一个docker compose.yml文件,内容如下: 打开终端,
阅读全文
摘要:jedis是redis的java版本的客户端实现,本文通过一些web请求&响应的实例展示了jedis的基本用法; 开始编码前我们先把环境准备好,总共两个server,对应两个docker容器: 1. redis,采用redis的3.2.8版本,本次实战用的是redis单机; 2. tomcat,采用
阅读全文
摘要:本文是《Jenkins流水线(pipeline)实战》系列的第二篇,上一篇搭建好了Jenkins环境并执行了一个简单的pipeline任务,当时我们直接在Jenkins网页上编写pipeline脚本,这种方式虽然简单,但是也有不足之处: 1. pipeline脚本内容复杂时,在网页上编辑和查找都不方
阅读全文
摘要:关于Jenkins流水线(pipeline) Jenkins 流水线 (pipeline) 是一套插件,让Jenkins可以实现持续交付管道的落地和实施。 关于blueocean Blue Ocean是pipeline的可视化UI,本文中的demo暂时用不上blueocean,后续的文章中会用到;
阅读全文
摘要:关于Docker Swarm Docker Swarm由两部分组成: 1. Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理; 2. 应用编排:有一套API用来部署和管理容器; 官方资料:https://docs.docker.com/swarm/ 网络图 下图是
阅读全文
摘要:Docker下的disconf实战全文链接 1. "《Docker搭建disconf环境,三部曲之一:极速搭建disconf》" ; 2. "《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》" ; 3. "《Docker搭建disconf环境,三部曲之三:细说搭建过
阅读全文
摘要:Docker下的disconf实战全文链接 1. "《Docker搭建disconf环境,三部曲之一:极速搭建disconf》" ; 2. "《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》" ; 3. "《Docker搭建disconf环境,三部曲之三:细说搭建过
阅读全文
摘要:Docker下的disconf实战全文链接 1. "《Docker搭建disconf环境,三部曲之一:极速搭建disconf》" ; 2. "《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》" ; 3. "《Docker搭建disconf环境,三部曲之三:细说搭建过
阅读全文
摘要:Docker下的disconf实战全文链接 1. "《Docker搭建disconf环境,三部曲之一:极速搭建disconf》" ; 2. "《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》" ; 3. "《Docker搭建disconf环境,三部曲之三:细说搭建过
阅读全文
摘要:Docker下的disconf实战全文链接 1. "《Docker搭建disconf环境,三部曲之一:极速搭建disconf》" ; 2. "《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》" ; 3. "《Docker搭建disconf环境,三部曲之三:细说搭建过
阅读全文
摘要:在用docker创建mysql容器的时,有时候我们期望容器启动后数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库,使用其中的数据了。 其实mysql的官方镜像是支持这个能力的,在容器启动的时候自动执行指定的sql脚本或者shell脚本,我们一起来看看
阅读全文
摘要:关于环境: 本文中的实战都是在docker容器中进行的,容器的出处请参照 "《在docker上编译openjdk8》" 一文,里面详细的说明了如何构造镜像和启动容器。 在上一篇文章 "《修改,编译,GDB调试openjdk8源码(docker环境下)》" 中,我们分析了虚拟机启动的代码,在阅读JLI
阅读全文
摘要:在上一章《在docker上编译openjdk8》里,我们在docker容器内成功编译了openjdk8的源码,有没有读者朋友产生过这个念头:“能不能修改openjdk源码,构建一个与众不同的jdk“,今天我们就来阅读一些openjdk的源码,再尝试做些小改动并验证。 我们先编译openjdk: 首先
阅读全文
摘要:以前曾经试过在VMware上安装linux,再在linux上编译openjdk8,但是每次都不顺利,例如linux环境,预装依赖软件,openjdk源码的选择等环境都会遇到问题,一旦失败再重新开始挺费时间的,现在用docker就省事多了,镜像和容器的创建和删除都比较简单干净,专心做好Dockerfi
阅读全文
摘要:"《Docker远程连接设置》" 一文讲述了开启Docker远程连接的方法,但那种方法不安全,因为任何客户端都可以通过Docker服务的IP地址连接上去,今天我们就来学习Docker官方推荐的安全的远程连接方式:TLS加密连接,通过证书来保证安全性。 官方文档 这里是官方的权威文档:https://
阅读全文
摘要:入手了树莓派4B,我对它的定位是作为一个Docker实验环境,平时用到的镜像多为Java服务端常用的技术、以及自己作的Java应用镜像,因此宿主机需要64位操作系统,而树莓派官方操作系统只有32位的,只能去网上找第三方的了。 前提条件 本次安装需要您提前准备以下内容: 1. 树莓派4B; 2. 可用
阅读全文
摘要:本文是《spring cloud kubernetes实战系列》的第六篇,主要内容是在kubernetes上部署一个java web应用,该应用使用了spring cloud kubernetes框架,可以使用kubernetes的configmap; 系列文章列表 1. "《spring clou
阅读全文
摘要:本文是《spring cloud kubernetes实战系列》的第五篇,主要内容是在kubernetes上部署一个SpringCloud Gateway应用,该应用使用了spring cloud kubernetes框架,可以将请求转发到kubernetes环境中的其他服务上; 系列文章列表 1.
阅读全文
摘要:Spring Cloud Gateway是Spring Cloud技术栈中的网关服务,本文实战构建一个SpringCloud环境,并开发一个SpringCloud Gateway应用,快速体验网关服务; 环境信息 1. 操作系统:win10(64位) 2. JDK:1.8.0_181 3. Mave
阅读全文
摘要:本文是《spring cloud kubernetes实战系列》的第四篇,主要内容是在kubernetes上部署两个应用:Web Service和Account Service,通过spring cloud kubernetes提供的注册发现能力,实现Web Service调用Account Ser
阅读全文
摘要:在 "《你好spring cloud kubernetes》" 一文中,对spring cloud kubernetes这个SpringCloud官方kubernetes服务框架有了基本了解,今天来小结此框架涉及的关键技术,为后面的深入学习做准备; 系列文章列表 本文是《spring cloud k
阅读全文
摘要:关于spring cloud kubernetes spring cloud kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用运行在kubernetes环境,并且提供了通用的接口来调用kubernetes服务,GitHub上官
阅读全文
摘要:关于spring cloud kubernetes spring cloud kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用运行在kubernetes环境,并且提供了通用的接口来调用kubernetes服务,GitHub上官
阅读全文