232. 微服务架构之zk集群部署

1. 微服务

1.1 介绍

微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通信。微服务的优点:应用解耦,可以单独升级,甚至不同模块之间可以编程语言不同;横向扩展方便,高可用。缺点:架构复杂,运维成本高

1.2 Dubbo微服务框架

阿里巴巴在2011年开源了Dubbo框架,虽然在2013年停止更新,但在2017年9月又重启维护并发布了新版本。目前已有很多的公司将自己的业务建立在Dubbo之上,同时阿里云也推出了企业级分布式应用服务EDAS,为Dubbo提供应用托管。Dubbo采用Zookeeper作为注册中心,RPC作为服务调用方式,致力于提供高性能和透明化的RPC远程服务调用方案。
• Provider:服务提供方发布服务到服务注册中心
• Consumer:服务消费方从服务注册中心订阅服务
• Registry:注册中心通知消息调用方服务已注册
• Monitor:监控计数
• 服务消费方调用已经注册的可用服务(RPC invoke)
在这里插入图片描述

2. Devops流水线

2.1 Jenkins老头

Jenkins是一款由Java编写的开源的持续集成工具。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins是一个有状态的应用,如果托管在K8S中,只运行一个副本,且需要持久化存储。
官网:https://jenkins.io/zh/
下载地址:https://jenkins.io/zh/download/
官方文档:https://jenkins.io/zh/doc/

2.2 Maven工具

Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。在Devops流水线中,参与Java程序构建工具常用Maven。
官网:https://maven.apache.org/index.html
下载地址:https://archive.apache.org/dist/maven/
基础教程:https://www.runoob.com/maven/maven-setup.html

3. 本次实战架构

在这里插入图片描述
集群规划

主机名角色ip
k8s7-11.host.comk8s代理节点1,zk0110.4.7.11
k8s7-12.host.comk8s代理节点2,zk0210.4.7.12
k8s7-21.host.comk8s运算节点1,zk0310.4.7.21
k8s7-22.host.comk8s运算节点2,jenkins10.4.7.22
k8s7-200.host.comk8s运维节点(docker仓库)10.4.7.200

4. 部署zookeeper

ZK集群是有状态的服务,其选择Leader的方式和ETCD类似,要求集群节点是不低于3的奇数个。

4.1 安装JDK 1.8

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

# cd /opt/src/
[root@k8s7-11.host.name /opt/src]# mkdir /usr/java
/opt/src]# tar xf jdk-8u221-linux-x64.tar.gz -C /usr/java/
[root@k8s7-11.host.name ~]# ln -s /usr/java/jdk1.8.0_221/ /usr/java/jdk

[root@k8s7-11.host.name ~]# tail -3 /etc/profile
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

[root@k8s7-11.host.name ~]# source /etc/profile
[root@k8s7-11.host.name ~]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

其他节点安装方式与此类似。。。。

4.2 安装ZK[11,12,21]

zk下载地址:https://archive.apache.org/dist/zookeeper/

$解压、配置
[root@k8s7-11.host.name /opt/src]# tar xf zookeeper-3.4.14.tar.gz -C /opt/
[root@k8s7-11.host.name /opt/src]# cd /opt/
[root@k8s7-11.host.name /opt]# ln -s /opt/zookeeper-3.4.14/ /opt/zookeeper
[root@k8s7-11.host.name /opt]# mkdir -pv /data/zookeeper/data /data/zookeeper/logs
[root@k8s7-11.host.name /opt]# cat /opt/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=zk1.od.com:2888:3888
server.2=zk2.od.com:2888:3888
server.3=zk3.od.com:2888:3888

$myid配置
[root@k8s7-11.host.name ~]# echo 1 > /data/zookeeper/data/myid
[root@k8s7-12.host.com /opt]# echo 2 > /data/zookeeper/data/myid
[root@k8s7-21.host.com /opt]# echo 3 > /data/zookeeper/data/myid

4.3 配置DNS解析
[root@k8s7-11.host.name /opt]# tail -3 /var/named/od.com.zone
zk1	           A    10.4.7.11
zk2	           A    10.4.7.12
zk3	           A    10.4.7.21

[root@k8s7-11.host.name ~]# systemctl restart named
[root@k8s7-11.host.name ~]# dig -t A zk1.od.com @10.4.7.11 +short
10.4.7.11
4.4 启动zk
[root@k8s7-11.host.name ~]# /opt/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@k8s7-11.host.name ~]# netstat -lntup|grep 2181
tcp6       0      0 :::2181                 :::*                    LISTEN      18970/java          

# 查看三个节点,其中一个为leader,其它为follower
[root@k8s7-12.host.com ~]# /opt/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: leader

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻花之梦~~

谢谢老板的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值