King's Studio

King's Studio

Coding to change the world!

面试系列,JVM篇
什么是跨平台性,已经在Java中是如何实现的?平台可以指OS+硬件,所谓跨平台性,是指语言编写的程序,可以在多个系统平台上运行。 字节码是通过Java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序编译后的字节码文件了,即一次编译,到处运行。 JVM是跨平台的吗?不是的,Java 平台的核心是执行字节码的”虚拟机器”的概念。无论程序运行在哪硬件或操作系统下,此字节码都是一样的。虽然 Java 程序是独立于平台的,但执行这些程序的 Java 虚拟机代码并非如此。每个操作系统或者硬件上都有不同的虚拟机。 JVM是如何工作的?用户创建 aobing...
使用Elasticsearch的Java API实现复杂查询
上一篇我们总结了如何将MySQL的数据实时同步到Elasticsearch中,这一篇我们来总结一下当数据同步到Elasticsearch中后,如何使用Java API对Elasticsearch进行复杂查询,但实际工作中还没有遇到过特别复杂的SQL如何转化到Elasticsearch中,当然遇到这种情况一种解决方式是将数据库的查询结果直接存到一张表中,然后在Elasticsearch建立对应的索引,再对该索引进行查询;当然更直接的就是编写复杂的Java代码实现查询,这种情况我也还没有遇到。 前面我们已经讲过了如何将MySQL数据库的一张表映射到Elasticsearch的索引中,同时不建...
使用阿里开源神器canal将MySQL数据实时同步到Elasticsearch
最近工作中需要使用Elasticsearch作为搜索引擎实现海量数据的搜索功能,以前也对Elasticsearch做过介绍了,包括使用Docker快速部署Elasticsearch进行学习,这是第一次在工作中使用到,需要会的东西也相应的更全面一些,包括复杂的条件查询,分页查询等,这部分Elasticsearch的操作会放到后面的博客中进行专门介绍,包括使用kibana开发者工具快速操作Elasticsearch。在学会Elasticsearch的API之后,不禁就会思考Elasticsearch的数据源从哪里来呢,以前学习时并没有思考过这个问题,后来在架构师的提示下,思考了将MySQL数...
构建ELK日志搜索运维平台
新年第一篇博客,也是新年的第一个工作日,今天上班阅读(摸🐟)了不少的技术文章,突然发现自己Java领域的技术路线图根本没有走完,技术栈还有很大的填补空间,想着今年是提升自己技术的重要时间点,如果止步于此,今后的职业发展会受到很大的限制,不能仅仅只满足于工作够用,况且互联网技术本身迭代更新的速度非常快(毕竟开源大佬边工作边开发新技术),互联网人需要不断的学习新技术才能保证自己不被时代淘汰。大数据相关的技术路线进度缓慢,还有Java后端部分的权限控制、单点登录校验等内容都是今年需要完成的学习任务,甚至于面试相关的基础知识都需要恶补,全新的2021年,希望在工作和学习中能够不断充实自己。 E...
利用Jenkins一键多台服务器部署SpringCloud应用
上一篇我们总结了安装启动Jenkins,并使用Jenkins部署前后端项目,工作中还遇到了某一个SpringCloud服务负载压力过大,需要多台机器部署的情况,由于我在项目中负责了整个搭建的过程,因此在这边来做一个总结。 配置原理及效果展示首先我们要知道我们利用的是SpringCloud中的Eureka注册中心实现的负载均衡,具体操作是在两台不同的服务器中部署相同的一个服务,并且两个服务都注册到同一个Eureka上,Eureka会将注册的服务全部暴露出去,供外部访问,效果如下图: 在图中我们看到,主机名不同的两台服务器,两个相同端口相同服务名称的服务实现了负载均衡的配置,那么如何使用J...
Jenkins实现前后端自动化部署
在工作中第一次接触Jenkins,开始的时候只知道在提交代码到Git服务器后,需要在Jenkins管理页面点击对应的项目进行构建,后来在项目迁移服务器的时候学习了如何配置前后端自动化构建的流程,也对Jenkins有了更多的了解,这篇就对Jenkins的启动以及配置项目做一个总结。 Jenkins启动以及配置首先可以到Jenkins官网去查看Jenkins的jar包下载方式,地址放在这里:https://www.jenkins.io/download/ Jenkins安装我采用的是CentOS的Linux系统,因此选择对应的jar包类型下载到服务器即可,接下来我们编写一个脚本来做后台启动,...
2020年我的回顾
说太多抱怨的话已经没有意义了,我感觉这一年几乎所有人或多或少都被新冠疫情影响到生活,甚至有人为此丧命。到11月中旬之前,其实我的整个2020年的生活都挺顺利的,顺利地毕业,虽然和往常相比少了毕业的仪式感;顺利入职,能够很好地完成工作;顺利转正,得到领导的认可。一切从6月开始都按照正常的节奏在走,也许是刚进入社会的我过的太舒服了,生活需要磨练我,11月中旬蛋壳公寓也就是我租房的平台,传出暴雷的消息,一开始我很震惊,没想到这种事会来到自己身上,然后就是极度的焦虑,这种状态持续了一个月,这期间工作完全没有状态,每天要做的就是在群里浏览各式各样的信息,期盼问题能够解决。 可能这个世界上所有最好的...
Oracle数据库整体迁移并采用定时任务备份
项目过程中遇到云服务器切换的问题,因为之前的服务器资源被其他服务占用过多,因此需要将项目中用到的相关组件全部迁移到另一台新的服务器中,这中间遇到了很多问题,首先数据库迁移就是第一个遇到的问题,不仅是新的Oracle数据库安装,还需要将老数据库中的所有数据包括存储过程、索引、包等全部转存到新数据库。 Oracle数据库安装其实能够搜索出很多教程,但我这次推荐百度经验的一篇,我实际按流程操作过一遍的,当然其中也会遇到一定的问题,具体地址:https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html 按照完整的步骤安装,我只遇到...
文件上传结合SpringCloud的Feign进行服务调用
工作中一直使用的是SpringCloud,其中的多个组件的使用也已经有一段时间了,包括对组件的配置文件的编写,今天要讲的是SpringCloud中的一个远程服务调用的组件,使用Feign之后,我们调用Eureka注册的其他服务,在代码中就像各个service之间相互调用那么简单。那至于为什么要调用其他服务的接口,就是微服务架构的内容了,今天我讲的是我们项目中独立出来的文件上传模块,我们在项目中将其做成一个通用的接口,使得其他服务中有相同需求时,可以直接调用该服务的接口进行文件上传以及文件管理。 Feign简介Feign是Netflix开发的声明式,模板化的HTTP客户端,其灵感来自Ret...
avatar
金奇
Pay attention to me