在/opt/目录下创建kong文件夹,然后创建一个docker-compose.yml文件并编辑
在docker-compose.yml添加如下配置(20220528亲测可用)
假设使用的是本地搭建
使用浏览器访问127.0.0.1:1337
注:端口号在docker-compose.yml中指定了1337
若是使用云服务器,注意做好DNS解析以及Nginx配置
这里给出一份可用的kong.conf
使用浏览器访问kong.YOUR_DOMAIN:1337
打开界面后,是要创建一个管理员账号的,按说明填写即可
先理解一下概念:
我们现在操作的可视化平台是Konga
Konga通过调用Kong的admin url,对Kong网关进行配置管理
所以这一步我们需要将Konga和Kong搭上线
在Connection页面配置要管理的Kong网关
主要填写参数说明:
Name:必填,唯一,用于备忘
Kong Admin URL:Kong网关的管理路径,默认端口是8001,在docker-compose.yml可修改对外暴露的端口号
这里有个提示很显眼:Kong's admin API should not be publicly exposed
故我们在云服务器部署时,都应该注意8001的这个端口不应随意暴露出去,以免发生黑客攻击风险
进入Service菜单,点击 ADD NEW SERVICE(添加新服务)
这里我们假设要代理某度的服务
主要填写参数说明:
Name:非必填,服务名称,用于备忘这是一个什么服务
Protocol:必填,填写http或https,指请求转发到该服务时,使用哪种协议
Host:必填,填写被代理的主机地址
Port:必填,填写被代理的主机的端口号,默认80
点击刚才创建的服务,点击进入Route管理界面
点击ADD ROUTE
主要填写参数说明:
Name:非必填,路由名称,用于备忘识别这是一个什么路由
Paths:这是重点!具体看效果就明白了,这边添加“/”和“/api/baidu”,注意要回车
访问服务的接口为8000(在docker-compose.yml已配置)
若使用的是本地搭建
使用浏览器访问
若是部署到云服务器,并做好了域名解析
使用浏览器访问
都会被解析Route,指向对应的Service,返回的是某度的页面,搭建成功
当同一个服务为分布式或存在多个域名、ip时,我们可以通过配置Upstream,将这些服务统一起来
进入Upstream页面
点击ADD UPSTREAM
主要填写参数说明:
Name:必填,名称,用于关联Service中Host字段
进入刚添加的Upstream的Detail
进入Target管理页
点击ADD TARGET
主要填写参数说明:
Target:该服务具体的域名+端口,注意这里默认端口8000,故需要手动写80
Weight:权重
添加好后是这个样子
之后我们回到Service配置
将Host填写为刚刚命名,并保存
之后我们再次访问
能发现不仅能访问某度,还能访问到某奇广告网(因为baidu1.com、baidu2.com并不是某度搜索)
至于每次访问结果都有变化,是因为Upstream做了权重的负载均衡,因此实际访问的服务是
分布式系统的透明性大致包含:访问透明性;位置透明性;迁移透明性;重定位透明性;复制透明性;并发透明性;故障透明性。
系统,指能够完成一种或者几种功能的多个要素按照一定的规律组合在一起的结构。
分布式系统,泛指系统的各种 功能、特性、参数等,不是由个别要素实现,而是分布在整个系统任一位置的系统。特指建立在网络之上的软件系统。有一种说法:分布式系统是若干独立计算机的组合,这些计算机对于用户来说就像是单个相关系统。
分布式系统具备四个关键目标或者说特性:资源可访问,这是分布式系统最主要的目标;透明性,分布式系统需要将它的进程和资源实际上在多台计算机上分布这样一个事实隐藏起来;开放性,分布式系统根据一系列的准则提供服务;可扩展性,这包括规模上的扩展、地域上的扩展和管理的可扩展。
透明性,指本来是存在的事物或属性,但从某个角度看似乎不存在的现象。
分布式一个基本的特点是向用户隐藏系统的内部组织结构,各种计算机之间的差别以及计算机之间的通信方式的差别都被隐藏掉。用户无论在何时何地都能够以一种一致的和统一的方式与分布式系统进行交互。例如,打开手机浏览器,看到的东西可以来自全球各个地方,为了能够在手机上表现,需要许多诸如 基站、光缆、网关、服务器等等等等设备参与。而对用户来说,浏览网页,只是一个手机的功能。向用户隐藏 系统结构、不同设备之间的差别、以及相互的通信方式的特点,即分布式系统的透明性。
由于分布式系统的特性,导致参与系统的人或设备,都无法全面深入的了解系统的状况。以互联网为例:任何联网的设备或加入的信息,最终会导致什么情况,谁也弄不清。最多根据加入的状况,对可能出现的情况有一个基本的掌控。所以,虽然人类创造了分布式系统,但对分布式系统的特性则始终处在探讨中。
同样对于系统的透明性,只能有个大致的说法,而且根据不同的研究角度有不小的差异。一般认为分布式系统的透明性包括的特性有:
访问透明性:对不同的数据表示形式以及资源访问方式的隐藏;
位置透明性:用户无法判别资源在系统中的物理位置,这是通过命名来实现的;
迁移透明性:资源的移动不会影响该资源的访问方式;
重定位透明性:资源在接受访问的同时进行重定位,而不引起用户和应用程序的注意;
复制透明性:对同一个资源存在多个副本这样一个事实的隐藏;
并发透明性:访问共享资源的时候,让任何一个用户都不会感觉到他人也在使用自己正使用的资源;
故障透明性:用户不会注意到某个资源无法正常工作,以及系统随后从故障中恢复的过程。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)