陈志军

物来顺应,未来不迎,当时不杂,既过不恋


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索

Golang 基础入门

发表于 2019-07-14 | 分类于 Go | 阅读次数

Golang 基础入门

了解任何事物首先得了解一下它的历史。golang 在2007年就开始开发,在09年开源,并且在12年发布了第一个稳定版本GO 1。今年19年,go这些年的发展是很快的,目前的版本是go 1.12.7,目前go的开发节奏是半年发布一个版本。并且golang承诺,go的更新时兼容之前的版本的。

Golang 安装

在golang的官网golang.org下载最新版本的golang或者你需要的版本。接下来如果是windows的机器,那么只需要一路next就行了,之后在c:\\go文件夹下就可以了。如果是Linux系统,只需要将tar.gz包解压到自己工作的位置,然后将$GOLANG_PATH\bin加入到path就可以了。

阅读全文 »

Java 类转 Json 时属性名使用下划线

发表于 2019-07-06 | 分类于 Java | 阅读次数

Java 类转 Json 时属性名使用下划线

很多时候和其它系统对接的时候,不太喜欢用驼峰的方式,毕竟如果是给前端的api,写个驼峰总感觉有点怪异,总喜欢将属性使用下划线。也就是一个bookName,给前端的时候是:book_name,当然如果是后台系统,还是使用驼峰啊。

Java 统一 json 为下划线

在 Java 中有两种方式可以实现这种方式,一种是全局的,一种是局部。

阅读全文 »

Java Enum 与 Json 的互相转换

发表于 2019-07-06 | 分类于 Java | 阅读次数

Java Enum 与 Json 的互相转换

在Java中使用Enum的频率很高,我们也经常使用 Enum 作为类的一个属性定义。那么如果需要将Enum转换成Json或者将Json传转换成Enum该怎么操作了?接下来我们看一下。Enum序列化成Json的几种方式。

本实例使用的是jackson的包,用的是ObjectMapper.

首先我们定义一个类Instance,里面有一个Enum的参数: state ; 在这里我们为了方便观察几种不同 Enum 的json序列化方式,state定义为Object,Instance类定义如下;

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
28
29
30
31
32
33
34
35
package me.chenzhijun.enumjson;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Instance {
Object state;
private String bookName;

public Instance(Object state){
this.state=state;
this.bookName="《Java枚举类-json转换》";
}

public Instance() {
}

public Object getState() {
return state;
}

public void setState(Object state) {
this.state = state;
}

public String getBookName() {
return bookName;
}

public void setBookName(String bookName) {
this.bookName = bookName;
}
}

阅读全文 »

MySQL Autocommit

发表于 2019-06-30 | 分类于 MySQL | 阅读次数

MySQL Autocommit

最近遇到一个问题,在测试环境没有重现,但是在生产环境就频繁出现。问题的现象时,当我们在生产页面添加一个用户或者一条记录的时候,刷新页面始终是为空的数据,也就是数据没有入库,但是偶尔它又有数据。这个问题就很奇怪。后来追踪到代码的时候发现代码层没有做事务的控制,完全交给了数据库去管理,这个时候如果代码从db申请一个连接,然后完成操作之后,其实是否真实的commit是要看数据库的操作的。MySQL默认的配置中是将autocommit设置为1,也就是默认打开,但是我们公司的dba设置中,统一是0也就是关闭状态的,所以导致了这次事故的发生。作为一个程序员来说,我觉得,应该是要自己在业务逻辑层面来控制,不应该交由db去管理,这种行为有点可耻。

Linux 工具-tar

发表于 2019-06-30 | 分类于 Linux | 阅读次数

Linux 工具-tar

tar 命令应该是我们经常用的了,它主要的功能是用来对文件的解压缩操作。如果要看tar的具体操作可以使用:man tar,Linux的发行版本默认都会有 tar 命令

解压文件

tar 常用来解压tar.gz,tar的文件。使用的方式:tar -zxvf xxx.tar.gz

压缩文件

通常我们也会有需要将多个文件压缩成一个文件的需求,比如传输文件。这个时候我们就可以使用tar -zvcf xxx.tar.gz file-dir-path1 file-dir-path2 file-dir-path-n 其中path1,path2,path-n可以是多个或者单个。

Linux 工具-socat

发表于 2019-06-30 | 分类于 Linux | 阅读次数

Linux 工具-socat

socat是一个多功能的网络工具,官网:http://www.dest-unreach.org/socat/

安装socat

安装方式很简单:yum install -y socat,就可以了,当然如果是ubuntu的机器就是用apt

使用socat

公司内部的网络限制比较严格,只有一些常用的端口能正常访问,因此调试的时候非常麻烦,比如你的应用程序端口是19995,但是公司只能是8080来访问,这个时候怎么办?使用nginx或haproxy当然可以,但是麻烦啊,配置搞一堆。。但是使用socat就很方便了:socat TCP4-LISTEN:{port1},reuseaddr,fork TCP4:{ip:port2} ,比如你有三台机器A(127.0.0.1);B(127.0.0.2);C(192.168.1.1)。B能访问A的8080端口,但是不能访问C的9090端口,而服务又监听的是C的9090端口,A能访问C的9090端口。所以很当然会想到B–>A:8080–>C:9090。也就是在A做一层反向代理。socat就是这样的。在A上我们执行:socat TCP4-LISTEN:8080,reuseaddr,fork TCP4:192.168.1.1:9090。然后B就访问A:8080,就能访问到C的9090端口了。

Docker 镜像仓库清理

发表于 2019-06-30 | 分类于 Docker | 阅读次数

Docker 镜像仓库清理

公司使用registry作为镜像仓库管理,由于只对内使用并且只暴露给jenkins,不对其它人公开,因此也就没有做registry的限制。不过由于我们在jenkins构建的时候使用docker 的一个插件,但是我们公司又系统在构建的时候不还tag,因此造成同一个名字有很多历史的layer都保存在了镜像仓库中,占用的空间随着时间越来越大。经过这次清理,由原来的占用1.9T清理空间到占用195G,效果还是非常的明显。

清理的步骤如下,下面的步骤适用于镜像名和tag都相同,然后重复push的情景下:

阅读全文 »

Docker 与 Linux Namespace && Cgroups

发表于 2019-06-30 | 分类于 Docker | 阅读次数

Docker 与 Linux Namespace && Cgroups

什么是Docker?

不得不说这几年技术领域最火的就是“容器”这个词了。而谈到容器,大家的第一反应就是 Docker ,Docker 已经再很多人心中成了容器的代名词。那么Docker到底是什么?Docker能为我们带来什么?

官网上用来解释Docker的一句话:Docker is a platform for developers and sysadmins to develop, deploy, and run applications with containers。Docker 就是一个开源的工具,将我们的应用打包成标准的镜像格式,并且以容器的方式运行。容器化的越来越流行,带给我们的优势也是非常多:

  1. 灵活性:再复杂的应用都可以被容器化;
  2. 轻量级:容器利用共享的是主机内核;
  3. 即时性:可以随时部署更新和升级;
  4. 通用性:一次构建,到处运行;
  5. 伸缩性:控制容器副本数量来任意伸缩;
    阅读全文 »

SpringCloud 集成 Consul

发表于 2019-05-31 | 分类于 SpringCloud | 阅读次数

SpringCloud 集成 Consul

SpringBoot ,SpringCloud 可以说是在 Spring 里面最流行的,确实它的上手要比以前开发真的方便很多,约定优于配置。

springcloud可以理解成基于springboot的各种解决方案。

集成consul

我们没有使用eureka作为注册中心,而是使用consul,为什么了?因为eureka停止更新了。嗯,是的,如果没有人继续维护了,那我就觉得使用起来就会有局限性,这个不是在前期,而是在后期。而且官方都不更新维护了,以后我发现bug,都没有提PR的地方了~~~~嘿嘿。其实个人觉得注册中心以后可能会下沉,比如现在的k8s,就已经在底层平台解决了服务发现与注册的问题。当然那是扯远了,我们暂时还是先用consul做我们的注册中心,毕竟一套k8s也并不是那么好玩的。

在官网下载consul的安装包,然后使用consul agent -dev我们就可以在通过http://IP:8500端口来访问了。

阅读全文 »

Linux 创建和扩展逻辑卷

发表于 2019-05-24 | 分类于 Linux | 阅读次数

Linux 创建和扩展逻辑卷

最近遇到一个事,以前可能是给了一个大磁盘,然后我们全部格式化,一起挂载上去。后来发现用完了,扩展起来不是特别好扩展。
所以就找到了一个新的方式,我们使用逻辑卷来操作我们的磁盘。

准备

  1. 一台centos7主机
  2. 两块空盘

增加逻辑卷

阅读全文 »
1…456…18

180 日志
41 分类
70 标签
RSS
GitHub GitEE
推荐阅读
  • 陈志军的个人站
© 2017 - 2023 陈志军
由 Hexo 强力驱动
主题 - NexT.Muse