- 博客(6)
- 收藏
- 关注
原创 golang微服务 使用Consul进行服务注册与服务发现
上述代码是对grpc服务层进行注册,对于web层来说,它和grpc服务层的区别在于,其健康检查可以直接配置一个接收"/health"的路由,处理这个请求时返回200的状态,这样就可以轻松的完成健康检查。下面是对注册服务封装成一个工具类。如果一个服务注册进了conusl的话,我们就可以通过服务名从consul中获取到对应的服务。
2024-06-22 13:27:14
215
原创 docker配置KONG KONG_DNS_RESOVEL时遇到的问题 DNS解析错误
但随着服务的数量越来越多,我们每次部署项目时都要修改每个网关里配置的路由中的ip地址,这从运维的角度来说是非常麻烦的。我们再说说DNS,这里的DNS和网络通信中的DNS有所异同,首先对于传统的DNS来说,它的作用是解析用户发来的域名,将其解析为ip地址和端口号返回给用户,用户通过ip和端口再访问对应的服务器。问题产生的原因,经过查证应该是因为docker自带的dns解析器和consul中的DNS解析器产生了冲突,具体的解决方法为:根据提示,我们将映射数据库的host地址改为我们的ipv4地址,即可。
2024-06-22 13:02:27
265
原创 使用docker配置网关时遇到的问题 konga无法连接到kong,且报错oh snop
值得一提的是,即便我们这样修改了限制,但是我们仍然无法使用127.0.0.1来使得konga成功连接kong,查证后,我的理解是:kong与konga都是docker中的两个容器,都存在于虚拟机中,使用konga的127.0.0.1是无法访问kong的127.0.0.1本身就是错误的。基于这一点,我们可以发现配置中的问题,我们先前的配置中,将主机的ip地址映射为127.0.0.1,代表的是宿主机的本地回环地址,也就是说映射的端口只能从宿主机本地访问,不能从外部网络访问。下面是最初构造命令,以作为对比。
2024-06-22 13:01:04
640
原创 微服务学习 kong网关的搭建
但是微服务的进程的离散的,是分布式的,IP地址和端口号是随意变化的,这就意味这如果不做任何配置,那么用户每次请求我们的服务都必须重新填写ip地址和端口号,这显然是不现实的。kong是基于Nginx_Lua,具有易拓展、高可用的第三方网关,它能够水平拓展多个服务器,这也就意味着比起Nginx,它能够更好的实现负载均衡。上述网关的作用中,我们很明显可以看到网关获取到了用户的请求。//这里会自动在PGsql中的kong数据库内配置好对应的表,以便kong能够使用,至此数据库的配置完成。5.konga的配置。
2024-06-22 12:59:30
1630
原创 golang gin base64Captcha生成验证码后通过redis存储 以及安全验证思路
1)验证码池冗余:可以预见的一个问题是,如果攻击者不断向我们的后端发起请求验证码的请求,即便我们设置了过期时间,但是在大量请求的情况下验证码池还是会冗余大量的验证码。因为邮箱是不变的,无论登录和注册,我获取验证码都是通过这一个邮箱号。为了解决这个问题,我选择的方法是:在原生的id后拼接标识符,以达到标识这个验证码对应的是哪一个接口的目的。这样一来,无论请求方如何请求我们的验证码,因为邮箱是不变的,且对于id来说是唯一的的,所以每次请求都会把上一次存储的id覆盖,也就意味着上一次请求的验证码是无效的。
2024-06-22 12:26:58
944
1
原创 微服务学习笔记
微服务可以看成是分布式的具体实现,在传统的单体式服务中,所有的客户端必须访问中心服务器,中心服务器通过处理,再将数据返回给对应的客户端,这里最明显的一个点就是所有这些处理都在一个服务(进程)内完成,即使现代的框架有使用模块化来解耦,但耦合度依旧很大。2.几乎不存在技术选型困难:以语言和框架为例,在微服务架构中,每一个服务都可以使用不同的语言开发(这也是因为存在rpc协议,使得不同语言之间可以无障碍交流),大大降低了技术选型的困难。4.技术选型困难,语言,框架的选择会直接决定系统成型后的质量。
2024-06-19 13:35:07
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人