微服务
静谧之心
专业摩的佬
业余吉他手
退役喷子
展开
-
nginx配置静态资源缓存, 同时配合k8s的SVC(core dns)实现负载均衡
最近发现以上线的tomcat web服务静态资源加载比较慢, 而且每次都会重新从服务端拉取, 这里肯定是有缺陷并且需要改进的. 然后决定使用nginx解决, 通过配置静态资源缓存实现动静分离, 同时发现k8s的dns解析果然简单粗暴, 非常实用, 直接无侵入式的实现了nginx的负载均衡(通过在server块的地址里直接配置SVC), 搞定!后面我也会单独写一篇k8s的coredns/kubedns的工作原理, 和大家一起探讨.下面是详细的配置文件Nginx.conf# 静态资源加速, 动静分离原创 2021-06-17 14:17:03 · 1816 阅读 · 2 评论 -
已经用k8s来部署运维各个微服务的组件,是否可以不用整套微服务?
https://www.zhihu.com/question/430048535/answer/1582533126可以,但要看情况。以主流的SpringCloud为例,其提供的能力与Kubernetes既有重合也有互补,我们举几个例子逐一分析微服务各个核心组件。微服务网关网关几乎不涉及业务部分,各种实现也非常多,选哪个看业务契合度了。但Spring Cloud Gateway不能作为Kubernetes Ingress Controller,如果用不兼容Ingress的框架作为网关层,可能会损失一原创 2021-05-06 13:37:36 · 30942 阅读 · 14 评论 -
k8s彻底删除指定pod
kubectl删除pod的指令kubectl delete pod <podname> -n <namespace>但是很多情况下, 上面的命令和k8s 的容灾机制冲突了, 也就是说, k8s会误认为这个pod异常挂掉了, 然后立即启动个新的pod, 从而导致了春风吹又生的情况.既然理解了问题根源, 那我们只需要先撤销掉该pod的容灾机制, 比如删除他的deployment机制.查看所有deployment 信息kubectl get deployment -n <原创 2021-03-29 17:00:24 · 7291 阅读 · 0 评论 -
什么是云原生?
云原生从字面意思上来看可以分成云和原生两个部分。云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS,、PaaS和SaaS。原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。那具体要怎么利用呢,请参考下图:微服务微服务解决的是我们软件开发中一直追求的低耦合+高内聚,记得有一次我们系统的接口出了问题,结果影响了用户的前台操作,于是黎叔拍案而起,灵魂发问:“为啥这两个会互原创 2021-02-07 14:11:29 · 706 阅读 · 0 评论 -
Spring Cloud Gateway 路由谓词工厂详解
Predicate是Java 8提供的一个函数式编程接口。谓词工厂…谓词工厂…, 听着玄乎, 其实就是if条件, 叫它trigger也挺合适谓词工厂有很多种AfterBeforeBetweenCookieHeaderHostMethodPathQueryRemoteAddr路由配置的两种形式1. 路由到指定URL示例1:通配spring: cloud: gateway: routes: - id: {唯一标识} uri:原创 2020-11-26 15:30:24 · 753 阅读 · 1 评论 -
SpringCloudGateway 实现微服务名称隐藏, url保护, token鉴权
在微服务中我们最好是要讲微服务名字隐藏起来, 这个demo中我使用了url转发实现,yml 和 过滤器代码如下.server: port: 8888spring: application: name: pns-gateway cloud: nacos: discovery: server-addr: localhost:8848 # register-enabled: true gateway: disc原创 2020-11-26 13:58:40 · 2136 阅读 · 1 评论 -
Unable to find RoutePredicateFactory with name path
解决方法:predicates:- Path=/payment/get/**P 一定要大写原创 2020-11-26 12:18:19 · 6112 阅读 · 14 评论