钢钢更新

用行动改变世界,做个有情怀的技术宅

引言

相信很多技术同学在开发时都会使用虚拟机,配置好一个开发环境,以后使用时只需要启动虚拟机就好了。但虚拟机动辄几个GB,大一点儿的甚至几百个GB,而且只要其中任意的虚拟机文件损坏,整个虚拟机就没办法启动了。你可能说应该经常备份,这的确是个好主意。但有没有更好的办法呢?今天钢哥就带着大家了解一下Docker(容器),看看它是否比传统的虚拟机更适合我们。

什么是容器?

顾名思义,容器就是用来装东西的。我们平时喝水的杯子就是容器,只不过杯子这个“容器”是用来装水的,而我们这里的容器装的是应用程序。

容器有什么特点?

  • 自包含性:它打包了应用程序的所有依赖,可以直接运行;
  • 可移植性:容器可以在几乎任何地方以相同的方式运行,这就确保了在开发、测试和生产环境都可以拥有完全一样的运行环境;
  • 相互隔离性:多个容器间默认是相互隔离的,即使运行在同一台主机上;
  • 轻量级特性:秒级启动,占用资源少;

容器与虚拟机有什么区别?

很多同学会觉得,容器能做的事虚拟机也能做啊,到底有什么区别呢?

阅读全文 »

引言

钢哥注:MBA备考漫漫征途,只为追求更好的自己。以下是我自己纯手工整理的MBA备考思维导图,钢哥用它们顺利考入了复旦,希望对其他同学也能有所帮助。

阅读全文 »

钢哥的 Oracle APEX 系列文章:

钢哥注:本文是一篇翻译文章,原文作者:Joel R. Kallman(Oracle APEX 研发总监),原文请移步这里:“Is APEX Suitable for an Enterprise Setting?”。

很多人对 Oracle APEX 是否真的适合企业环境还心存顾虑,所以我觉得有必要做个解释。就我个人的理解,IT 行业从有狗那年起就没有银弹。不管是从前的 SOA、企业服务总线,还是现在的微服务架构、容器技术、无服务等。即使 BAT 这些一线互联网大厂,公司内部也存在很多不同的应用框架和技术栈。别人家的架构永远也只是别人家的,能借鉴的也就是个思路,而现在国内每天都在进行的各种“技术分享会”,也只能靠 “XX公司的技术架构演进之路”之类的话题来吸引人气,因为没有一个架构或技术适合所有的公司。架构或技术本身并没有绝对的好坏之分,只有适不适合。(想争论 PHP 是最好的编程语言的同学请无视我,谢谢)

言归正传,下面是主要译文。

Oracle APEX 18.1 最显著的新特性就是有能力消费多种远端数据源,从普通的 REST 数据源乃至基于 ORDS(Oracle REST Data Services)的远程 SQL。直到 Oracle APEX 18.1 之前,数据库连接(DB Link)还一直是访问远端 Oracle 数据库的最普遍方式。当然,这种数据库连接在云端环境是不存在的,而针对这方面的(功能)提升已然变成 Oracle APEX 18.1 的一个核心关注点。

阅读全文 »

钢哥的 Oracle APEX 系列文章:

引言

在这一章节里,钢哥将带领大家进一步优化我们的开发环境,让我们的免费开发环境更“生产”,优化思路和方法也完全可以用在生产环境。

优化 Tomcat

删除Tomcat自带的不必要的文件是有必要的,最大限度保证系统安全。

1
rm -Rf /u01/tomcat/webapps/examples

由于我们的 Oracle XE 数据库跟 Tomcat 都是开机自启动的,但在数据库启动完毕之前,部署在 Tomcat 服务器上的 ORDS 应用就会随着 Tomcat 的启动而进行初始化了,这时候初始化肯定不正常(连接池报错等),不得不重启 Tomcat 服务才行。所以我们要对 tomcat.service进行必要的修改,让tomcat等待数据库启动完毕再启动。

/etc/systemd/system/tomcat.service

1
2
3
4
[Unit]
Description=Apache Tomcat 8 Servlet Container
After=syslog.target network.target oracle-xe.service
Wants=oracle-xe.service

加载启动脚本,下次重启就会按照新的自启动脚本启动了。

1
systemctl daemon-reload
阅读全文 »

钢哥的 Oracle APEX 系列文章:

引言

在这一章节里,我们将一起动手安装Oracle数据库(XE)、APEX以及ORDS,并完成相关的设置。

友情提示:由于之前没有绑定阿里云的弹性公网IP,导致阿里云ECS在关机重启后IP地址会变化,这里只要简单把公网IP转换成弹性公网IP即可。弹性公网IP的好处是IP地址不会变化,需要的时候拿过来绑定到ECS等设备上即可,非常灵活。
更多关于阿里云弹性公网IP的介绍请移步这里

现在我们的ECS服务器已经转成弹性公网IP了,以后只要不解绑,这个公网IP地址就不会自己变化了。

言归正传,接下来我们开始今天的教程。

安装前准备工作

下载软件包

我们需要到Oracle官网下载如下软件,如果你还没有注册过Oracle账号,请先完成注册(免费的),登录后才可以下载。

截止到本文写作时间为止,APEX最新的版本是18.1.0.00.45,请下载All Language多语言版本,ORDS最新版本是18.1.1.95.1251。你下载的版本可能比钢哥的高,不过安装步骤是一样的。

阅读全文 »

钢哥的 Oracle APEX 系列文章:

引言

在这一章节里,我们将一起动手安装 Tomcat 以及 Nginx,并为后面的安装做一些初始化设置。

安装配置CentOS 7

在阿里云控制台购买并启动CentOS

之前说过,我们选择阿里云作为云提供商。注册步骤就不展开了,大家可以到阿里云官网进行注册。注册完账号并成功登陆控制台,点击左侧导航菜单云服务器 ECS,再点击创建实例按钮,如下图所示:

阅读全文 »

钢哥的 Oracle APEX 系列文章:

引言

钢哥:“接下来的几篇文章我会详细讲解如何在阿里云上安装部署一套完整的 Oracle APEX 开发环境(如果你想,完全可以直接当生产环境使用)。”

不了解什么是 Oracle APEX 的同学,请参考钢哥的上一篇博文:Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技

本文内容主要包括以下软件的介绍:

  • CentOS 7 操作系统(阿里云);
  • Nginx Web 服务器;
  • Apache Tomcat 应用服务器;
  • Oracle REST Data Services(ORDS);
  • Oracle XE 免费版数据库(Oracle Database XE);
  • Oracle Application Express 18.1(Oracle APEX);

如果你已经事先安装好了上述一些软件,可以跳过其中完成部分,仅安装缺失部分即可。

前提假设

本系列文章假设你已经熟悉Oracle系列产品(包括Oracle数据库,APEX,ORDS),至少知道它们是什么,但可能并不了解Linux操作系统的操作,以及如何在CentOS上完整安装APEX。

APEX工作示意图

这些组件的关系简单如下图所示:

上述提到的软件都是开源免费的,当然你也可以替换其中任意部分来实现同样的功能。比如:将Nginx替换成Apache http server(甚至直接用Tomcat做http服务器也可以,不过一般不建议这么做),或者用其他应用服务器(Oracle Weblogic,GlassFish)替换Apache Tomcat。操作系统也可以选择其他操作系统,只要可以安装Oracle数据库即可。

阅读全文 »

钢哥的 Oracle APEX 系列文章:

引言

不知不觉在Oracle ERP这个领域已经13个年头了,从刚毕业学习最基本的SQL、PL/SQL、Linux Shell脚本、Oracle Form、Oracle Report、Workflow、Discovery、Middleware (BPEL)、OBIEE、BI (XML) Publisher、OAF、ADF,到后来的环境搭建、克隆等应用DBA的工作,可以说要想成为一名合格的Oracle ERP技术顾问,要掌握的东西太多了,远不是一个普通互联网开发人员的技能可比的。

但随着互联网技术的崛起,新的开发框架和技术层出不穷。成熟的互联网架构的出现、前后端技术的分离、缓存的大量使用、微服务的兴起,动辄就提全栈开发等等,都使得今天的Oracle技术从业者无论从技术方面还是待遇方面,都受到了不小的打击(想想10年前一名Oracle ERP技术顾问的待遇,绝对比相同经验的Java开发人员的薪资高一倍不止)。很多以前的从事Oracle ERP开发的同事现在不是另谋高就,就是在维护一些古董级的项目,偶尔聊起前途也是一片唉声叹气,感叹生不逢时。

是否从事Oracle开发出路就一定越来越窄呢?答案肯定是否定的。Oracle的数据库至今为止还是市场占有率最大的数据库,而Oracle ERP领域也不是互联网技术可以简单比拟的,其复杂的业务逻辑和行业经验才是你最宝贵的资本。如何合理利用自己已有的知识和技能,在当今互联网当道的时代重新闯出一片天地,恐怕是大部分Oracle技术人员目前面临的困惑。

不可否认,Oracle的产品线非常丰富,但带来的问题是技术栈也非常杂。另外在其主打的Oracle ERP产品:Oracle Fusion Application技术选型和设计上有硬伤。当年(2009年)我第一次了解Oracle Fusion Application时,就已经预判到Oracle ERP要走下坡路了。虽然Java很好,但Oracle打开的方式不对,它选择了ADF作为开发框架,性能和扩展性大打折扣,非常差的用户体验使得Oracle在坚持了多年、投入了巨大的资源后不得不放弃继续开发Oracle Fusion Application,转而收购了云ERP厂商(NetSuite)作为现在主推的ERP产品,浪费了大量的时间和人力物力,令人惋惜。

不过Oracle众多的产品,有一个是非常好的。(其实叫产品也不太贴切,因为它既是产品、又是开发工具、同时又可以作为框架来理解)自从我10年前使用,到最近两年Oracle加速发展,使得这一产品迎来了新的春天,它就是今天的主角:Oracle Application Express(简称Oracle APEX)。

本文目的

本系列文章力求把我这些年使用 Oracle APEX 的经验积累沉淀下来,方便自己查询。同时也希望能为广大 Oracle 技术从业者带来一点儿灵感和思路,跟大家共同学习、共同进步!!
如果你满足以下任意一项:

  • Oracle Developer
  • Oracle DBA
  • Oracle ERP技术开发顾问

并且想要秒变全栈开发,一人把前端后端全搞定,just follow me!

阅读全文 »

背景

本文总结ElasticSearch的一些常用命令和用法,会长期更新,希望对大家有所帮助。

常见操作

新建映射(mapping)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
curl -X PUT 'localhost:9200/accounts' -H 'Content-Type: application/json' -d'
{
"mappings": {
"person": {
"properties": {
"last_name": {
"type": "text"
},
"first_name": {
"type": "text"
},
"sex": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"city": {
"type": "keyword"
},
"comment": {
"type": "text"
}
}
}
}
}'
阅读全文 »

背景介绍

该文档是在慕课网实战课程《2019版 微服务时代Spring Boot企业微信点餐系统》基础上总结而成,旨在记录Spring Boot一些相关知识,文章中涉及的代码都经过验证,可以直接使用。
该文档作为个人参考资料,会长期更新。

慕课网课程地址:2019版 微服务时代Spring Boot企业微信点餐系统

数据库设计

阅读全文 »
0%