微服务-SpringCloud和Istio
文章平均质量分 94
SpringCloud、Istio使用介绍
琦彦
Find out who you are,and be that person.
展开
-
一张图看懂微服务架构路线
目录一张图看懂微服务架构路线我为什么选择微服务架构?微服务架构路线基本思路Docker容器编排Docker 容器管理API网关负载均衡服务发现事件总线日志记录监控和警报分布式追踪数据持久化缓存云供应商结论一张图看懂微服务架构路线我为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显原创 2021-12-07 09:41:07 · 2554 阅读 · 1 评论 -
带你快速了解微前端的拆分和集成
目录什么是微前端?如何拆分前端应用?应用程序示例应用程序的架构微前端的集成方法构建时间集成服务器端集成index.html运行时集成什么是 Web 组件?如何制作 Web 组件?与 Web 组件的运行时集成示例使用哪种集成方法?用户界面组件库微前端之间的通信结论近年来,微服务大受欢迎。越来越多的组织开始使用这种类型的架构来避免大型单体的限制。在本文中,我们将描述一种将“前端单体”分解为更小、更易于管理的部分的趋势。以及这种架构如何提高跨原创 2021-10-24 12:21:29 · 4205 阅读 · 2 评论 -
Docker环境下Spring Boot应用内存飙升分析与解决
目录Spring Boot应用内存飙升服务现状JVM默认内存设置优化限制JVM内存参数解释JVM常见参数java.security.egd 作用优化后的效果JVM参数设置是否生效基础镜像优化Fabric8 备注Xmx < limit支持springboot多环境和jvm动态配置的Dockerfile参考Spring Boot应用内存飙升一个简单的Spring Boot应用, 几乎只有一个用户在用,内存竟然达...原创 2021-08-23 20:59:15 · 5392 阅读 · 4 评论 -
微服务的设计模式,你用了几个
目录1. 分解模式a. 按业务能力分解b. 按子域分解c. 扼杀者模式2. 集成模式a. API 网关模式b. 聚合器模式c. 客户端组合模式3. 数据库模式a. 每个服务的数据库b. 共享数据库c. 命令查询职责分离 (CQRS)d. Saga模式4. 可观察性模式a. 日志聚合b. 性能指标c. 分布式追踪d. 健康检查5. 跨领域关注模式(Cross-Cutting Concern)a. 外部配置b. 服务发现模式原创 2021-08-10 08:08:16 · 2096 阅读 · 3 评论 -
微服务框架:如果不用Spring Boot,还可以选择谁
前言在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。名称 版本 发布时间 开发商 GitHub Helidon SE 1.4.1 2019年 甲骨文 链接 Ktor 1.3.0 2018年 JetBrains 链接 Micronaut 1.2.9 2018年 Object Computing 链接 Quarkus 1.2.0原创 2021-08-07 08:11:44 · 4323 阅读 · 3 评论 -
小团队真的适合引入SpringCloud微服务吗?
微服务是否适合小团队是个见仁见智的问题。回归现象看本质,随着业务复杂度的提高,单体应用越来越庞大,就好像一个类的代码行越来越多,分而治之,切成多个类应该是更好的解决方法,所以一个庞大的单体应用分出多个小应用也更符合这种分治的思想。当然微服务架构不应该是一个小团队一开始就该考虑的问题,而是慢慢演化的结果,谨慎过度设计尤为重要。公司的背景是提供SaaS服务,对于大客户也会有定制开发以及私有化部署。经过2年不到的时间,技术架构经历了从单体到微服务再到容器化的过程。单体应用时代早期开发只有两个人转载 2021-06-14 17:57:09 · 347 阅读 · 0 评论 -
微服务性能测试的方法和工具
微服务,通常指的是一个支持持续开发、系统可扩展、应用程序解耦和多语言编程的架构平台。它在服务边界的帮助下隔离了平台,这使得单独使用和管理每个服务变得更加简单。由于每个服务都是相互独立的,这就使得添加高级功能或扩展变得更加有效和容易。微服务的核心特性:每一个服务或单元都是轻量级的、独立的和松耦合的。 每个服务都有其独立的代码库,由一个小团队设计和开发。 每个服务都有其独立的DevOps计划(开发、测试、发布、扩展和管理) 每个服务可以自由选择自己的技术堆栈。 每个服务有自己的机制来保存...原创 2021-06-14 16:56:10 · 1265 阅读 · 3 评论 -
Spring Boot:如何解决跨域问题 ?
跨域问题现象been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource上面的意思就是 你访问一个什么地址被CORS 协议阻止, 没有 在Hearder 里面发现 Access-Control-Allow-Origin 的参数的 资源跨域问题分析跨域问题的原因:浏览器出于安全考虑,限制访问本站点以为的资源。比如你有一个 网站 127..原创 2021-04-07 14:20:35 · 27779 阅读 · 2 评论 -
微服务拆分的10条规范
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录微服务拆分的10条规范1.使用有界上下文:2.确定核心域并保持竞争优势:3.对通用域进行成本优化:4.考虑支持领域:5.引入反腐层:6.识别数据通信模式:7.引入事件驱动架构(EDA):8.使API简洁明了:9.将相关的微服务合并为更大的服务:10. 引入无缝开发支持工具:结论微服务拆分的10条规范如...原创 2021-03-27 20:49:34 · 1023 阅读 · 2 评论 -
Serverless中微服务的优缺点和最佳实践
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录Serverless中微服务的优势1. 选择性地可伸缩性和并发性2. 细粒度的资源分配3. 松耦合4. 支持多运行时环境5. 开发团队的独立性Serverless中微服务的缺点1. 难以监视和调试2. 可能会经历更多的冷启动3. 其他缺点Serverless微服务的挑战和最佳实践1. Serverless中微...原创 2020-12-23 17:40:38 · 1575 阅读 · 4 评论 -
提高微服务安全性的11个方法
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录为什么选择微服务?1.通过设计确保安全OWASP2.扫描依赖3.随处使用HTTPS安全的GraphQL API安全的RSocket端点4.使用身份令牌授权服务器:多对一还是一对一?在JWT上使用PASETO令牌5.加密和保护密钥6.通过交付流水线验证安全性7.降低攻击者的速度8.使用Docker Rootl..原创 2020-12-21 08:41:47 · 8865 阅读 · 16 评论 -
Spring Cloud Gateway 2.1.0 中文官网文档
目录1. 如何在工程中引用Spring Cloud Gateway2. 词汇表3. 如何工作的4. 路由断言Factories4.1 After 路由断言 Factory4.2 Before 路由断言 Factory4.3 Between 路由断言 Factory4.4 Cookie 路由断言 Factory4.5 Header 路由断言 Factory4.6 Host 路由断言 Factory4.7 Method 路由断言 Factory4.8 Path 路转载 2020-11-24 17:37:23 · 1691 阅读 · 0 评论 -
微服务的下一步,离不开服务网格
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录微服务面临的挑战微服务的解决方案结论软件行业走了很长一段路,在整个过程中,软件体系结构也已经发展了很多。经历了1层(单节点),2层(客户端/服务器),3层和分布式,我们在此过程中看到了一些不同的软件架构模式。微服务面临的挑战大多数软件公司,正从单体架构(Monolithic)过渡到微服务架构(Microservices),而微服务架构(M..原创 2020-09-20 18:53:00 · 3708 阅读 · 0 评论 -
每个团队都应知道的API安全威胁
目录每个团队都应知道的API安全威胁分页和资源限制不安全如何防止分页攻击API密钥生成不安全如何保护API密钥池密钥暴露如何防止密钥暴露DDoS攻击防止DDoS攻击服务器没有设置正确的SSL如何设置正确的SSL缓存头设置不正确如何设置正确的缓存头记录和监控不足如何正确添加API日志记录没有保护内部端点没有处理授权如何修正授权每个团队都应知道的API安全威胁随着越来越多的数据以API方式暴露,API的安全性变得越来越重要。由于AP原创 2020-08-16 09:34:47 · 2135 阅读 · 0 评论 -
SpringBoot:上传单个图片,上传图片压缩包,读取本地磁盘图片
1. 上传单个图片业务方法 @PostMapping("/upload") public AjaxResult uploadImg(@RequestParam("file") MultipartFile multipartFile) { AjaxResult result = certifInfoService.uploadImg(multipartFile); return result;}// /**// * 服务端口/原创 2020-08-14 20:35:33 · 2029 阅读 · 0 评论 -
微服务和服务网格有什么区别,Istio告诉你
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录 微服务架构的好处微服务架构的组件微服务架构的复杂性为什么我们需要服务网格?服务网格架构的组件微服务的业务逻辑基本网络功能应用网络功能服务网格控制平面使用Istio实施服务网格Istio的核心能力核心Istio组件当组织将应用程序分解为多个较小的服务组件时,即称为微服务。与传统的单体应用方式相比...原创 2020-07-31 16:08:03 · 10025 阅读 · 0 评论 -
Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录背景:容器被广泛使用优雅停机( Gracefully Shutdown )存活状态( Liveness )就绪状态( Readiness )1.如何更新状态?2.如何获取应用状态?示例:Spring Boot 2.3.0配置Readiness和Liveness代码示例测试:Readiness和LivenessSpring ..原创 2020-06-22 09:13:22 · 6244 阅读 · 0 评论 -
何时不需要微服务架构,Istio1.5告诉你
目录已经走上了微服务的道路有时还是会“回到整体”Istio:微服务架构方式(V1.5之前)微服务的好处Istio1.5:从微服务到单一结论原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区过去五年中,我一直帮助企业进行云原生的实践。深刻体会到,当应用程序架构成为迭代的瓶颈时,微...原创 2020-04-12 11:42:50 · 4954 阅读 · 0 评论 -
Apollo:服务端搭建、和SpringBoot集成
Apollo服务端搭建:单机环境搭建:参考:https://github.com/ctripcorp/apollo/wiki/Quick-Start注意事项:编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息#apollo config db infoapollo_config_db_url=jdbc:mysql...原创 2019-06-27 10:28:30 · 1865 阅读 · 1 评论 -
Hystrix:普通Javaweb结合AOP使用
一、什么是HystrixHystrix是Netflix的一个开源框架,地址如下:https://github.com/Netflix/Hystrix中文名为“豪猪”,即平时很温顺,在感受到危险的时候,用刺保护自己;在危险过去后,还是一个温顺的肉球。所以,整个框架的核心业务也就是这2点:何时需要保护 如何保护 二、何时需要保护 对于一个系统而言,它往往承担着2层角...原创 2019-02-21 17:09:29 · 10814 阅读 · 0 评论 -
Hystrix: fallback method wasn't found
错误代码@HystrixCommand(fallbackMethod="getFallback",commandKey="getUserByName",groupKey="UserGroup", threadPoolKey="getUserByNameThread") @Override public String getUserByName(Stri...原创 2019-02-21 14:58:56 · 10330 阅读 · 0 评论 -
Hystrix使用笔记
文章目录Hystrix使用笔记一、简介二、Hystrix依赖隔离的原理三、Hystrix熔断机制四、Hystrix配置参数详细说明基础属性配置CommandGroupCommandKeyThreadPoolKey命令属性配置(1)执行属性execution.isolation.strategyexecution.isolation.thread.timeoutInMillisecondsexecu...转载 2019-02-20 17:24:15 · 517 阅读 · 0 评论 -
为什么Kubernetes天然适合微服务?
最近在反思,为什么在支撑容器平台和微服务的竞争中,Kubernetes会取得最终的胜出。因为在很多角度来讲三大容器平台从功能角度来说,最后简直是一摸一样,具体的比较可以参考本人前面的两篇文章。《Docker, Kubernetes, DCOS 不谈信仰谈技术》《容器平台选型的十大模式:Docker、DC/OS、K8S谁与当先?》经过一段时间的思索,并采访了从早期就开始实践Kuberne...转载 2020-03-13 22:54:18 · 591 阅读 · 0 评论 -
深入浅出 gRPC 04:gRPC 服务调用原理
目录1. 常用的服务调用方式1.1 同步服务调用1.2 并行服务调用1.3 异步服务调用2. 服务调用的一些误区和典型问题2.1 理解误区2.1.1 I/O 异步服务就是异步2.1.2 服务调用天生就是同步的2.1.3 异步服务调用性能更高2.2 Restful API 的潜在性能风险2.2.1 HTTP1.X 的性能问题2.2.2 异步非阻塞 I/...转载 2020-02-03 19:34:59 · 6518 阅读 · 0 评论 -
深入浅出 gRPC 03:gRPC 线程模型分析
1. RPC 线程模型1.1 BIO 线程模型在 JDK 1.4 推出 Java NIO 之前,基于 Java 的所有 Socket 通信都采用了同步阻塞模式(BIO),这种一请求一应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈。因此,在很长一段时间里,大型的应用服务器都采用 C 或者 C++ 语言开发,因为它们可以直接使用操作系统提供的异步 I/O 或者...转载 2020-02-03 19:36:52 · 3117 阅读 · 0 评论 -
深入浅出 gRPC 02:gRPC 客户端创建和调用原理
目录1. gRPC 客户端创建流程1.1 背景1.2 业务代码示例1.3 RPC 调用流程1.3.1 客户端调用总体流程1.3.2 ManagedChannel 创建流程1.3.3 ClientCall 创建流程1.3.4 基于 Netty 的 HTTP/2 Client 创建流程1.3.5 HTTP/2 连接创建流程1.3.6 负载均衡策略1.3.7 ...转载 2020-02-03 13:18:03 · 4869 阅读 · 0 评论 -
深入浅出 gRPC 01:gRPC 服务端创建和调用原理
目录1. RPC 入门1.1 RPC 框架原理1.2 业界主流的 RPC 框架1.3 gRPC 简介1.3.1 gRPC 概览1.3.2 gRPC 特点2. gRPC 服务端创建2.1 服务端创建业务代码2.2 服务端创建流程2.3 服务端 service 调用流程2.3.1 gRPC 请求消息接入2.3.2 gRPC 消息头和消息体处理2.3....转载 2020-02-03 09:30:57 · 7547 阅读 · 0 评论 -
springcloud整合seata实现分布式事务
概览操作步骤如下:1.seata-server端,修改server配置2.client端(你自己的项目),引入配置文件,修改配置文件3.数据源代理设置4.创建数据库表5.启动注册中心(eureka),启动server,启动client(包括订单服务,库存服务、账户服务)1.此demo技术选型及版本信息注册中心:eureka 2.1.2服务间调用:feign 2.1.2...原创 2020-02-06 15:24:38 · 9225 阅读 · 4 评论 -
Dubbo整合seata实现分布式事务
概览操作步骤如下:1.seata-server端,修改server配置2.client端(你自己的项目),引入配置文件,修改配置文件3.数据源代理设置4.创建数据库表5.启动注册中心(ZK),启动server,启动client(包括订单服务,库存服务)1.此demo技术选型及版本信息运行环境版本要求jdk1.8+Spring Boot1.5+...原创 2020-02-06 16:37:20 · 4164 阅读 · 1 评论 -
微服务设计模式:反腐层(Anti-corruption layer)
微软:微服务设计模式2017年,微软AzureCAT模式和实践团队在Azure 架构中心发布了9 个新的微服务设计模式,并给出了这些模式解决的问题、方案、使用场景、实现考量等。微软团队称这 9 个模式有助于更好的设计和实现微服务,同时看到业界对微服务的兴趣日渐增长,所以也特意将这些模式记录并发布。下图是微软团队建议如何在微服务架构中使用这些模式:微软:微服务设计模式...原创 2020-02-02 18:10:07 · 18382 阅读 · 3 评论 -
gRPC系列 :RPC 框架原理是?gRPC 是什么?gRPC设计原则
1. RPC 入门1.1 RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC 框架的调用原理图如下所示:整理成序列图后的效果是:RPC 框架--时...原创 2020-02-01 20:19:27 · 11682 阅读 · 0 评论 -
SpringCloud容错处理:Hystrix源码分析
容错处理容错处理是指软件运行时,能对由非正常因素引起的运行错误给出适当的处理或信息提示,使软件运行正常结束从解释中可以看出,简单理解,所谓的容错处理其实就是捕获异常了,不让异常影响系统的正常运行,正如java中的try catch一样。而在SpringCloud微服务调用中,自身异常可自行处理外,对于依赖的服务若发生错误,或者调用异常,或者调用时间过长等原因时,避免长时间等待,造成...原创 2020-01-30 22:24:30 · 1878 阅读 · 0 评论 -
consul配置acl:允许注册和访问所有节点,并读取任何服务
添加acl配置文件# vim acl.json{ "acl": { "enabled": true, "default_policy": "deny", "down_policy": "extend-cache" }}重启consul# docker restart consul_server生成初始token# consul ac...翻译 2020-01-30 12:05:56 · 3449 阅读 · 0 评论 -
ACL:是什么?目的?使用场景?
ACL简介定义访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。ACL结构图A...原创 2020-01-30 11:26:57 · 17764 阅读 · 0 评论 -
Nacos:是什么?解决的问题?存在的问题?
Nacos是阿里巴巴2018年7月份开源的项目,如其名, Naming and Configuration Service ,专注于服务发现和配置管理领域。Nacos 是什么?Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供「注册中心」、「配置中心」和「动态DNS服务」三大功能。动态配置服务动态配置服务让您能够以中心化、外部化和动态化的方式...原创 2020-01-29 18:28:20 · 3747 阅读 · 0 评论 -
微服务之后,如何处理数据的统一分析(类似报表)
随着互联网技术的发展,微服务作为一种云服务的架构方式被越来越多的企业采用,使用微服务的架构进行开发,提供了产品的可靠性,可扩展性,降低维护成本,同时也可以支持按需伸缩服务。对于开发人员,微服务的代码量明显减少,遇到问题也更容易解决。但同时微服务也带来了许多问题,例如:分布式部署的复杂度明显提升、接口调整的成本升高、对运维的需求也更高了。其中一个主要的问题是不同的服务使用独立的数据库,提高了数据...原创 2020-01-28 21:53:48 · 4729 阅读 · 2 评论 -
服务容错模式:舱壁模式、熔断器的异同点
目录舱壁模式、熔断器的基本定义舱壁隔离(Bulkhead Isolation)熔断器(Circuit Breaker)舱壁模式、熔断器的相同点1. 设计原则--遵循服务容错的基本原则: “Design for Failure”2.采取措施--保护性机制:服务降级3. 实现效果--降低依赖服务对整个系统的影响4.异常回退舱壁模式、熔断器的不同点使用场景不一...原创 2020-01-27 08:56:06 · 2888 阅读 · 0 评论 -
Eureka之IpAddress:eureka.instance.prefer-ip-address = true
阅读本文你将了解微服务注册到Eureka Server上的粗粒度过程 eureka.instance.prefer-ip-address = true时,发生的一些事 深度理解eureka.instance.ip-address和eureka.instance.prefer-ip-address = true。 杂谈注:本篇较长、烧脑,并且涉及的范围相对广,建议选择一个舒服的姿势...转载 2019-09-24 08:46:36 · 7362 阅读 · 0 评论 -
Eureka:缓存细节以及生产环境的最佳配置
eureka作为spring cloud微服务架构里的注册中心,是非常核心的一个组件。它本身的架构避免了复杂的选主算法,比较简单,搭个demo也确实很快,但是如果要用于生产环境,还是得注意很多东西,尤其是下线延迟...一、服务获取中的缓存问题第一节的内容都是从这个issue翻译的:Documentation: changing Eureka renewal frequency *WILL*...转载 2019-09-12 09:02:12 · 2075 阅读 · 0 评论 -
Eureka:常见问题总结
指定Eureka的Environmenteureka.environment: 指定环境参考文档:https://github.com/Netflix/eureka/wiki/Configuring-Eureka指定Eureka的DataCentereureka.datacenter: 指定数据中心参考文档:https://github.com/Netflix/e...转载 2019-09-10 08:36:31 · 852 阅读 · 0 评论