Choerodon猪齿鱼是一个开源企业服务平台,是基于Kubernetes的容器编排和管理能力,整合DevOps工具链、微服务和移动应用框架、来帮助企业实现敏捷化的应用交付和自动化的运营管理,并提供loT、支付、数据、智能洞察、企业应用市场等业务组建,来帮助企业聚焦于业务,加速数字化转型。简单地说,这个平台将微服务开发的特性和优点进行放大,将原本瀑布式的开发交付根据服务的颗粒细化,从而实现逐步开发,持续交付的过程。本文介绍的是开发人员如何搭建本地开发环境,开发Demo程序,测试与集成。
开发环境搭建
本章节讲述了Choerodon微服务框架开发微服务的一些软件依赖,以及如何在Windows环境下进行安装使用,本文使用了Git-2.9.2-64、JDK1.8.0_161、Maven3.5.2、Docker for Windows、IDEA18.1.4、Mysql5.6编写测试通过。
开发工具
- Git
- JDK 1.8.0 及以上
- maven 3.3 及以上
- Docker for Windows
- IDE
- Mysql
- Kafka
- Phpmyadmin (可选)
Git 安装
- 在 Git 官网 下载对应平台的 Git。
- 本地执行安装文件,安装 Git 环境。
- 配置完成后打开 git bash(随意找个文件夹右键) 执行
git
,有提示则说明环境安装成功。 - 配置本地git。
打开git bash 执行如下命令:
# 请将下面命令按实际情况进行执行
git config --global user.name "Your Name"
git config --global user.email "Your Email"
Java 安装
- 在 Oracle 官网 下载对应平台的 JDK 1.8.0 以上的环境。
- 本地执行安装文件,安装 JDK 环境。
- Win 在环境变量系统变量中 配置环境变量
JAVA_HOME
指向JDK安装目录,并将 path 配置 JDK 的环境变量 指向 JDK 安装目录下JDK/bin
, - 配置完成后打开 git bash 执行
java
,有提示则说明环境安装成功。(git bash执行会有乱码,cmd则正常)
Maven 安装
- 在 Maven 官网 下载对应平台的合适的 maven 版本的压缩包。
- 本地解压压缩包。
- Win 在环境变量中系统变量的 path 配置 maven 的环境变量指向 maven 解压目录下的
/bin
。 - 配置完成后打开 git bash 执行
mvn -v
,有提示则说明环境安装成功。
Docker for Windows 安装
- 在 Docker for Windows 下载安装包
- 本地执行安装文件,安装Docker
- 启动Docker,然后会提示启用Hyper-V需要重启
- 重启后Docker会自动启动
- 打开 git bash 执行
docker --version
,有提示则说明环境安装成功。 - 打开 docker for windows,并在General 中勾选
Expose daemon on tcp://localhost:2375 without TLS
注意要使用Docker for Windows,机器必须开启虚拟化支持,部分机型默认禁用,需进入bios进行设置,因各机型设置不相一致,在此不做详细说明(Win系统的机器必须是专业版,在bios里面设置重启)
IDE 安装
这里以idea 为例
- 在IDEA官网下载安装包
- 本地执行安装文件,安装IDEA
- 菜单栏File > Setting打开设置, Editor > Code Style > Line separator (for new lines): Unix and OS X (n)
- 确保idea使用utf-8编码
- 安装Docker插件。在File-Settings-Plugins中,搜索Docker integration,点击Install安装,并重启软件加载插件
- IDEA中配置Docker,在File-Settings-Build,Execution,Deployment-Clouds中,点击加号新建,会自动读取docker信息,直接保存即可
其他软件安装
除了基本的软件之外,其他基础软件可以通过官网下载安装包,也可以通过docker启动镜像。choerodon建议通过docker 启动。
- 在本地创建docker-compose的运行路径
- 编写docker-compose.yaml 文件
- 打开git bash 执行
docker-compose up -d
- 执行
docker ps
或docker-compose ps
查看容器是否启动
这里提供一份默认的mysql 配置和docker-compose.yaml 配置。
# mysql_db.cnf
[mysqld]
lower_case_table_names=1
character_set_server=utf8
max_connections=500
# docker-compose.yaml
version: "3"
services:
zookeeper-0:
container_name: zookeeper-0
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/zookeeper:3.4.10
hostname: zookeeper-0
environment:
- ZK_REPLICAS=1
- ZK_HEAP_SIZE=2G
- ZK_TICK_TIME=2000
- ZK_INIT_LIMIT=10
- ZK_SYNC_LIMIT=5
- ZK_MAX_CLIENT_CNXNS=60
- ZK_SNAP_RETAIN_COUNT=3
- ZK_PURGE_INTERVAL=1
- ZK_LOG_LEVEL=INFO
- ZK_CLIENT_PORT=2181
- ZK_SERVER_PORT=2888
- ZK_ELECTION_PORT=3888
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
command:
- sh
- -c
- zkGenConfig.sh && exec zkServer.sh start-foreground
volumes:
- "./kafka/zk:/var/lib/zookeeper"
kafka-0:
container_name: kafka-0
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/kafka:1.0.0
hostname: 127.0.0.1
depends_on:
- zookeeper-0
links:
- zookeeper-0
ports:
- "9092:9092"
command:
- sh
- -c
- "/opt/kafka/bin/kafka-server-start.sh config/server.properties \
--override zookeeper.connect=zookeeper-0:2181 \
--override log.dirs=/opt/kafka/data/logs \
--override broker.id=0 "
volumes:
- "./kafka/kafka:/opt/kafka/data"
mysql:
container_name: mysql
hostname: mysql
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./mysql/mysql_data:/var/lib/mysql
- ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf
停止容器通过命令docker-compose down
后续请参照基于Kubernetes的容器编排和持续交付的Choerodon平台的Demo程序开发一文。