问题复述
1 | npm install -g @vue/cli |
在我刚刚入职的时候,接手了一个距我入职有五年的一个系统代码,30w 行的java 再加上15w 行左右的jsp 页面,系统总行数在60w 行左右,而且还没有任何的文档,当初写这个项目的人已经离职了,只有一个还算是熟悉的人,但是出差了,也提供不了多大的帮助,就这样,我在60w 行的代码里开始了为期24天的遨游。
控制台输出的东西多而杂,并且伴随着系统内部的运行输出内容,各种各样的东西,并且由于是分布式的系统,界面上还会输出关于RPC 相关的信息,那个日子真的是不能看。
所以在我完成任务后,我找了这个时间来总结一把我的辛酸泪。
主要的目的:
官方Github 库:https://github.com/GoogleContainerTools/jib
示例Demo: https://github.com/vgbhfive/SpringBootDemo/tree/master/jibtest
如果你之前使用过Docker 来构建镜像,那么Jib 将极大的解放你的劳动,并且有极大的可使用性。
jib的引入非常简单,已maven plugin的方式集成到项目中,只需要在你的项目中引入下面代码即可。
1 | <plugin> |
这只是一个最简单的配置,详细的说明可以去看github jib详细说明
Java 网络API 允许我们通过套接字(Socket)打开或关闭网络连接,但所有的网络通信均是基于Java IO 类 InputStream 和OutputStream 实现的。
此外,我们还可以使用Java NIO API中相关的网络类,用法与Java网络API基本类似,Java NIO API可以以非阻塞模式工作,在某些特定的场景中使用非阻塞模式可以获得较大的性能提升。
通常情况下,客户端打开一个连接到服务器端的TCP/IP 连接,然后客户端开始与服务器之间通信,当通信结束后客户端关闭连接。
客户端通过一个已打开的连接可以发送不止一个请求。事实上在服务器处于接收状态下,客户端可以发送尽可能多的数据,服务器也可以主动关闭连接。
java NIO 主要由以下几个核心部分组成:Channels、Buffers、Selectors,这些构成了核心的API。
其他组件,如Pipe、FileLock等,不过是其他三个组件的工具类。
所有的IO在NIO中都是从Channel开始的。Channel有点像流,数据可以从Channel读到Buffer,也可以从Buffer写到Channel。
Channel的实现:FileChannel、DatagramChannel、SocketChannel、ServerSocketChannel,这些通道涵盖了UDP、TCP网络IO和文件IO,还有一些其他的接口。
Buffer的实现:ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer、ShortBuffer,这些Buffer涵盖了你能通过IO所能传送的所有数据类型:short、int、long、byte、char、float、double,还有一个MappedByteBuffer,这个用于表示内存映射文件。
Apache POI 是用Java 编写的免费开源的跨平台的Java API ,Apache POI 提供API 给Java 程序对Microsoft Office(Excel、WORD、PowerPoint、Visio 等)格式档案读和写的功能。
POI 为”Poor Obfuscation Implementation” 的首字母缩写,意为“可怜的模糊实现”。
https://github.com/vgbhfive/SpringBootDemo -> poidemo
NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009 年趋势越发高涨。
NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
NoSQL 指的是非关系型的数据库。NoSQL有时也称作Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL 用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
在计算机科学中,CAP 定理又被称为布鲁尔定律,他指出对于一个分布式计算系统来说,不可能同时满足以下三点:
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据CAP 原理将NoSQL 数据库分成了满足CA 原则、满足CP 原则和满足AP 原则三大类。