下面通过示例一步步搭建一个分布式微服务
假设有一个业务场景是要实现一个会员在线浏览新闻的应用,支持手机和PC端。分析了详细需求,把项目拆分成三个微服务:
如图所示:
client 是调用 api 的主体,用 postman 模拟Service Discovery Server 保存已注册服务的地方,供 Server 注册服务和 ApiGateway 发现服务, 用 consulApiGateway 提供一个访问微服务统一的对外网关, 外部用 http 通过网关调用开放的接口,网关内部调用微服务用 RPC,网关还提供服务治理和管理等其他功能,用 Asp.Net Core Web 实现Server 微服务的宿主,用 .Net Core 的控制台应用实现
提供授权服务,用户使用会员的用户名和密码获取 token, 带着 token 访问受保护的接口,如浏览和发布新闻。
提供会员注册服务,用户必须注册成会员才能享受应用提供的服务,如浏览和发布新闻, 但有些服务又需要指定角色的会员才能操作,如所有会员都可以浏览新闻,只有管理员(admin)角色的会员才可以发布新闻。
提供新闻浏览和发布服务