• 平台的多租户设计

    1、用户、应用和机构是三个独立的对象,在平台上注册用户跟机构没有关系,同一个身份证号码在平台上只能创建一个用户。在平台上创建应用跟机构也没有关系在平台上注册新机构后,可以往机构添加人员,比如医院把院内的医生、护士、药师等人员添加到本机构,这样医生用户登录的时候如果身份证号码存在本机构人员中,这样医生就可以选择进入此机构,这样多点医生执业的场景就能完美解决。可以往机构安装应用,然...

    架构设计 2021年09月01日 1545 0
  • DDD深入浅出

    为什么我们要了解ddd?作为一个开发者,我们肯定接手过其他的人的项目。我想你一定有个这样的经历:面对冗杂的系统,模块彼此关联,没有人能描述清楚每个细节,没有文档,即使有文档也和系统对不上。当新需求需要修改一个功能时,往往光回顾该功能涉及的流程就需要很长时间,更别提修改带来的不可预知的影响面。于是 RD 就加开关,小心翼翼地切流量上线,一有问题赶紧关闭开关。面对此般场景,你要么跑...

    架构设计 2021年08月31日 1503 0
  • 开箱即用!看看人家的微服务权限解决方案,那叫一个优雅

    前置知识我们将采用Nacos作为注册中心,Gateway作为网关,使用Sa-Token提供的微服务权限解决方案,此方案是基于之前的解决方案改造的应用架构还是和之前方案差不多的思路,认证服务负责登录处理,网关负责登录认证和权限认证,其他API服务负责处理自己的业务逻辑。为了能在多个服务中共享Sa-Token的Session,所有服务都需要集成Sa-Token和Redis。micr...

    微服务 2021年08月25日 1081 0
  • 企业级技术中台微服务架构Eurynome Cloud简介

    企业级技术中台微服务架构与服务能力开发平台Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基于Spring Boot 2.5.4、Spring Cloud 2020.0.3、Spring Cloud Alibaba 2021.1、Nacos 2.0.3 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、...

    微服务 2021年08月23日 1148 0
  • 微服务网关如何防止雪崩?阿里开源项目之Sentinel限流、熔断

    目录前言Sentinel是什么部署Sentinel DashboardSentinel对网关的支持网关限流规则网关流控实现原理总结前言为什么需要服务熔断和降级?微服务是当前业界的一大趋势,原理就是将单一职责的功能模块独立化为子服务,降低服务间的耦合,服务间互相调用。但是这样也会出现一些问题:上图中大量微服务互相调用,存在大量的依赖关系,难免会出现某个服务故障,如ServiceD...

    微服务 2021年07月28日 1709 0
  • 建设微服务API网关的一些实践

    随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环。一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的共性功能。整体架构我们的Api网关目前的架构如上所示,可以看到Api网关处于一个什么位置,往上承接所有的南北流量,往下会分发流量到微服务应用或者BFF聚合应用,在BFF规范化之前我们仍然将其视为一个普通微服务应用。目前Api网关实现的功能包括请求分发、...

    微服务 2021年07月22日 1202 0
  • springcloud微服务实战:服务网关,Gateway

    服务网关: Spring Cloud Gateway前面已经介绍了基于Spring Cloud搭建微服务框架所需要的必需组件,利用这些组件再配合客户端就可以构建出一个完整的系统。但在实际应用场景中,每一个微服务都会部署到内网服务器中,或者禁止外部访问这些端口,这是对应用的一种安全保护机制。因此,我们如果想通过互联网来访问这些服务,需要一个统一的入口,这就是本章将介绍的微服务的又...

    微服务 2021年07月21日 1654 0
  • OAuth2+JWT 实现权限验证

    前言微服务架构下统⼀认证思路主要有两种形式:1、基于 Session 的认证⽅式在分布式的环境下,基于 session 的认证会出现⼀个问题,每个应⽤服务都需要在session中存储⽤户身份信息,通过负载均衡将本地的请求分配到另⼀个应⽤服务需要将 session 信息带过去,否则会重新认证。我们可以使⽤ Session 共享、Session 黏贴等⽅案。Session ⽅案也有...

    微服务 2021年07月21日 1165 0
  • 微服务优雅下线与Nacos健康检查机制详解

    先抛出一个问题Nacos的健康检查和心跳机制到底是如何实现的呢?在项目实践中是否又可以参考Nacos的健康检查机制,运用于其他地方呢?这篇文章,就带大家来揭开Nacos健康检查机制的面纱。Nacos的健康检查Nacos中临时实例基于心跳上报方式维持活性,基本的健康检查流程基本如下:Nacos客户端会维护一个定时任务,每隔5秒发送一次心跳请求,以确保自己处于活跃状态。Nacos服...

    微服务 2021年07月09日 5617 1
  • 借助Nacos完成网关路由动态配置、灰度发布、服务优雅上下线

    随着业务和架构的发展,微服务的开发部署方式已经变成了如今技术发展的趋势,而在微服务流量入口控制上基本都是通过网关来实现的。网关的作用:路由转发、熔断、限流、安全认证、日志监控等,在前面也发布过一篇关于从零开始搭建微服务之网关建设的文章,大家感兴趣的话可以去了解下网关的基本介绍。背景目前我们的服务流量入口已统一由网关进行转发,路由信息定义在配置文件中,但是这种方式有一个缺点就是修...

    微服务 2021年06月25日 4125 0
  • 微服务架构三大难点之一:数据同步查询

    微服务的架构虽然看起来很美,但是里面有一些是需要hold住的内容,其中一项是数据同步查询。当我们把系统拆分成多个业务域后,涉及到跨域的查询就捉襟见肘了,这个时候需要另外的指导思路(CQRS)架构解决这个问题。上图查询的数据通过数据同步+搜索引擎进行解决,通过canal订阅mysql的binlog的变化,同步到elasticsearch。这个方案的优点是不会跟业务进行耦合,不需要...

    微服务 2021年03月23日 1914 0
  • 替代Spring Boot几种微服务框架比较

    目前,有很多使用Java和Kotlin创建微服务的框架。本文中考虑了以下内容:NameVersionYear of a first releaseDeveloperGitHubHelidon SE1.4.12019OraclelinkKtor1.3.02018JetBrainslinkMicronaut1.2.92018Object ComputinglinkQuarkus1....

    微服务 2021年03月17日 2754 0
  • 从单体到微服务,这些年架构的演变

    背景这两年业界最流行的技术架构话题已经从前后端分离,变成了分布式、微服务、DDD了。微服务架构适合所有的公司吗,业务场景演变到了什么地步才需要考虑上微服务呢?毕竟选择技术架构之前应该考虑业务是否与之匹配,否则分布式、微服务这类繁重的架构设计对一些公司来说就变成了屠龙之技,反而成为一线开发团队的负担。在我不长的职业生涯中,经历过小型创业公司、国企般的大型项目以及在ThoughtW...

    微服务 2021年03月05日 1033 0
  • 搞微服务用阿里开源的 Nacos 真香啊

    项目源码地址:https://github.com/alibaba/nacos一、项目介绍在选择使用一个工具之前,我们先大概了解一下它的同类型产品,这样更能看出它的价值。提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。主要特性:服务发现:支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独...

    微服务 2021年02月24日 1043 0
  • 如何打造一个轻量级的社交系统

    简介随着国外Facebook、Twitter、国内的微博等社交网络网站的崛起,很多公司也推出了类似的社交服务产品,相比与微博这种大型用户社交产品而言,很多公司都推出的类微博Feed流的社交产品,但由于一些公司的用户基数、用户活跃度等原因远没有微博庞大,因此这些产品在数据存储、Feed展示上的技术实现远没有微博的复杂,面对用户量级在1000万左右且旧社交系统中单表已有存量数据为2...

    架构设计 2021年02月09日 1071 0
  • IM 消息数据存储结构设计

    1.背景在移动互联网高速发展的时代,生活中 IM 类产品已经是我们离不开的应用了,像微信、钉钉等都是以 IM 为核心功能的社交产品。另外也有一些应用不是以 IM 为核心,但是也是其重要功能,比如在线游戏、电商直播等应用。在 IM 庞大的体系中,消息系统无疑是最核心的,而消息系统中,最关键的部分是消息的分发和存储。在以往传统消息系统中,对于在线的用户,消息会直接实时发送到在线的接...

    架构设计 2021年02月06日 1868 0
  • 分布式系统中的限流器实现

    限流器相关算法一般限流器有五种算法,分别是:令牌桶,漏斗桶,固定窗口,滑动日志(指的其实是广义上的滑动窗口),滑动窗口( 这里指的是滑动日志+固定窗口结合的一种算法 )。1. 令牌桶(Token bucket)令牌桶算法用来控制一段时间内发送到网络上的数据的数目,并允许突发数据的发送。算法大概是:假设允许的请求速率为 r 次每秒,那么每过 1/r 秒就会向桶里面添加一个令牌。桶...

    微服务 2021年02月02日 1072 0
  • 微服务失败的 11 个原因

    微服务是当前流行的架构。简单地说,微服务就是一种面向服务的软件架构,在这种架构中,服务器端应用程序是通过组合许多单用途、小容量的网络服务来构建的。微服务架构让边界设计良好的服务的失效互不影响成为可能。但是,微服务和所有的分布式系统一样,也会存各种各样的问题。Shekhar Gulati 给我们分享了微服务失败的 11 个原因,这些原因还算比较常见,我们相信,他总结的心得对于想要...

    微服务 2021年01月31日 1144 0
  • 用户画像方法论

    Part 1 什么是用户画像 Part 2 为什么需要用户画像Part 3 如何构建用户画像Part 4 用户画像的应用Part 5 总结参考资料:1. 百分点《用户画像的构建与应用》2. 腾讯-刘黎春《大数据时代下的用户洞察》3. 一号店-王富平《 用户画像系统实践》4. 京东-郭理靖《数据引导生产》5. 腾讯-刘立明《如何通过数据驱动业务发展》6. 知乎-Mr.墨叽《如何做...

    架构设计 2021年01月30日 1231 0
  • 快速实现细粒度的身份权限管理

    授权的含义在通用领域内,授权是领导者通过为员工和下属提供更多的自主权,以达到组织目标的过程。在计算机领域内,授权是由信息系统指定批准机构授予某实体处理、存储或传送信息的权力。而在身份认证领域内,授权是指当客户端经过身份认证后,能够有限的访问服务端资源的一种机制。为什么要进行「授权」?在已经构建起的用户系统中,当你的 API 需要判断当前访问用户是否能访问当前资源时,就需要你构建...

    架构设计 2021年01月30日 1176 0
  • 交易系统架构演进之路:服务治理

    前言微服务架构下,会引入很多服务问题,所以少不了需要做服务治理,包括:服务注册与发现、服务配置、服务限流、服务熔断、服务降级、负载均衡、链路追踪等。关于服务治理的范畴应该包括哪些,业界其实也没有形成标准,但至少包括了前面列出来的内容,这是毋庸置疑的。另外,微服务架构下,服务集群规模会越来越大,服务治理也很难靠人工完成,因此,微服务治理的自动化程序要高。下面,我们就根据上面列举的...

    架构设计 2021年01月29日 1358 0
  • 分布式系统架构

    分布式理论知识1、分布式系统架构1.1基础概念分布式 : 将一个单体项目分成很多个模块,各个模块协同工作,各个模块构成了分布式系统集群:针对单个模块或者单个系统在多台服务器上部署,称为集群。为了提高系统的可用性,增加系统的负载。1.2分布式系统演变1.3分布式系统面临的问题问题描述通信异常网络本身的不可靠性,因此每次网络通信都会伴随着网络不可用的风险(光纤、路由、DNS等硬件设...

    架构设计 2021年01月28日 2791 0
  • Github Actions还是Jenkins?该怎么选?

    在过去的几年中,DevOps已成为软件生命周期中至关重要的一部分,这推动了许多领先的DevOps工具和实践的发展。您可以找到一系列支持CI/CD流程的工具,Jenkins和GitHub Actions杰出地站在其中。在本文中,我将对GitHub Actions和Jenkins进行比较,并为你提供洞察力以做出正确的选择。Jenkins和GitHub Action简介Jenkins...

    架构设计 2021年01月27日 1159 0
  • 智慧政务解决方案

    架构设计 2021年01月26日 1147 0
  • 架构解密从分布式到微服务:分布式系统的设计理念

    分布式系统的经典理论分布式系统从诞生到现在已经有几十个年头了,其中伴随着一些很重要的基础理论,正是这些影响深远的基础理论,奠定了分布式系统的坚实基础,造就了分布式领域的一座座宏伟大厦。为了练就一身武功,让我们从这些经典的分布式理论开始学起吧。从分布式系统的设计理念说起分布式系统的首要目标是提升系统的整体性能和吞吐量。如果最终设计出来的分布式系统占用了10台机器才勉强达到单机系统...

    微服务 2021年01月23日 1407 0
  • DevOps知识框架体系和最佳实践案例整理

    注:该文为我对网上发布的DevOps知识库Ledge的一个阅读笔记整理。Ledge(源自 know-ledge,意指承载物)知识平台是基于我们所进行的一系列 DevOps 实践、敏捷实践、精益实践提炼出来的知识体系。DevOps知识框架概述对于DevOps研发运维一体化,我在前面也写过了不少文章,包括了基础知识,敏捷研发,持续集成和交付,流水线设计,DevOps和容器云的集成,...

    架构设计 2021年01月23日 1268 0
  • 高并发架构-分库分表

    为什么要分库分表(高并发系统的时候,数据库层该如何设计)?分库分表提高高并发有哪些分库分表中间件?如cobar、TTDL、Atlas、Sharding-jdbc 是client层方案,不需要单独部署,项目依赖jar包;mycat 是proxy层方案,需要部署,对各个项目透明;如何进行垂直拆分或水平拆分?水平拆分就是把一个表的数据给弄到多个库的多个表里去,每个表的结构都一样,但是...

    架构设计 2021年01月15日 1243 0
  • 架构解密从分布式到微服务:深入理解网络,NIO

    NIO我们知道,分布式系统的基础是网络。因此,网络编程是分布式软件工程师和架构师的必备技能之一,而且随着当前大数据和实时计算技术的兴起,高性能RPC架构与网络编程技术再次成为焦点。不管是RPC领域的ZeroC Ice、Thrift,还是经典分布式框架Actor模型中的Akka,或者实时流领域的Storm、Spark、 Flink, 又或者开源分布式数据库中的Mycat、Volt...

    微服务 2021年01月13日 1236 0
  • 互联网系统架构为什么要做前后端分离呢?

    在现在的互联网架构中,前后端分离已经是一个非常常见的系统架构方式了,但是我们将前后端分离以后,感觉项目的架构比传统的分层架构更复杂了,需要的人力资源也更多了,甚至项目周期也变得更长了,既然看上去好处不大,为什么还要做前后端分离呢?上面这个疑问可能是很多创业中的互联网企业疑惑的问题,而我们首先要明白,前后端分离并不是一个互联网系统必须的架构模式,任何的架构都是为业务服务的,如果...

    架构设计 2021年01月09日 1284 0
  • 微服务架构下分布式事务解决方案

    1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多...

    微服务 2021年01月08日 1358 0