K8S-微服务调用及运行过程

为什么分析微服务过程调用

在实际的项目中,微服务之间涉及到业务代码的部分,调用逻辑非常复杂。对于工程师而言,熟悉组件之间的调用关系。方便之后的业务模块开发、以及集群部署与自动化编排过程中有非常大的帮助(基础)。并且能够非常请楚哪些应用应该对外,哪些可以不用对外以及服务是怎样存活。

  1. 在微服务中涉及的组件有:注册中心、配置中心、服务提供者、服务消费者、路由网关

本教案涉及的服务有以下几种:

注册中心服务、配置中心服务、服务提供者、服务消费者、路由网关服务

组件服务调用基本流程:

  1. 客户端浏览器输入htp:/gw.abc.com/passport/v1/auth/login?token=1231
  2. 访问网关负载均衡(7层)Nginx,Haproxy,公有云负载),通过负载均衡分发请求到spring cloud gateway网关
  3. 网关在接收到来自负载均衡的请求之后,根据url地址匹配到服务名称(先询问注册中心),调用后台的restTemplate服务
  4. restTemplate在接收到来自网关的请求以后,通过注册中心查询到服务列表,将请求服务列表中的服务,最后返回结果

组件内部接口调用流程

微服务实战

运行微服务(192.168.26.90)

安装JDK

[root@localhost ~]# rpm -ivh jdk-8u333-linux-x64.rpm 
警告:jdk-8u333-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:jdk1.8-2000:1.8.0_333-fcs        ################################# [100%]

[root@localhost ~]# vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_333-amd64
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH CATALINA_HOME
[root@localhost ~]# source /etc/profile

安装Nacos(单机)

官方网站 https://nacos.io/zh-cn/docs/deployment.html Nacos支持三种部署模式

  1. 单机模式 - 用于测试和单机试用。
  2. 集群模式 - 用于生产环境,确保高可用。
  3. 多集群模式 - 用于多数据中心场景。

单机模式下运行Nacos

Linux/Unix/Mac
Standalone means it is non-cluster Mode. * sh startup.sh -m standalone

[root@localhost ~]# unzip nacos-server-1.1.4.zip
[root@localhost ~]# cd nacos-server-1.1.4/nacos/bin
[root@localhost bin]# chmod +x *.sh
[root@localhost bin]# sh startup.sh -m standalone

         ,--.
       ,--.|
   ,--,:  : |                                           Nacos 1.1.4
,`--.`|   :                       ,---.               Running in stand alone mode, All function modules
|   :  :  | |                         ,   .--.--.    Port: 8848
:   |    | :  ,--.--.     ,---.  /   /   | /  /       Pid: 13150
|   :   ; | /          /     .   ; ,. :|  :  /`./   Console: http://192.168.26.90:8848/nacos/index.html
    ;.    ;.--.  .-. | /    /    | |: :|  :  ;_
|   | |    | \__/: . ..     /    | .; :       `.      https://nacos.io
   : |  ; . ," .--.; |   ; :__|   :    |  `----.   
|   | `--  /  /  ,.  |   | .|     /  /  /`--  /
   : |     ;  :   .      :    : `----  --.     /
;   |.     |  ,     .-./     /            `-----
---        `--`---     `----

[root@localhost bin]# ss -lntup |grep 8848
tcp    LISTEN     0      100      :::8848                 :::*                   users:(("java",pid=13150,fd=118))

登入界面 http://192.168.26.90:8848/nacos/ (初始账户密码nacos)

安装redis

[root@localhost bin]# yum  install redis -y
[root@localhost bin]# vim  /etc/redis.conf 
requirepass 123456
bind 0.0.0.0
[root@localhost bin]# chkconfig redis  on
[root@localhost bin]# systemctl start redis
[root@localhost bin]# ps -ef |grep redis
redis     14379      1  0 16:07 ?        00:00:00 /usr/bin/redis-server 0.0.0.0:6379
root      14383  11883  0 16:07 pts/1    00:00:00 grep --color=auto redis
经验分享 程序员 微信小程序 职场和发展