在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,如果数据库表结构更新了还得手动更新维护到文档中,很是繁琐。 无意之间发现了github上面有个人写了一个小工具专门来做这个事情,名字叫screw(螺丝刀),用了下很不错。这里特意记录一下。

工具的github地址:https://github.com/pingfangushi/screw

阅读全文 »

MkDocs是一个快速、简单、华丽的静态网站生成器,适用于构建项目文档。文档源文件以Markdown编写,并使用一个YAML文件来进行配置。 MkDocs生成完全静态的HTML网站,你可以将其部署到GitHub pages、Amzzon S3或你自己选择的其它任意地方。

MkDocs有一堆很好看的主题。 官方内置了两个主题: mkdocsreadthedocs, 也可以从MkDocs wiki中选择第三方主题, 或者自定义主题

阅读全文 »

目前市场上主流的 第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix。 最近由于Netflix公司宣布Spring Cloud Netflix 系列技术栈进入维护模式,于是采用 Spring Cloud Alibaba 方案来替代。

我们建议对这些模块提供的功能进行以下替换

CURRENT REPLACEMENT
Hystrix Sentinel/Resilience4j
Hystrix Dashboard/Turbine Micrometer + Prometheus
Ribbon Spring Cloud Loadbalancer
Zuul 1 Spring Cloud Gateway
Eureka Nacos Discovery
Spring Cloud Config Nacos Config

出自【官方新闻】Spring Cloud Greenwich.RC1 available now

阅读全文 »

Kubernetes是一个全新的基于容器技术的分布式架构解决方案,是一个可移植的、可扩展的开源平台, 用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。

阅读全文 »

这里总结常用软件的容器化安装步骤,环境为CentOS7。

环境准备要先安装Docker软件,配置好国内加速镜像,这个可以参考我的Docker教程入门篇。这里不再多讲。

这里演示如何在CentOS7上面通过Docker安装MySQL8版本。

拉取镜像文件:

1
docker pull mysql/mysql-server

启动镜像文件:

1
2
3
4
docker run -d -p 13306:3306 --name mysql \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
mysql/mysql-server
阅读全文 »

除了 overlay,docker 还开发了另一个支持跨主机容器网络的 driver:macvlan。

macvlan 本身是 linxu kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 即多个 interface,每个 interface 可以配置自己的 IP。macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络就不奇怪了。

macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge, 而是直接通过以太 interface 连接到物理网络。下面我们就来创建一个 macvlan 网络。

阅读全文 »

前面已经学习了 Docker 的几种网络方案:none、host、bridge 和 joined 容器, 它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案。

跨主机网络方案包括:

  • docker 原生的 overlay 和 macvlan。
  • 第三方方案:常用的包括 flannel、weave 和 calico。

docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题了: 如此众多的方案是如何与 docker 集成在一起的?

答案是:libnetwork 以及 CNM(草泥马?)。

阅读全文 »

前面的实验都是在一个host中,而真实环境中肯定会有多个主机。 容器在这些 host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host。

对于这样一个 multi-host 环境,我们将如何高效地进行管理呢?我们面临的第一个问题是:为所有的 host 安装和配置 docker。 如果一个个去安装肯定很麻烦又容易出错,手工方式效率低且不容易保证一致性,针对这个问题,docker 给出的解决方案是 Docker Machine。

阅读全文 »