/images/avatar.jpg

Java经典回顾之Java Web

/images/java-web-develop.jpg

本文环境:

  • OS:Ubuntu 18.04.4 LTS
  • Java版本:1.8.0_221

Java Web

虽然我们现在会用SpringBoot快速创建一个Web Demo,但是基础不能忘(SpringBoot或者SpringMVC都是封装后的产物),下面就让我们回顾一下一个最基本的Java Web项目。

一步步自己做个Docker之Cgroups

/images/docker-logo.png

本文环境:

  • OS:Ubuntu 18.04.4 LTS
  • Golang版本:1.12.13

什么是Linux Cgroups

Linux Cgroups(Control Groups)提供了对一组进程及将来的子进程的资源限制、控制和统计的能力,这些资源包括CPU、内存、存储、网络等。本质上来说,Cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

Java之GC

/images/gc-java.png

GC

GC就是垃圾回收(Garbage Collection),如果你写过C++或者C程序的,你就会知道new一个数据后,就需要delete它的内存,这就是手动管理内存,但这样如果你粗心点的话,就容易造成内存泄露,所以就有了自动垃圾回收,也就我们这里所讨论的GC。Java的GC会对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,防止出现内存泄露和溢出问题。
其实GC很早就有了,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。

一步步自己做个Docker之Go调用Namespace

/images/docker-logo.png

本文环境:

  • OS:Ubuntu 18.04.4 LTS
  • Golang版本:1.12.13

Golang

Go语言是Google开发的一种静态类型、编译型的高级语言,它设计的蛮简单的,学过C的话,其实上手Go很快的,当然相比于C的话,Go有垃圾回收和并发支持,所以写起来心智负担更低一点。
对于Go的安装和配置,我以前写过一篇文章——go语言基本配置,我这里就不在赘述了。Go1.11增加了go modules,使用它的话,就没必要一定要把代码放到GOPATH下面啦~(≧▽≦)/~。 go modules详细 使用请参考go mod 使用

https深入分析

https

https就是在http的基础上又增加了一个TLS层,它就是一个套壳协议。

加密和解密

https的发展和密码学的发展是分不开的。加密方式可以大体分为对称加密和非对称加密

基于Zookeeper的分布式锁

Zookeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。 由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。