微服务实践
共同探讨微服务架构适用场景和技术要点,
打造高弹性分布式服务。
moxiaomomo
虚怀若谷,大爱无疆
展开
-
微服务开发之反向代理traefik
traefik是微服务架构里常用的一种反向代理.相对于nginx, traefik最大的区别是支持动态配置路由的.也就是每当你的微服务经历新启动、移除、停止或更新时都会被感知,并且可以自动更新对应的配置文件.以下简单说明下通过docker-compose来启动traefik的流程.首先创建一个专有网络(让traefik和所有需要反向代理的微服务在同一个网络中)docker network...原创 2019-05-06 14:17:44 · 1200 阅读 · 0 评论 -
springboot 集成swagger
1. 关于swagger我们撰写的接口文档,有面向内部开发者的,也有面向外部的。很多情况下文档和代码是分离的,有好处也有坏处。而当我们写java项目想偷懒,想要自动生成接口文档时,swagger工具是个不错的选择。在Golang中, godoc时标准化的工具,而java似乎没这么舒服。所以这里借助了swagger第三方工具,swagger是主要用于自动生成restful风格API文档以及方便开...原创 2018-09-28 14:09:17 · 325 阅读 · 0 评论 -
Centos7安装Kubernetes1.11集群及Dashboard工具
1. 测试节点暂时一个Master节点,一个Node节点192.168.1.148 Master192.168.1.6 Node建议首先清空iptables路由规则:# (清理filter表的规则,不加 –t 就默认filter表)iptables -X && iptables -F && iptables -Z ipt原创 2018-08-21 11:53:47 · 3343 阅读 · 0 评论 -
微服务开发之单点登录
关于CASCAS是一种单点登录开源框架,遵循apache2.0协议,代码托管在github.com/apereo/cas上。而单点登录(SSO, Single Sign On)可简单理解为当用户在一个应用上登录了,其他被授权信任的关联应用不用再登录。比如在同一个浏览器中登录了天猫,再打开淘宝网站时会自动登录,无需单独输用户名密码或扫二维码。以下简单说明下CAS的部署与测试结果。本地...原创 2018-07-16 08:52:35 · 6339 阅读 · 0 评论 -
微服务开发之熔断器
一般在微服架构中,有一个组件角色叫熔断器。顾名思义,熔断器起的作用就是在特定的场景下关掉当前的通路,从而起到保护整个系统的效果。在微服务架构中,一般我们的独立服务是比较多的,每个独立服务之间划分责任边界,并通过约定协议接口来进行通信。当我们的调用链路复杂依赖多时,很可能会发生雪崩效应。假设有这么一个场景,有A, B, C, D四个独立服务,A会依赖B,C,D;当D发生负载过高或网络异常等导...原创 2018-06-22 17:47:39 · 4472 阅读 · 0 评论 -
[分布式trace]在Ubuntu17.10上部署jaeger
关于JaegerJaeger是由Uber发布的一种分布式调用链跟踪系统,主要用于集成到微服务调用追踪,和Zipkin作用类似。通过调用链跟踪系统,可以快速了解各节点的响应状况,方便定位问题。Jaeger关键组件Jaeger本身是一种可单独部署运行的服务,主要有以下几个关键组件:数据存储Cassandra数据收集jaeger-collector客户端代理jaeger-age...原创 2018-06-18 13:30:17 · 1324 阅读 · 0 评论 -
基于jaeger和grpc实现的rpc调用链跟踪模块
grpc-jaeger说明具体源码可参考我的github源码grpc-jaeger是基于Go的针对gRPC的一种拦截器实现,用于结合jaeger来实现rpc调用链跟踪;可用于集成到微服务的分布式trace功能中。grpc包中对外暴露了两个接口:grpc.UnaryClientInterceptor及grpc.UnaryServerInterceptor, 只要将这两个函数重写即可以自定...原创 2018-06-17 22:03:46 · 4632 阅读 · 0 评论 -
基于环形队列和令牌桶实现的限流模块
概述在分布式服务架构下,比如微服务架构,一般需要构建一个独立的gateway模块。gateway模块的主要作用包括流量控制,规则路由,负载均衡,鉴权,熔断等等;而gateway一般是stateless的,因此可自由弹性伸缩集群规模,以应对实际的访问场景。 本文主要介绍通过golang实现限流模块的一种方案,其关键点主要有两个:环形队列(ring queue)令牌桶算法(token b...原创 2018-06-15 09:29:58 · 1816 阅读 · 0 评论 -
[微服务]关于架构设计的问题
微服务架构的核心思想是类似的,而不同的应用场景总有不同的具体实践架构。 微服务设计前,我想有几个问题应该需要思考一下:客户端如何访问这些服务每个服务的边界如何划分,如何通信划分成这么多的服务,如何实现部署划分成这么多的服务,如何有效监控和容灾以下是基于本地项目环境设计的一种初步架构,权当笔记: ...原创 2018-06-04 14:18:57 · 354 阅读 · 0 评论 -
[分布式协议]Go实现raft协议
之前对raft算法是有所了解但无深究,偶然机会下读了下大牛的goraft代码 后,决定自己实现一把。 目前代码基本完成,本人水平有限,代码基本能用,未经严格测试,欢迎指导:源码github地址 以下是项目说明README:raft协议的go版本,实现功能包括:选主投票节点心跳日志同步成员变更日志压缩存在的问题或需要解决的问题:完善snapshot快照同步逻辑...原创 2018-05-28 15:21:12 · 2732 阅读 · 0 评论