
后端
文章平均质量分 93
嗡汤圆
这个作者很懒,什么都没留下…
展开
-
经纬度逆编码方法与性能优化
1.需求与即有方案本文需求来源于基础地理信息服务,需要将用户设备采集的经纬度信息转换为所处的行政区域。以往的方式是有以下几种1)直接使用高德web api 中的逆编码方式获取此方法问题在于高度依赖网络调用,难以实现高并发、快速查询。且高德web api有调用次数限制,无法做到无限使用。2)从网络上搜集行政区域数据,并且查询其中心坐标,计算用户传入坐标与中心坐标最近的区域作为逆编码结果此方法的问题在于,数据陈旧,无法有效更新,其次,以中心点坐标距离作为判断依据,对于行政区不规则边界而言,精度原创 2021-08-03 15:25:56 · 957 阅读 · 0 评论 -
基于SpringCloud微服务的服务平台搭建的一些总结
工作上项目的后台进行微服务改造后已经平稳运行将近1年了,起初项目为若干个单体web应用组成,之后由于上线App,需求的多样性和对于需求的响应速度有了更高的要求,因此为了快速响应需求变化,将后台进行微服务化改造。总的来说,改造初期由于既有系统我都非常熟悉,因此改造和迁移都比较顺利。在微服务架构的帮助下,新接入业务可以更专注于服务的实现,同时各个服务的功能也可以进行快速整合。目前平台的研发告一段落,后...原创 2018-07-11 16:41:05 · 7758 阅读 · 0 评论 -
基于Zookeeper的定时任务应用改造和高可用部署
前言很多应用场景下需要使用定时任务,本文不讨论定时任务的实现,而是讨论在简单的定时任务基础上,如何实现高可用部署。比如有个结账服务在每天0点对前一天的交易进行结账处理,普通的定时任务下可能只能运行一个结账服务实例,否则会结两次帐,但仅部署一个实例则不能保证结账服务的稳定运行。为解决这个问题比较合适的方式是将这个计算加入工作流(airflow、XXL-job等),如果是新增业务来说比较合适,...原创 2018-07-24 16:08:30 · 4550 阅读 · 5 评论 -
SpringCloud微服务迁移至Kubernetes实践
SpringCloud微服务迁移至Kubernetes实践前言原SpringCloud基础上的微服务已稳定运行近1年,遗留了一些问题不太好处理,如下:客户端侧负载均衡在服务实例故障下线时候,不能及时发现,导致请求到故障实例地址造成请求错误,若增加请求重试配置,对于非幂等接口处理困难。基于SpringCloud Config的配置中心有时候会有不及时刷新svn上的配置信息的情况(需要重新c...原创 2018-09-18 13:23:23 · 14727 阅读 · 18 评论 -
高级点的 If else: 在Spring中使用责任链
高级点的 If else: 在Spring中使用责任链场景说明背景难点代码说明要点关键代码接口&抽象类具体处理节点举例链条配置注入&使用总结场景说明背景本文的背景: 需要开发一个微信公众号后台,对用户输入的关键词进行相应的回复。如果采用传统的If else,会发现大量的判断分支和业务实现代码混合在同一个类中,在多人开发时候极易出现代码冲突,切代码难以阅读,同时在分支出现调整...原创 2019-01-15 15:04:35 · 3463 阅读 · 4 评论 -
Kubernetes多主Master方式部署
背景Kubernetes初学,在集群上测试部署了一套Kuberntes的单Master版本,并在其中部署了我们的一整套微服务,测试环境平稳运行了几个月,期间有些Worker节点也偶尔挂了几次,都没有影响到服务的正常运行,都能快速进行故障迁移,算是尝到了一点甜头。但是在今年年初Master节点由于内存不足出现了故障,却使整个微服务无法正常运作造成的影响巨大。这于之前了解到的情况,即:“maste...原创 2019-03-28 15:18:09 · 10503 阅读 · 2 评论 -
Kubernetes中traefik的会话保持和负载均衡策略配置方式
Traefik是一个开源的反向代理工具,在Kubernetes集群内充当Ingress的角色,具有高性能,配置灵活,可根据Kubernetes服务动态配置等优点。官方文档: TraefikTraefik的默认配置为不做会话保持,即同一个用户的请求会在后端应用的不同实例之间切换。对于需要通过Session维持登录状态的服务就会出现登录无效的问题。而Traefik对于其配置教程在官方文档中Kube...原创 2019-03-28 15:52:13 · 4487 阅读 · 0 评论 -
结合Spring Cloud Zuul 与 Kubernetes的灰度发布测试方法
虽然Kubernetes自身支持通过Label改变服务(Service)与应用实例(Endpoint)的对应关系从而做到统一服务的版本区分,但是对于从SpringCloud微服务迁移过来的项目而言,我们的很多配置暂时控制的比较死,况且将灰度版本与生产版本已Namespace的形式分开也有助于更好的资源隔离。因此在已通过Namespace隔离生产与灰度的环境前提下,我们的灰度测试方法说明如下。1...原创 2019-05-22 18:02:40 · 1395 阅读 · 0 评论