微服务
文章平均质量分 85
cmlbeliever
改变世界需要你,行动吧!骚年!先改变自己...
展开
-
业务架构师职责
什么是业务架构师通常来说业务想清楚了需要什么能力,就会提需求给产品开始设计整个产品能力,产品同时也会找到对应的技术owner 协助进行,如提供技术角度的支持与意见。 这里的技术owner就可以理解为我们的业务架构师。 从项目立项到项目交付,贯穿整个项目生命周期。不仅要规划好整体项目能力,而且要熟悉其他依赖的业务模块逻辑,可以给出串联整个项目的架构方案。并不是所有的项目都是几百人日的,通常一个产品初期会有大量的投入,后期会进行迭代,每次迭代都需要技术owner进行业务拆解,这里的技术owner做的事情和产原创 2021-06-13 10:49:01 · 6935 阅读 · 0 评论 -
分布式数据一致性思考-B端系统一致性
目录背景什么是一致性?B端业务场景重试幂等并发小结总结背景已经好久没写博客了,看了下最近的一篇已经是去年的了,由于工作一直忙,没有抽时间来写(其实就是懒)。加上也没有觉得非常有收获的事情,所以就干脆没写了。最近在思考分布式一致性的理论与实现时,感觉自己有所收获,这里分享分享一下自己的经验。什么是一致性?至于原理什么的,这里就不赘述了,总的来说目前的分布式系统实现起来基本上都是基于BASE理论的,业务需要保持最终的一致性,说白了了是可以允许 中间过程的短暂不一致,只需要最后一致就好。一说到这个,很原创 2020-07-18 22:17:06 · 3841 阅读 · 5 评论 -
一个好用的分布式锁框架
介绍一个非常好用的分布式锁项目,支持ZK和Redis分布式锁实现,可以使用注解和代码的方式获取分布式锁,保证资源的互斥访问。支持功能:Redis分布式锁实现ZK分布式锁实现自定义实现一键开关分布式锁功能支持Spring支持SpringBoot背景在分布式项目中,有时需要使用分布式锁对资源进行唯一的访问,项目中常用的实现方案如Redis和ZK,如果直接使用,对项目侵入性大,...原创 2019-03-12 17:12:58 · 3874 阅读 · 0 评论 -
SpringCloud2.0.1--Ribbon 重试监听
在SpringCloud中,通常使用的是客服端发现作为负载均衡。SpringCloud全家桶中提供了Ribbon作为客户端负载的优秀框架。 服务器之间的调用直接使用Feign进行调用。Feign默认使用了Ribbon作为负载的实现。 通常来说,进行服务拆分后,每个服务之间都需要支持幂等性,因为可能由于网络的原因,一个接口可能会被重试多次,如果没有做好幂等性控制的话,容易出现数据重复等异常情况。...原创 2018-08-19 16:06:40 · 1223 阅读 · 0 评论 -
Docker nginx安装与文件挂载
在高并发访问的时候,一台tomcat完成是撑不住的,这时就需要做个tomcat集群了,使用nginx进行LB处理。那么先安装好nginx进行测试。 在win10中,下载好nginx,并进入解压好的目录,执行 start nginx即可以启动nginx了,只要在访问localhost页面上出现“Welcome to nginx!”等字样表示nginx安装成功了。这时可以使用jmeter进行压力测试...原创 2018-04-30 11:16:55 · 4471 阅读 · 0 评论 -
SpringCloud Zuul过滤器返回值拦截
Zuul作为网关服务,是其他各服务对外中转站,通过Zuul进行请求转发。这就涉及到部分数据是不能原封返回的,比如服务之间通信的凭证,用户的加密信息等等。本文中的代码已提交至: https://gitee.com/cmlbeliever/springcloud 欢迎Star 实现类在:api-getway工程下的com.cml.springcloud.api.filter.AuthResponseF原创 2017-10-26 09:54:34 · 30412 阅读 · 10 评论 -
SpringCloud 项目基础搭建与使用
微服务已经渐渐火起来了,现在到哪里都能听到这个词。在微服务方面SpringCloud算是很成熟的开源项目了。虽然项目中还没具体使用到,但是作为个人的学习拓展还是可以深入的学习的。 我眼中的微服务概念:将系统拆分成独立的多个模块,通过网关对外提供服务,模块之间可以互相调用。通过这样拆分就可以根据每个模块的访问情况进行动态配置服务数量,而不需要像之前的项目一样部署整个项目。工程地址:https://g原创 2017-10-25 16:46:44 · 17274 阅读 · 3 评论 -
SpringCloud 详解配置刷新的原理
首先先介绍下实现后的效果: 1、在需要动态配置属性的类上添加注解@RefreshScope表示此类Scope为refresh类型的 2、启动工程,修改config-server对应的配置文件,这里修改的是system.order.serverName 3、以post的方式调用refresh接口,返回修改后的key值 4、访问infoTest接口,可以看到修改后的值详细流程:依次启动confi原创 2017-11-01 10:29:53 · 22656 阅读 · 6 评论 -
SpringCloud Zuul修改请求参数信息
Zuul作为网关服务,是其他各服务对外中转站,通过Zuul进行请求转发。这就涉及到部分数据是不能原封返回的,比如服务之间通信的凭证,用户的加密信息等等。 对返回的信息加密后,客户端请求其他服务时,网关就需要将原来加密的信息解密后转发到对应的服务中。 解密的功能其实可以理解成是权限认证的过程,将合法的请求转发到对应的服务,将非法的请求直接拦截在网关层。这一部分其实也是可以使用权限框架Shiro和S原创 2017-10-27 09:50:11 · 21060 阅读 · 1 评论