前言

在上一篇博客(微服务系列-01直观感受微服务)中,我们感性的理解的微服务,大概了解了微服务长什么样子实现微服务需要解决那些技术问题微服务能够解决那些问题微服务与单体应用相比有哪些优缺点

写博客的原因是想把自己的知识点分享给大家,为了方便理解,用词可能会不太官方,希望大家多多包涵,如果大家发现博客中有错误,欢迎大家指正留言。

下面我们进入正题:客户端如何访问这些服务?

客户端如何访问这些服务?

客户端

我们先来明确一下什么是客户端,客户端包括PC端web页面,Android,IOS,Wechat applet(微信小程序)

微信客户端架构设计 微信客户端指的是哪里_IP


大家通过上面这幅图联想一下:我们平时都是通过电脑或者手机来访问后端服务的,那么PC网页,电脑APP是如何来访问后端的呢,比如登录这个操作,点击登录按钮,实际上就会去请求用户服务(http://192.168.0.1:7071/login)这个方法。也就是意味着PC端,移动端只要知道IP以及PORT(端口)就能去访问后端。那么现在我就可以说,我把这三台服务器的IP,PORT都记录在PC端和移动端不就好了吗。这么做合适吗?假如双十一来临,同一时间,用户活跃度,订单数量都增加了不少,一个用户服务,一个订单服务扛不住了,需要分别新增一台。

微信客户端架构设计 微信客户端指的是哪里_微服务_02


我继续将新增的IP:PORT写到PC端和移动端?

PC端还好说一些,我把IP和PORT新增进去,重启一下UI服务服务器,用户刷新的时候不就加上上去了吗。

那么移动端呢,更新APP吗。那么读到这里大家就会感觉这种做法似乎不太合适,API网关 就呼之欲出了。

微信客户端架构设计 微信客户端指的是哪里_微信客户端架构设计_03


我们只需要把IP地址和端口号都记录到API网关中,是不是上面的问题就都解决了呢。

API网关解决的问题

  • 将服务器所对应的IP地址和端口号从PCWEB和APP中剥离出来,为服务提供统一的入口,实现了解耦,降低程序的复杂度。
  • 大家还记得 重启一下UI服务服务器 更新APP 这两个词吗,这两步操作就是要PCWEN,APP发现新增的IP和端口号,那么API网关也应该自动发现新增的IP和PORT了。

当然现在API网关解决的问题不止这些,我们学习新技术是不可能一步到位的,我们先按照这个思路对微服务的整体骨架有一个比较清晰的了解,然后再去学技术的时候就可以事半功倍了。

API网关带来的问题

那么大家会发现API网关它只能有一个,如果有多个是不是就会重复 将新增的IP:PORT写到PC端和移动端 这个过程吗,所以API网关只能存在一个,如果API网关出现故障,那么就会被称为单点故障

读完这篇博客大家就会知道API网关应该在微服务的那个环节,起到了什么样的作用。这就是我想告诉大家的。

所以说:
问:客户端如何访问这些服务?
答:API网关。