微服务实战01-maven聚合工程
接下来的一段时间,我们将要来学习微服务,本着重实战的原则,你不需要去深究一些相关的原理,只要能跟着教程一步一步做下来,就可以快速地掌握Java微服务开发技巧。 我们学习微服务的第一步,就是要知道怎么创建聚合工程,虽然说微服务和聚合工程没有直接和必然的联系,但是现在工作中只要用到微服务,就一定是聚合工程。既然绕不开,我们就从聚合工程开始吧。
微服务实战03-注册数据服务
EurekaServer ,它扮演的角色是注册中心,用于注册各种微服务,以便于其他微服务找到和访问。有了EurekaServer,还需要一些微服务,注册到EurekaServer上去。 这一节,我们来写一个注册微服务。为了简单起见,我们不用数据库,用java来模拟即可。
这款Alibaba SpringCloud微服务项目真香!Github标星35K+
近年来随着互联网的飞速发展,各行各业都在拥 互联网。互联网给人类生活带来了翻天覆地的变化,人们在享受互联网给生活带来便捷的同时,业务需求的发展也对互联网技术提出了更高的要求,传统的单体架构对越来越复杂的业务需求显得力不从 此外,随着大数据云计算和人工智能的飞速发展,软件的架构显得越来越重要。近几年来,“微服务”这名词在各大网站、论坛、演讲中出现的频率足以让人们感觉到它对软件架构带来的影响 。目前,各大公司都在纷纷采用微服务架构。
10.3k?这才是企业级的 Spring Cloud Alibaba 微服务开发平台,真心牛 x! 下
10.3k?这才是企业级的 Spring Cloud Alibaba 微服务开发平台,真心牛 x! 下
从零开始创建微服务系统四 - 第一部分
好吧,标题似乎是一个大胆的陈述,所以让我们澄清一下我所说的微服务系统是什么意思。我不是指要在生产中使用的任何类型的框架,只是一个了解微服务架构的挑战以及它如何在幕后工作的项目。 我不打算将这个系列作为分步指南,因为到最后它可能至少有 100 篇文章。相反,我将尝试写关于设计选择、如何编写一些机制并突出一些有趣的问题(从全栈开发人员的角度来看)我在此过程中偶然发现。
微服务常用的模式语言:统一交流术语
模式语言提供了讨论问题的交流术语,它明确了特定场景、特定问题的解决方案和延伸性思考。模式语言主要目的是帮助开发者解决在设计和编程中遇到的共同的问题,即清晰的问题陈述、体现问题的解决方案以及推动解决方案的力量(Force)的清晰表述。 微服务架构作为一个现在流行的服务架构,也有一套属于自己的模式。这篇文章是微服务架构相关模式语言的一个提纲。Chris Richardson 从不同的角度,对相关的模式进行了分类。可以点击链接查看每个模式的详细描述。下图通过虚线框细分了不同的微服务模式。
读书分享:《Apache Dubbo 微服务开发从入门到精通》
本次分享的书是《Apache Dubbo 微服务开发从入门到精通》,该书以 Dubbo 框架为例,全面讲解微服务从开发、配置、部署到治理、流量管控、可视化监测、事务管理全生命周期过程;涵盖 Dubbo3 最新特性使用方式与原理,包括云原生 Kubernetes、Service Mesh 解决方案等。通过阅读书籍,计划通过以下几个问题来带你们深入了解Dubbo的神奇之处。
Dapr和Rainbond集成,实现云原生BaaS和模块化微服务开发
Dapr 是一个开源的分布式应用运行时,帮助开发者构建松耦合的分布式应用程序,具有良好的可扩展性和可维护性。Rainbond 是一款企业级的云原生应用管理平台,提供了丰富的功能和工具,方便开发者管理和部署应用。
Higress 0.7.0 版本发布:GA 进入倒计时
一个遵循开源Ingress/Gateway API标准,提供流量调度、服务治理、安全防护三合一的高集成、易使用、易扩展、热更新的下一代云原生网关。
58-微服务技术栈(高级):在线检测工具Arthas(jvm相关指令)
开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
52-微服务技术栈(高级):微服务网关Soul(搭建dubbo-zk应用)
springboot:2.2.2 alibaba.dubbo:2.0.0 zkclinet:0.10 JDK:1.8
51-微服务技术栈(高级):微服务网关Soul(入门运行Soul)
Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。 Git地址:https://github.com/Dromara/soul 运行环境: • MySQL 5.* • JDK 1.8+ • MAVEN 3.2.* • Git 更多原理性知识可以参考官网API:https://dromara.org/zh-cn/docs/soul/induction.html
48-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-3[Zookeeper])
前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。
47-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-2[WatchManager])
前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManager类。
46-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-1)
前面已经分析了Zookeeper持久话相关的类,下面接着分析Zookeeper中的Watcher机制所涉及到的类。
45-微服务技术栈(高级):分布式协调服务zookeeper源码篇(持久化FileTxnSnapLog)
前面分析了FileSnap,接着继续分析FileTxnSnapLog源码,其封装了TxnLog和SnapShot,其在持久化过程中是一个帮助类。
44-微服务技术栈(高级):分布式协调服务zookeeper源码篇(持久化FileTxnLog)
前一篇已经分析了序列化,这篇接着分析Zookeeper的持久化过程源码,持久化对于数据的存储至关重要,下面进行详细分析。
39-微服务技术栈(高级):分布式搜索引擎ElasticSearch(索引库、文档操作)
在前面读者朋友们可以了解到ES承载着和MySQL一样的“存储-查询”功能,那么就类似的会有建表语句、表结构、表数据,有了这些才可以存储-查询数据。而这些对应的在ES中是:Mapping映射(表结构-建表语句)、索引库(表本身)、文档(表数据)。本节笔者将带领大家完整上述概念的创建、使用。
28-微服务技术栈(高级):CAP定理和Base理论
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
25-微服务技术栈(高级):Redis持久化
作为分布式系统中,必不可少的非结构化存储中间件,Redis在小型、中型、大型乃至高并发系统中均有自己发挥的场合,除了基础数据结构(String/Hash/Set/ZSet/List)的增删改查操作,在真正的生产环境中我们如何避免数据的丢失?如何避免单点的性能瓶颈?如何搭建合适的集群架构? 本节笔者将从数据的持久化、多种集群结构搭建去解决不同的应用场景,以满足读者朋友们生产环境下的种种问题,最终实现Redis技术中间件的优雅落地。
24-微服务技术栈(高级):分布式缓存Redis分片集群
在上面两节,笔者带领大家完成主动集群搭建(解决单节点读压力过大问题),又完成哨兵集群的搭建(解决节点故障的自动恢复,从而提高系统整体稳定性)。但是上述不论那种架构模式,都没有解决当前系统的写压力过大问题。本节的分片集群将会有多个master节点,实现写压力的分摊,同时多个master节点互相通信,具备哨兵的功能,一旦节点故障,同样可以自动检测、投票、恢复。
22-微服务技术栈(高级):分布式缓存Redis主从集群
单机Redis可以解决应用缓存的问题,但是随着系统流量的增加,读操作开始指数级倍增时,及时单节点Redis基于内存的读写操作再快也会有性能瓶颈,此时我们可以借助主从架构(主负责写、从负责读)来优化上述场景,实现高并发读优化。
21-微服务技术栈(高级):消息积压与惰性队列
消息中间件,作为分布式系统中必不可少的一部分,在前面我们学习过其基本的消息发送、消费,但是读者朋友们肯定也知道,真正的生产环境可不是简单的发送消息这么简单。如何避免消息丢失?如何满足特殊场景下的消息延迟消费?如何解决消费能力不足?如何搭建集群?等等 本节笔者将从消息的可靠性出发,解决消息不丢失的问题。同时借助TTL实现延迟消息,惰性队列解决消息堆积问题,最后完成集群搭建以实现生产环境真正的高可用。
20-微服务技术栈(高级):MQ死信队列&TTL&延迟队列
消息中间件,作为分布式系统中必不可少的一部分,在前面我们学习过其基本的消息发送、消费,但是读者朋友们肯定也知道,真正的生产环境可不是简单的发送消息这么简单。如何避免消息丢失?如何满足特殊场景下的消息延迟消费?如何解决消费能力不足?如何搭建集群?等等 本节笔者将从消息的可靠性出发,解决消息不丢失的问题。同时借助TTL实现延迟消息,惰性队列解决消息堆积问题,最后完成集群搭建以实现生产环境真正的高可用。
架构解密从分布式到微服务:分布式系统的基石:TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)是Internet 的基本协议,简单地说,由底层的IP和TCP组成。TCP/IP的开发工作始于20世纪70年代,该协议是用于互联网的第一套协议。TCP/IP结合 DNS、路由协议等一系列相关协议,最终实现了网络之间任意两点间的数据通信问题。我们来看看在访问百度首页时,数据包是如何从计算机传送到百度的服务器上的。
11-微服务技术栈(基础):Gateway服务网关
微服务中另一重要组件:网关 进行了实战性演练,网关作为分布式架构中的重要中间件,不仅承担着路由分发(重点关注Path规则配置),同时可根据自身负载均衡策略,对多个注册服务实例进行均衡调用。本节我们借助GateWay实现的网关只是技术实现的方案之一,后续大家可能会接触像:Zuul、Kong等,其实现细节或有差异,但整体目标是一致的。
07-微服务技术栈(扩展):什么是RESTful
对于http接口的调用,其历程经历过原始servlet,到后面的struts,SpringMVC,对于后端的参数封装也逐渐从单个属性演变成对象封装,那么什么是RESTful,工作中又如何使用呢?
02-微服务技术栈(基础):SpringCloud概述
本节笔者介绍了SpringCloud诞生的由来,以及目前国内主要流行的SpringCloud Alibaba与SpringCloud的关系,同时针对SpringCloud自身的特点、版本号、依赖关系做了概要论述,这些都是为了接下来的实战打好基础。
阿里云微服务引擎 2023 2月份产品动态
微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。
基于常见组件微服务场景实战:如何对几十个后台服务进行高效管理
基于常见组件的微服务场景实战,注册发现 下面开始微服务相关内容的讲解。在这一部分中,仍然从最基础的场景入手,然后再逐步展开说明,帮助大家快速掌握一些微服务组件的实现原理,最终理解微服务架构的本质。