《Java生态圈技术总结》之 微服务架构蓝图总览
微服务是一种架构风格,将单体应用划分成一组小的服务,尽量符合单一职责的原则,使得服务之间相互协作,实现业务功能; 每个服务都运行在独立的进程、虚拟机、容器、服务器中,服务之间采用轻量级的通信机制(HTTP/JSON)进行协作; 每个服务围绕各自的业务能力进行构建,并且能够通过自动化机制独立地部署,相互之间无部署依赖;
从 CloudWeGo 谈云原生时代的微服务与开源
4 月 15 日-16 日,由 InfoQ 主办的 DIVE 全球基础软件创新大会通过云上展厅的形式成功召开。在微服务 & 服务治理专场,来自字节跳动的基础架构部资深架构师罗广明带来了主题为《从 CloudWeGo 谈云原生时代的微服务与开源》的演讲,以下为主要内容。
SpringCloud微服务实战——搭建企业级开发框架(三十八):搭建ELK日志采集与分析系统
一套好的日志分析系统可以详细记录系统的运行情况,方便我们定位分析系统性能瓶颈、查找定位系统问题。上一篇说明了日志的多种业务场景以及日志记录的实现方式,那么日志记录下来,相关人员就需要对日志数据进行处理与分析,基于E(ElasticSearch)L(Logstash)K(Kibana)组合的日志分析系统可以说是目前各家公司普遍的首选方案。 • Elasticsearch: 分布式、RESTful 风格的搜索和数据分析引擎,可快速存储、搜索、分析海量的数据。在ELK中用于存储所有日志数据。
SpringCloud微服务实战——搭建企业级开发框架(三十七):微服务日志系统设计与实现【下】
针对业务开发人员通常面对的业务需求,我们将日志分为操作(请求)日志和系统运行日志,操作(请求)日志可以让管理员或者运营人员方便简单的在系统界面中查询追踪用户具体做了哪些操作,便于分析统计用户行为;系统运行日志又分为不同的级别(Log4j2): OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL,这些日志级别由开发人员在代码编写时确定,并编写在代码中,系统运行时记录,方便系统开发人员分析定位解决问题,查找系统性能瓶颈。
SpringCloud微服务实战——搭建企业级开发框架(二十一):基于RBAC模型的系统权限设计
RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限,从而达到用户和权限解耦的目的,RBAC介绍原文链接。 RABC的好处
SpringCloud微服务实战——搭建企业级开发框架(二十):集成Reids缓存
这章我们来介绍在系统中引入redisson-spring-boot-starter依赖来实现redis缓存管理 1、在GitEgg-Platform中新建gitegg-platform-redis用于管理工程中用到的Redis公共及通用方法。
SpringCloud微服务实战——搭建企业级开发框架(十五):集成Sentinel高可用流量管理框架【熔断降级】
Sentinel除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断。
SpringCloud微服务实战——搭建企业级开发框架(十四):集成Sentinel高可用流量管理框架【限流】
Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 安装部署请参考:https://www.jianshu.com/p/9626b74aec1e Sentinel 具有以下特性: • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
SpringCloud微服务实战——搭建企业级开发框架(十):使用Nacos分布式配置中心
随着业务的发展、微服务架构的升级,服务的数量、程序的配置日益增多(各种微服务、各种服务器地址、各种参数),传统的配置文件方式和数据库的方式已无法满足开发人员对配置管理的要求:
SpringCloud微服务实战——搭建企业级开发框架(七):自定义通用响应消息及统一异常处理
平时开发过程中,无可避免我们需要处理各类异常,所以这里我们在公共模块中自定义统一异常,Spring Boot 提供 @RestControllerAdvice 注解统一异常处理,我们在GitEgg_Platform中新建gitegg-platform-boot子工程,此工程主要用于Spring Boot相关功能的自定义及扩展。 1、修改gitegg-platform-boot的pom.xml,添加spring-boot-starter-web和swagger依赖,设置optional为true,让这个包在项目之间依赖不传递。
SpringCloud 微服务实战笔记
这是很早以前在我的博客上写的关于 SpringCloud 的一些实战笔记,现在我把这些实战笔记集合起来贴到这里,可能会对一些刚刚接触 SpringCloud 微服务的小伙伴有帮助。
redis在微服务领域的贡献
说到redis,可能大家的脑海中蹦出的关键词是:NoSQL、KV、高性能、缓存等。但今天的文章从另一个角度——微服务来展开。 这篇文章的起因也是源自一次面试经历,在面试一位来自陌陌的候选人(就是那个交友的陌陌)时,他提到一点让我觉得很有意思,他说redis在陌陌被使用的非常广泛,除了常规的缓存外,某些场景下也当NoSQL数据库来使用,还用redis作为微服务的注册中心,甚至连RPC的调用协议都用了redis协议。
微服务架构:稳定性设计
通过依赖的管理,我们能够知道,当前系统调用了哪些服务,被哪些服务调用。接下来,我们便可以根据当前系统所依赖的服务,以及系统的流程,判断依赖的服务是否影响应用的流程,以此来决定当前应用依赖的优先级。
SA实战 ·《SpringCloud Alibaba实战》快速搭建三大微服务并完成交互开发与测试
SA实战 ·《SpringCloud Alibaba实战》快速搭建三大微服务并完成交互开发与测试
从零搭建微服务SpringCloud(四)设计SpringCloud服务提供者
上文中讲到SpringCloud注册中心应该如何去创建以及配置。那么我们知道Eureka具体可以做什么之后,就可以开始设计微服务-服务提供者了。
一篇让你学会如何在2022年对热门微服务架构技术实现进行选型
Dubbo,是由阿里巴巴技术团队,在生产中实际应用的解决方案; Spring Cloud,由netflix,则是Spring 成熟的框架,演变出的微服务架构解决方案; Kubernetes(K8S),是由谷歌技术团队,在生产中,应用的解决方案。
如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始
软件架构设计本身就是一个复杂的事情,但其实业界已有一个共识,那就是“通过组件化完成关注点的分离从而降低局部复杂度”。其实现在我们用的无论是容器、中间件、消息、数据库等,在某种意义上都是组件化的产物。这样的好处是在不同的系统里可以复用。在云原生兴起的今天,以通用的、组件化的服务形式更容易为我们所用,所以说现在如果还不享用云原生技术红利,那你就会被时代抛弃。
PHP 基于 SW-X 框架,搭建RPC微服务支持
SW-X的微服务也可用于优化FPM业务,底层使用了TCP通讯协议,支持基于AES的数据加解密支持,官方提供了Swoole/FPM下的RPC客户端,并提供了纯基于Redis存储管理的RPC服务中心。
利用springboot+dubbo,构建分布式微服务,全程注解开发(四)
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
利用springboot+dubbo,构建分布式微服务,全程注解开发(三)
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
小米电商 Apache Dubbo-go 微服务实践
2021 年是小米中国区电商部门变动调整较大的一年,小米中国区早期电商、服务体系建立在 Go 语言构建的微服务体系之上,由内部自研的 Go 语言微服务框架 koala 支撑起数以千计的微服务应用。随着业务的发展,新零售体系的成立以及业务中台普及与推广,我们更倾向于拥有丰富生态的 Java 为主的微服务体系技术选型,新项目及服务大多基于 Apache Dubbo、Spring Cloud 的微服务生态。
微服务架构 | 11.1 整合 Seata AT 模式实现分布式事务
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务;它提供了 AT、TCC、Saga 和 XA 事务模式,为开发者提供了一站式的分布式事务解决方案;
微服务架构 | 7.1 基于 OAuth2 的安全认证
OAuth2 是一个基于令牌的安全验证和授权框架。他允许用户使用第三方验证服务进行验证。 如果用户成功进行了验证, 则会出示一个令牌,该令牌必须与每个请求一起发送。然后,验证服务可以对令牌进行确认;